summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
Diffstat (limited to 'games')
-rw-r--r--games/Makefile2
-rw-r--r--games/anki/Makefile9
-rw-r--r--games/anki/Makefile.crates278
-rw-r--r--games/anki/distinfo574
-rw-r--r--games/anki/files/patch-pylib_tools_hookslib.py6
-rw-r--r--games/anki/files/patch-rust-1.89.09
-rw-r--r--games/anki/pkg-plist2
-rw-r--r--games/linux-enemyterritory/Makefile6
-rw-r--r--games/motogt/Makefile47
-rw-r--r--games/motogt/distinfo2
-rw-r--r--games/motogt/files/motogt.in4
-rw-r--r--games/motogt/files/patch-Makefile10
-rw-r--r--games/motogt/files/patch-src-Circuito.cpp11
-rw-r--r--games/motogt/files/patch-src-Config.cpp22
-rw-r--r--games/motogt/files/patch-src-MakeData.cpp48
-rw-r--r--games/motogt/files/patch-src-Makefile.common149
-rw-r--r--games/motogt/files/patch-src-Makefile.lnx25
-rw-r--r--games/motogt/pkg-descr5
-rw-r--r--games/openclonk/Makefile10
-rw-r--r--games/openclonk/distinfo6
-rw-r--r--games/openclonk/files/patch-CMakeLists.txt40
-rw-r--r--games/openclonk/files/patch-blake210621
-rw-r--r--games/palomino/Makefile112
-rw-r--r--games/palomino/distinfo10
-rw-r--r--games/palomino/files/patch-src_input_device__keyboard__osg.cc15
-rw-r--r--games/palomino/files/patch-src_input_device__keyboard__osg.hh10
-rw-r--r--games/palomino/files/patch-src_input_device__mouse__osg.cc15
-rw-r--r--games/palomino/files/patch-src_input_device__mouse__osg.hh10
-rw-r--r--games/palomino/pkg-descr2
-rw-r--r--games/palomino/pkg-plist442
-rw-r--r--games/veloren-weekly/Makefile8
-rw-r--r--games/veloren-weekly/Makefile.crates625
-rw-r--r--games/veloren-weekly/distinfo1256
-rw-r--r--games/veloren-weekly/files/patch-gilrs100
34 files changed, 12121 insertions, 2370 deletions
diff --git a/games/Makefile b/games/Makefile
index 6673cb615ead..aba48ab1d7c5 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -643,7 +643,6 @@
SUBDIR += moonlight-embedded-devel
SUBDIR += moonlight-qt
SUBDIR += moria
- SUBDIR += motogt
SUBDIR += mrboom
SUBDIR += mt_dolphin_ia
SUBDIR += mt_gtk_client
@@ -754,7 +753,6 @@
SUBDIR += pachi
SUBDIR += pacmanarena
SUBDIR += palapeli
- SUBDIR += palomino
SUBDIR += pangzero
SUBDIR += passage
SUBDIR += patapizza-tetris
diff --git a/games/anki/Makefile b/games/anki/Makefile
index dd066ae4b3ec..cbe1ed5262b8 100644
--- a/games/anki/Makefile
+++ b/games/anki/Makefile
@@ -1,6 +1,5 @@
PORTNAME= anki
-DISTVERSION= 25.07.5
-PORTREVISION= 1
+DISTVERSION= 25.09
# Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes
CATEGORIES= games education python
MASTER_SITES= LOCAL/kai/:yarncache
@@ -49,8 +48,8 @@ USES= cargo desktop-file-utils ninja nodejs:build pyqt:6 python \
USE_GITHUB= yes
GH_ACCOUNT= ankitects
# Translation files
-GH_TUPLE= ankitects:anki-core-i18n:a019a54:ftlrslib \
- ankitects:anki-desktop-ftl:bc2da83:ftlextra
+GH_TUPLE= ankitects:anki-core-i18n:6552c95:ftlrslib \
+ ankitects:anki-desktop-ftl:dad4e27:ftlextra
USE_PYQT= pyqt6 sip:build webengine
@@ -93,7 +92,7 @@ MPV_RUN_DEPENDS= mpv:multimedia/mpv
# Should contain the most recent commit that reflects ${DISTVERSION} and must
# be exactly 8 digits otherwise the check for newer versions won't work as
# expected.
-_MY_BUILDHASH= 7172b2d2
+_MY_BUILDHASH= 539054c3
# Remove ${CARGO_BUILD_TARGET} from ${CARGO_ENV} to avoid problems with
# hardcoded paths as the "runner" build system expects its components
# in ${WRKSRC}/out/rust/debug
diff --git a/games/anki/Makefile.crates b/games/anki/Makefile.crates
index 9de566e72386..d540b383f257 100644
--- a/games/anki/Makefile.crates
+++ b/games/anki/Makefile.crates
@@ -3,29 +3,29 @@ CARGO_CRATES= addr2line-0.24.2 \
ahash-0.8.12 \
aho-corasick-1.1.3 \
allocator-api2-0.2.21 \
- ammonia-4.1.0 \
+ ammonia-4.1.1 \
android-tzdata-0.1.1 \
android_system_properties-0.1.5 \
anes-0.1.6 \
- anstream-0.6.19 \
+ anstream-0.6.20 \
anstyle-1.0.11 \
anstyle-parse-0.2.7 \
- anstyle-query-1.1.3 \
- anstyle-wincon-3.0.9 \
- anyhow-1.0.98 \
- arbitrary-1.4.1 \
+ anstyle-query-1.1.4 \
+ anstyle-wincon-3.0.10 \
+ anyhow-1.0.99 \
+ arbitrary-1.4.2 \
arrayref-0.3.9 \
arrayvec-0.7.6 \
ash-0.38.0+1.3.281 \
assert-json-diff-2.0.2 \
- async-channel-2.3.1 \
- async-compression-0.4.24 \
+ async-channel-2.5.0 \
+ async-compression-0.4.30 \
async-stream-0.3.6 \
async-stream-impl-0.3.6 \
- async-trait-0.1.88 \
+ async-trait-0.1.89 \
atomic-waker-1.1.2 \
atomic_float-1.1.0 \
- autocfg-1.4.0 \
+ autocfg-1.5.0 \
axum-0.8.4 \
axum-client-ip-1.1.3 \
axum-core-0.5.2 \
@@ -39,12 +39,12 @@ CARGO_CRATES= addr2line-0.24.2 \
bit-set-0.8.0 \
bit-vec-0.8.0 \
bitflags-1.3.2 \
- bitflags-2.9.1 \
+ bitflags-2.9.3 \
blake3-1.8.2 \
block-0.1.6 \
block-buffer-0.10.4 \
bstr-1.12.0 \
- bumpalo-3.18.1 \
+ bumpalo-3.19.0 \
burn-0.17.1 \
burn-autodiff-0.17.1 \
burn-candle-0.17.1 \
@@ -61,25 +61,25 @@ CARGO_CRATES= addr2line-0.24.2 \
burn-tensor-0.17.1 \
burn-train-0.17.1 \
burn-wgpu-0.17.1 \
- bytemuck-1.23.1 \
- bytemuck_derive-1.9.3 \
+ bytemuck-1.23.2 \
+ bytemuck_derive-1.10.1 \
byteorder-1.5.0 \
bytes-1.10.1 \
bytesize-1.3.3 \
- camino-1.1.10 \
+ camino-1.1.12 \
candle-core-0.8.4 \
cast-0.3.0 \
- cc-1.2.27 \
- cfg-if-1.0.1 \
+ cc-1.2.34 \
+ cfg-if-1.0.3 \
cfg_aliases-0.2.1 \
chrono-0.4.41 \
ciborium-0.2.2 \
ciborium-io-0.2.2 \
ciborium-ll-0.2.2 \
- clap-4.5.40 \
- clap_builder-4.5.40 \
- clap_complete-4.5.54 \
- clap_derive-4.5.40 \
+ clap-4.5.46 \
+ clap_builder-4.5.46 \
+ clap_complete-4.5.57 \
+ clap_derive-4.5.45 \
clap_lex-0.7.5 \
client-ip-0.1.1 \
coarsetime-0.1.36 \
@@ -88,6 +88,8 @@ CARGO_CRATES= addr2line-0.24.2 \
codespan-reporting-0.12.0 \
colorchoice-1.0.4 \
colored-3.0.0 \
+ compression-codecs-0.4.30 \
+ compression-core-0.4.29 \
concurrent-queue-2.5.0 \
constant_time_eq-0.3.1 \
convert_case-0.8.0 \
@@ -96,14 +98,14 @@ CARGO_CRATES= addr2line-0.24.2 \
core-foundation-sys-0.8.7 \
core-graphics-types-0.1.3 \
cpufeatures-0.2.17 \
- crc32fast-1.4.2 \
+ crc32fast-1.5.0 \
criterion-0.6.0 \
criterion-plot-0.5.0 \
crossbeam-channel-0.5.15 \
crossbeam-deque-0.8.6 \
crossbeam-epoch-0.9.18 \
crossbeam-utils-0.8.21 \
- crunchy-0.2.3 \
+ crunchy-0.2.4 \
crypto-common-0.1.6 \
cssparser-0.35.0 \
cssparser-macros-0.6.1 \
@@ -115,7 +117,7 @@ CARGO_CRATES= addr2line-0.24.2 \
cubecl-cpp-0.5.0 \
cubecl-cuda-0.5.0 \
cubecl-hip-0.5.0 \
- cubecl-hip-sys-6.4.4348200 \
+ cubecl-hip-sys-6.4.4348201 \
cubecl-ir-0.5.0 \
cubecl-linalg-0.5.0 \
cubecl-macros-0.5.0 \
@@ -129,12 +131,12 @@ CARGO_CRATES= addr2line-0.24.2 \
darling_core-0.20.11 \
darling_macro-0.20.11 \
data-encoding-2.9.0 \
- deadpool-0.10.0 \
+ deadpool-0.12.2 \
deadpool-runtime-0.1.4 \
- deranged-0.4.0 \
+ deranged-0.5.2 \
derive-new-0.6.0 \
derive-new-0.7.0 \
- derive_arbitrary-1.4.1 \
+ derive_arbitrary-1.4.2 \
derive_builder-0.20.2 \
derive_builder_core-0.20.2 \
derive_builder_macro-0.20.2 \
@@ -155,8 +157,8 @@ CARGO_CRATES= addr2line-0.24.2 \
dyn-stack-0.13.0 \
either-1.15.0 \
elasticlunr-rs-3.0.2 \
- embassy-futures-0.1.1 \
- embed-resource-3.0.4 \
+ embassy-futures-0.1.2 \
+ embed-resource-3.0.5 \
encoding_rs-0.8.35 \
enum-as-inner-0.6.1 \
env_filter-0.1.3 \
@@ -164,13 +166,13 @@ CARGO_CRATES= addr2line-0.24.2 \
env_logger-0.11.8 \
envy-0.4.2 \
equivalent-1.0.2 \
- errno-0.3.12 \
- event-listener-5.4.0 \
+ errno-0.3.13 \
+ event-listener-5.4.1 \
event-listener-strategy-0.5.4 \
fallible-iterator-0.3.0 \
fallible-streaming-iterator-0.1.9 \
fastrand-2.3.0 \
- filetime-0.2.25 \
+ filetime-0.2.26 \
fixedbitset-0.5.7 \
flate2-1.1.2 \
float-ord-0.3.2 \
@@ -185,16 +187,16 @@ CARGO_CRATES= addr2line-0.24.2 \
foreign-types-macros-0.2.3 \
foreign-types-shared-0.1.1 \
foreign-types-shared-0.3.1 \
- form_urlencoded-1.2.1 \
+ form_urlencoded-1.2.2 \
fsevent-sys-4.1.0 \
- fsrs-4.1.1 \
+ fsrs-5.1.0 \
futf-0.1.5 \
futures-0.3.31 \
futures-channel-0.3.31 \
futures-core-0.3.31 \
futures-executor-0.3.31 \
futures-io-0.3.31 \
- futures-lite-2.6.0 \
+ futures-lite-2.6.1 \
futures-macro-0.3.31 \
futures-sink-0.3.31 \
futures-task-0.3.31 \
@@ -215,12 +217,12 @@ CARGO_CRATES= addr2line-0.24.2 \
gemm-f64-0.17.1 \
gemm-f64-0.18.2 \
generic-array-0.14.7 \
- getopts-0.2.23 \
+ getopts-0.2.24 \
getrandom-0.2.16 \
getrandom-0.3.3 \
gimli-0.31.1 \
gl_generator-0.14.0 \
- glob-0.3.2 \
+ glob-0.3.3 \
globset-0.4.16 \
glow-0.16.0 \
glutin_wgl_sys-0.6.1 \
@@ -229,17 +231,15 @@ CARGO_CRATES= addr2line-0.24.2 \
gpu-allocator-0.27.0 \
gpu-descriptor-0.3.2 \
gpu-descriptor-types-0.2.0 \
- h2-0.3.26 \
- h2-0.4.10 \
+ h2-0.3.27 \
+ h2-0.4.12 \
half-2.6.0 \
handlebars-6.3.2 \
hashbrown-0.13.2 \
hashbrown-0.14.5 \
- hashbrown-0.15.4 \
+ hashbrown-0.15.5 \
hashlink-0.10.0 \
- headers-0.3.9 \
headers-0.4.1 \
- headers-core-0.2.0 \
headers-core-0.3.0 \
heck-0.5.0 \
hermit-abi-0.5.2 \
@@ -247,21 +247,22 @@ CARGO_CRATES= addr2line-0.24.2 \
hexf-parse-0.2.1 \
hmac-0.12.1 \
html5ever-0.26.0 \
- html5ever-0.31.0 \
+ html5ever-0.35.0 \
htmlescape-0.3.1 \
http-0.2.12 \
http-1.3.1 \
http-body-0.4.6 \
http-body-1.0.1 \
http-body-util-0.1.3 \
+ http-range-header-0.4.2 \
httparse-1.10.1 \
httpdate-1.0.3 \
hyper-0.14.32 \
- hyper-1.6.0 \
+ hyper-1.7.0 \
hyper-rustls-0.27.7 \
hyper-tls-0.5.0 \
hyper-tls-0.6.0 \
- hyper-util-0.1.14 \
+ hyper-util-0.1.16 \
iana-time-zone-0.1.63 \
iana-time-zone-haiku-0.1.2 \
icu_collections-2.0.0 \
@@ -273,16 +274,17 @@ CARGO_CRATES= addr2line-0.24.2 \
icu_provider-2.0.0 \
id_tree-1.8.0 \
ident_case-1.0.1 \
- idna-1.0.3 \
+ idna-1.1.0 \
idna_adapter-1.2.1 \
ignore-0.4.23 \
- indexmap-2.9.0 \
+ indexmap-2.11.0 \
indoc-2.0.6 \
inflections-1.1.1 \
inotify-0.11.0 \
inotify-sys-0.1.5 \
intl-memoizer-0.5.3 \
intl_pluralrules-7.0.2 \
+ io-uring-0.7.10 \
ipnet-2.11.0 \
iri-string-0.7.8 \
is_terminal_polyfill-1.70.1 \
@@ -293,7 +295,7 @@ CARGO_CRATES= addr2line-0.24.2 \
jiff-0.2.15 \
jiff-static-0.2.15 \
jni-sys-0.3.0 \
- jobserver-0.1.33 \
+ jobserver-0.1.34 \
js-sys-0.3.77 \
junction-1.2.0 \
khronos-egl-6.0.0 \
@@ -301,38 +303,38 @@ CARGO_CRATES= addr2line-0.24.2 \
kqueue-1.1.1 \
kqueue-sys-1.0.4 \
lazy_static-1.5.0 \
- libc-0.2.173 \
+ libc-0.2.175 \
libc-stdhandle-0.1.0 \
libloading-0.8.8 \
libm-0.2.15 \
- libredox-0.1.3 \
+ libredox-0.1.9 \
libsqlite3-sys-0.34.0 \
libz-rs-sys-0.5.1 \
linkify-0.7.0 \
linux-raw-sys-0.9.4 \
litemap-0.8.0 \
- litrs-0.4.1 \
+ litrs-0.4.2 \
lock_api-0.4.13 \
log-0.4.27 \
lru-slab-0.1.2 \
lzma-sys-0.1.20 \
mac-0.1.1 \
- macerator-0.2.8 \
- macerator-macros-0.1.2 \
+ macerator-0.2.9 \
+ macerator-macros-0.1.3 \
malloc_buf-0.0.6 \
maplit-1.0.2 \
markup5ever-0.11.0 \
- markup5ever-0.16.1 \
+ markup5ever-0.35.0 \
markup5ever_rcdom-0.2.0 \
- match_token-0.1.0 \
- matchers-0.1.0 \
+ match_token-0.35.0 \
+ matchers-0.2.0 \
matches-0.1.10 \
matchit-0.8.4 \
matrixmultiply-0.3.10 \
md5-0.7.0 \
- mdbook-0.4.51 \
+ mdbook-0.4.52 \
memchr-2.7.5 \
- memmap2-0.9.5 \
+ memmap2-0.9.8 \
memoffset-0.9.1 \
metal-0.31.0 \
mime-0.3.17 \
@@ -340,7 +342,7 @@ CARGO_CRATES= addr2line-0.24.2 \
minimal-lexical-0.2.1 \
miniz_oxide-0.8.9 \
mio-1.0.4 \
- moddef-0.2.6 \
+ moddef-0.3.0 \
multer-3.1.0 \
multimap-0.10.1 \
naga-25.0.1 \
@@ -351,11 +353,11 @@ CARGO_CRATES= addr2line-0.24.2 \
nom-7.1.3 \
nom-8.0.0 \
normpath-1.3.0 \
- notify-8.0.0 \
+ notify-8.2.0 \
notify-debouncer-mini-0.6.0 \
notify-types-2.0.0 \
ntapi-0.4.1 \
- nu-ansi-term-0.46.0 \
+ nu-ansi-term-0.50.1 \
num-0.4.3 \
num-bigint-0.4.6 \
num-complex-0.4.6 \
@@ -368,8 +370,8 @@ CARGO_CRATES= addr2line-0.24.2 \
num-rational-0.4.2 \
num-traits-0.2.19 \
num_cpus-1.17.0 \
- num_enum-0.7.3 \
- num_enum_derive-0.7.3 \
+ num_enum-0.7.4 \
+ num_enum_derive-0.7.4 \
nvml-wrapper-0.10.0 \
nvml-wrapper-sys-0.8.0 \
objc-0.2.7 \
@@ -385,7 +387,6 @@ CARGO_CRATES= addr2line-0.24.2 \
option-ext-0.2.0 \
ordered-float-2.10.1 \
ordered-float-4.6.0 \
- overload-0.1.1 \
parking-2.2.1 \
parking_lot-0.12.4 \
parking_lot_core-0.9.11 \
@@ -393,7 +394,7 @@ CARGO_CRATES= addr2line-0.24.2 \
paste-1.0.15 \
pathdiff-0.2.3 \
pbkdf2-0.12.2 \
- percent-encoding-2.3.1 \
+ percent-encoding-2.3.2 \
pest-2.8.1 \
pest_derive-2.8.1 \
pest_generator-2.8.1 \
@@ -418,17 +419,17 @@ CARGO_CRATES= addr2line-0.24.2 \
plotters-svg-0.3.7 \
portable-atomic-1.11.1 \
portable-atomic-util-0.2.4 \
- potential_utf-0.1.2 \
+ potential_utf-0.1.3 \
powerfmt-0.2.0 \
ppv-lite86-0.2.21 \
precomputed-hash-0.1.1 \
presser-0.3.1 \
- prettyplease-0.2.34 \
+ prettyplease-0.2.37 \
priority-queue-2.5.0 \
proc-macro-crate-3.3.0 \
proc-macro-hack-0.5.20+deprecated \
- proc-macro2-1.0.95 \
- profiling-1.0.16 \
+ proc-macro2-1.0.101 \
+ profiling-1.0.17 \
prost-0.13.5 \
prost-build-0.13.5 \
prost-derive-0.13.5 \
@@ -446,13 +447,13 @@ CARGO_CRATES= addr2line-0.24.2 \
pyo3-ffi-0.25.1 \
pyo3-macros-0.25.1 \
pyo3-macros-backend-0.25.1 \
- quinn-0.11.8 \
- quinn-proto-0.11.12 \
- quinn-udp-0.5.12 \
+ quinn-0.11.9 \
+ quinn-proto-0.11.13 \
+ quinn-udp-0.5.14 \
quote-1.0.40 \
- r-efi-5.2.0 \
+ r-efi-5.3.0 \
rand-0.8.5 \
- rand-0.9.1 \
+ rand-0.9.2 \
rand_chacha-0.3.1 \
rand_chacha-0.9.0 \
rand_core-0.6.4 \
@@ -463,49 +464,46 @@ CARGO_CRATES= addr2line-0.24.2 \
raw-cpuid-11.5.0 \
raw-window-handle-0.6.2 \
rawpointer-0.2.1 \
- rayon-1.10.0 \
- rayon-core-1.12.1 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
reborrow-0.5.5 \
- redox_syscall-0.5.13 \
+ redox_syscall-0.5.17 \
redox_users-0.4.6 \
- redox_users-0.5.0 \
- regex-1.11.1 \
- regex-automata-0.1.10 \
- regex-automata-0.4.9 \
- regex-syntax-0.6.29 \
- regex-syntax-0.8.5 \
+ redox_users-0.5.2 \
+ regex-1.11.2 \
+ regex-automata-0.4.10 \
+ regex-syntax-0.8.6 \
relative-path-1.9.3 \
renderdoc-sys-1.1.0 \
reqwest-0.11.27 \
- reqwest-0.12.20 \
+ reqwest-0.12.23 \
ring-0.17.14 \
rmp-0.8.14 \
rmp-serde-1.3.0 \
rstest-0.25.0 \
rstest_macros-0.25.0 \
rusqlite-0.36.0 \
- rustc-demangle-0.1.25 \
+ rustc-demangle-0.1.26 \
rustc-hash-1.1.0 \
rustc-hash-2.1.1 \
rustc_version-0.4.1 \
- rustix-1.0.7 \
- rustls-0.23.28 \
+ rustix-1.0.8 \
+ rustls-0.23.31 \
rustls-native-certs-0.8.1 \
rustls-pemfile-1.0.4 \
rustls-pemfile-2.2.0 \
rustls-pki-types-1.12.0 \
- rustls-webpki-0.103.3 \
- rustversion-1.0.21 \
+ rustls-webpki-0.103.4 \
+ rustversion-1.0.22 \
ryu-1.0.20 \
safetensors-0.4.5 \
same-file-1.0.6 \
sanitize-filename-0.5.0 \
sanitize-filename-0.6.0 \
schannel-0.1.27 \
- scoped-tls-1.0.1 \
scopeguard-1.2.0 \
security-framework-2.11.1 \
- security-framework-3.2.0 \
+ security-framework-3.3.0 \
security-framework-sys-2.14.0 \
self_cell-1.2.0 \
semver-1.0.26 \
@@ -515,28 +513,29 @@ CARGO_CRATES= addr2line-0.24.2 \
serde-value-0.7.0 \
serde_bytes-0.11.17 \
serde_derive-1.0.219 \
- serde_json-1.0.140 \
+ serde_json-1.0.143 \
serde_path_to_error-0.1.17 \
serde_repr-0.1.20 \
- serde_spanned-0.6.9 \
- serde_tuple-1.1.0 \
- serde_tuple_macros-1.0.1 \
+ serde_spanned-1.0.0 \
+ serde_tuple-1.1.2 \
+ serde_tuple_macros-1.1.2 \
serde_urlencoded-0.7.1 \
sha1-0.10.6 \
sha2-0.10.9 \
sharded-slab-0.1.7 \
shlex-1.3.0 \
- signal-hook-registry-1.4.5 \
+ signal-hook-registry-1.4.6 \
simd-adler32-0.3.7 \
siphasher-0.3.11 \
siphasher-1.0.1 \
- slab-0.4.10 \
+ slab-0.4.11 \
slotmap-1.0.7 \
smallvec-1.15.1 \
- snafu-0.8.6 \
- snafu-derive-0.8.6 \
+ snafu-0.8.8 \
+ snafu-derive-0.8.8 \
snowflake-1.3.0 \
socket2-0.5.10 \
+ socket2-0.6.0 \
spin-0.9.8 \
spin-0.10.0 \
spirv-0.3.0+sdk-1.3.268.0 \
@@ -546,12 +545,12 @@ CARGO_CRATES= addr2line-0.24.2 \
string_cache_codegen-0.5.4 \
strsim-0.11.1 \
strum-0.26.3 \
- strum-0.27.1 \
+ strum-0.27.2 \
strum_macros-0.26.4 \
- strum_macros-0.27.1 \
+ strum_macros-0.27.2 \
subtle-2.6.1 \
syn-1.0.109 \
- syn-2.0.103 \
+ syn-2.0.106 \
sync_wrapper-0.1.2 \
sync_wrapper-1.0.2 \
synstructure-0.13.2 \
@@ -560,38 +559,40 @@ CARGO_CRATES= addr2line-0.24.2 \
sysinfo-0.33.1 \
system-configuration-0.5.1 \
system-configuration-sys-0.5.0 \
- systemstat-0.2.4 \
+ systemstat-0.2.5 \
tar-0.4.44 \
target-lexicon-0.13.2 \
- tempfile-3.20.0 \
+ tempfile-3.21.0 \
tendril-0.4.3 \
termcolor-1.4.1 \
- terminal_size-0.4.2 \
+ terminal_size-0.4.3 \
text_placeholder-0.5.1 \
thiserror-1.0.69 \
- thiserror-2.0.12 \
+ thiserror-2.0.16 \
thiserror-impl-1.0.69 \
- thiserror-impl-2.0.12 \
+ thiserror-impl-2.0.16 \
thread-tree-0.3.3 \
thread_local-1.1.9 \
- time-0.3.41 \
- time-core-0.1.4 \
- time-macros-0.2.22 \
+ time-0.3.42 \
+ time-core-0.1.5 \
+ time-macros-0.2.23 \
tinystr-0.8.1 \
tinytemplate-1.2.1 \
- tinyvec-1.9.0 \
+ tinyvec-1.10.0 \
tinyvec_macros-0.1.1 \
- tokio-1.45.1 \
+ tokio-1.47.1 \
tokio-macros-2.5.0 \
tokio-native-tls-0.3.1 \
tokio-rustls-0.26.2 \
- tokio-tungstenite-0.21.0 \
- tokio-util-0.7.15 \
+ tokio-tungstenite-0.26.2 \
+ tokio-util-0.7.16 \
toml-0.5.11 \
- toml-0.8.23 \
+ toml-0.9.5 \
toml_datetime-0.6.11 \
+ toml_datetime-0.7.0 \
toml_edit-0.22.27 \
- toml_write-0.1.2 \
+ toml_parser-1.0.2 \
+ toml_writer-1.0.2 \
topological-sort-0.2.2 \
tower-0.5.2 \
tower-http-0.6.6 \
@@ -599,12 +600,12 @@ CARGO_CRATES= addr2line-0.24.2 \
tower-service-0.3.3 \
tracing-0.1.41 \
tracing-appender-0.2.3 \
- tracing-attributes-0.1.29 \
+ tracing-attributes-0.1.30 \
tracing-core-0.1.34 \
tracing-log-0.2.0 \
- tracing-subscriber-0.3.19 \
+ tracing-subscriber-0.3.20 \
try-lock-0.2.5 \
- tungstenite-0.21.0 \
+ tungstenite-0.26.2 \
type-map-0.5.1 \
typenum-1.18.0 \
ucd-trie-0.1.7 \
@@ -628,11 +629,11 @@ CARGO_CRATES= addr2line-0.24.2 \
unindent-0.2.4 \
untrusted-0.9.0 \
unty-0.0.4 \
- url-2.5.4 \
+ url-2.5.7 \
utf-8-0.7.6 \
utf8_iter-1.0.4 \
utf8parse-0.2.2 \
- uuid-1.17.0 \
+ uuid-1.18.0 \
valuable-0.1.1 \
variadics_please-1.1.0 \
vcpkg-0.2.15 \
@@ -641,9 +642,8 @@ CARGO_CRATES= addr2line-0.24.2 \
vswhom-sys-0.1.3 \
walkdir-2.5.0 \
want-0.3.1 \
- warp-0.3.7 \
wasi-0.11.1+wasi-snapshot-preview1 \
- wasi-0.14.2+wasi-0.2.4 \
+ wasi-0.14.3+wasi-0.2.4 \
wasix-0.12.21 \
wasm-bindgen-0.2.100 \
wasm-bindgen-backend-0.2.100 \
@@ -655,7 +655,7 @@ CARGO_CRATES= addr2line-0.24.2 \
web-sys-0.3.77 \
web-time-1.1.0 \
web_atoms-0.1.3 \
- webpki-roots-1.0.0 \
+ webpki-roots-1.0.2 \
wgpu-25.0.2 \
wgpu-core-25.0.2 \
wgpu-core-deps-apple-25.0.0 \
@@ -667,20 +667,20 @@ CARGO_CRATES= addr2line-0.24.2 \
widestring-1.2.0 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.9 \
+ winapi-util-0.1.10 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
- windows-0.56.0 \
+ windows-0.57.0 \
windows-0.58.0 \
windows-0.61.3 \
windows-collections-0.2.0 \
- windows-core-0.56.0 \
+ windows-core-0.57.0 \
windows-core-0.58.0 \
windows-core-0.61.2 \
windows-future-0.2.1 \
- windows-implement-0.56.0 \
+ windows-implement-0.57.0 \
windows-implement-0.58.0 \
windows-implement-0.60.0 \
- windows-interface-0.56.0 \
+ windows-interface-0.57.0 \
windows-interface-0.58.0 \
windows-interface-0.59.1 \
windows-link-0.1.3 \
@@ -696,7 +696,7 @@ CARGO_CRATES= addr2line-0.24.2 \
windows-sys-0.60.2 \
windows-targets-0.48.5 \
windows-targets-0.52.6 \
- windows-targets-0.53.2 \
+ windows-targets-0.53.3 \
windows-threading-0.1.0 \
windows_aarch64_gnullvm-0.48.5 \
windows_aarch64_gnullvm-0.52.6 \
@@ -721,32 +721,32 @@ CARGO_CRATES= addr2line-0.24.2 \
windows_x86_64_msvc-0.48.5 \
windows_x86_64_msvc-0.52.6 \
windows_x86_64_msvc-0.53.0 \
- winnow-0.7.11 \
+ winnow-0.7.13 \
winreg-0.50.0 \
winreg-0.55.0 \
winsafe-0.0.19 \
- wiremock-0.6.3 \
- wit-bindgen-rt-0.39.0 \
+ wiremock-0.6.5 \
+ wit-bindgen-0.45.0 \
wrapcenum-derive-0.4.1 \
writeable-0.6.1 \
- xattr-1.5.0 \
- xml-rs-0.8.26 \
+ xattr-1.5.1 \
+ xml-rs-0.8.27 \
xml5ever-0.17.0 \
xz2-0.1.7 \
yoke-0.7.5 \
yoke-0.8.0 \
yoke-derive-0.7.5 \
yoke-derive-0.8.0 \
- zerocopy-0.8.25 \
- zerocopy-derive-0.8.25 \
+ zerocopy-0.8.26 \
+ zerocopy-derive-0.8.26 \
zerofrom-0.1.6 \
zerofrom-derive-0.1.6 \
zeroize-1.8.1 \
zerotrie-0.2.2 \
- zerovec-0.11.2 \
+ zerovec-0.11.4 \
zerovec-derive-0.11.1 \
zip-1.1.4 \
- zip-4.1.0 \
+ zip-4.6.0 \
zlib-rs-0.5.1 \
zopfli-0.8.2 \
zstd-0.13.3 \
diff --git a/games/anki/distinfo b/games/anki/distinfo
index 70699e098ee1..aa34c590361d 100644
--- a/games/anki/distinfo
+++ b/games/anki/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1753518688
-SHA256 (anki-yarn-cache-25.07.5.tar.gz) = 361af862b2c914e1c430b5f896cfca8b6d75ff6a8520c799eb1c70e59c60a7c4
-SIZE (anki-yarn-cache-25.07.5.tar.gz) = 527779870
+TIMESTAMP = 1757161718
+SHA256 (anki-yarn-cache-25.09.tar.gz) = 41c4e2b229370e595fa9d0d12a88ca997942125ef07dba9d85924436aaeefa68
+SIZE (anki-yarn-cache-25.09.tar.gz) = 527778869
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
@@ -11,28 +11,28 @@ SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2d
SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923
SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622
-SHA256 (rust/crates/ammonia-4.1.0.crate) = 3ada2ee439075a3e70b6992fce18ac4e407cd05aea9ca3f75d2c0b0c20bbb364
-SIZE (rust/crates/ammonia-4.1.0.crate) = 53061
+SHA256 (rust/crates/ammonia-4.1.1.crate) = d6b346764dd0814805de8abf899fe03065bcee69bb1a4771c785817e39f3978f
+SIZE (rust/crates/ammonia-4.1.1.crate) = 56029
SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
SHA256 (rust/crates/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299
SIZE (rust/crates/anes-0.1.6.crate) = 23857
-SHA256 (rust/crates/anstream-0.6.19.crate) = 301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933
-SIZE (rust/crates/anstream-0.6.19.crate) = 28767
+SHA256 (rust/crates/anstream-0.6.20.crate) = 3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192
+SIZE (rust/crates/anstream-0.6.20.crate) = 28797
SHA256 (rust/crates/anstyle-1.0.11.crate) = 862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd
SIZE (rust/crates/anstyle-1.0.11.crate) = 15880
SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
-SHA256 (rust/crates/anstyle-query-1.1.3.crate) = 6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9
-SIZE (rust/crates/anstyle-query-1.1.3.crate) = 10190
-SHA256 (rust/crates/anstyle-wincon-3.0.9.crate) = 403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882
-SIZE (rust/crates/anstyle-wincon-3.0.9.crate) = 12561
-SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487
-SIZE (rust/crates/anyhow-1.0.98.crate) = 53334
-SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223
-SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816
+SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2
+SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192
+SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a
+SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558
+SHA256 (rust/crates/anyhow-1.0.99.crate) = b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100
+SIZE (rust/crates/anyhow-1.0.99.crate) = 53809
+SHA256 (rust/crates/arbitrary-1.4.2.crate) = c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1
+SIZE (rust/crates/arbitrary-1.4.2.crate) = 38307
SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb
SIZE (rust/crates/arrayref-0.3.9.crate) = 9186
SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
@@ -41,22 +41,22 @@ SHA256 (rust/crates/ash-0.38.0+1.3.281.crate) = 0bb44936d800fea8f016d7f2311c6a4f
SIZE (rust/crates/ash-0.38.0+1.3.281.crate) = 457775
SHA256 (rust/crates/assert-json-diff-2.0.2.crate) = 47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12
SIZE (rust/crates/assert-json-diff-2.0.2.crate) = 10874
-SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a
-SIZE (rust/crates/async-channel-2.3.1.crate) = 14576
-SHA256 (rust/crates/async-compression-0.4.24.crate) = d615619615a650c571269c00dca41db04b9210037fa76ed8239f70404ab56985
-SIZE (rust/crates/async-compression-0.4.24.crate) = 116001
+SHA256 (rust/crates/async-channel-2.5.0.crate) = 924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2
+SIZE (rust/crates/async-channel-2.5.0.crate) = 18624
+SHA256 (rust/crates/async-compression-0.4.30.crate) = 977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23
+SIZE (rust/crates/async-compression-0.4.30.crate) = 98817
SHA256 (rust/crates/async-stream-0.3.6.crate) = 0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476
SIZE (rust/crates/async-stream-0.3.6.crate) = 13823
SHA256 (rust/crates/async-stream-impl-0.3.6.crate) = c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d
SIZE (rust/crates/async-stream-impl-0.3.6.crate) = 4312
-SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5
-SIZE (rust/crates/async-trait-0.1.88.crate) = 32084
+SHA256 (rust/crates/async-trait-0.1.89.crate) = 9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb
+SIZE (rust/crates/async-trait-0.1.89.crate) = 32171
SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
SHA256 (rust/crates/atomic_float-1.1.0.crate) = 628d228f918ac3b82fe590352cc719d30664a0c13ca3a60266fe02c7132d480a
SIZE (rust/crates/atomic_float-1.1.0.crate) = 16232
-SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
-SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
SHA256 (rust/crates/axum-0.8.4.crate) = 021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5
SIZE (rust/crates/axum-0.8.4.crate) = 175159
SHA256 (rust/crates/axum-client-ip-1.1.3.crate) = 3f08a543641554404b42acd0d2494df12ca2be034d7b8ee4dbbf7446f940a2ef
@@ -83,8 +83,8 @@ SHA256 (rust/crates/bit-vec-0.8.0.crate) = 5e764a1d40d510daf35e07be9eb06e7577090
SIZE (rust/crates/bit-vec-0.8.0.crate) = 24132
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967
-SIZE (rust/crates/bitflags-2.9.1.crate) = 47913
+SHA256 (rust/crates/bitflags-2.9.3.crate) = 34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d
+SIZE (rust/crates/bitflags-2.9.3.crate) = 47777
SHA256 (rust/crates/blake3-1.8.2.crate) = 3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0
SIZE (rust/crates/blake3-1.8.2.crate) = 205967
SHA256 (rust/crates/block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
@@ -93,8 +93,8 @@ SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996a
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4
SIZE (rust/crates/bstr-1.12.0.crate) = 351557
-SHA256 (rust/crates/bumpalo-3.18.1.crate) = 793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee
-SIZE (rust/crates/bumpalo-3.18.1.crate) = 96348
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
SHA256 (rust/crates/burn-0.17.1.crate) = ec639306f45bd663957465e840cfb07bcd2ae18f7c045dd9aba8cb7a69c0654a
SIZE (rust/crates/burn-0.17.1.crate) = 57454
SHA256 (rust/crates/burn-autodiff-0.17.1.crate) = a178966322ab7ce71405f1324cdc14f79256d85a47138bbd2c8c4f0056148601
@@ -127,26 +127,26 @@ SHA256 (rust/crates/burn-train-0.17.1.crate) = 140182cf5f1255d60e1d8c677fa45c6f7
SIZE (rust/crates/burn-train-0.17.1.crate) = 72267
SHA256 (rust/crates/burn-wgpu-0.17.1.crate) = 215bf0e641a27e17bcd3941a11867dcda411c9cb009488c6b6650c8206437c30
SIZE (rust/crates/burn-wgpu-0.17.1.crate) = 24880
-SHA256 (rust/crates/bytemuck-1.23.1.crate) = 5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422
-SIZE (rust/crates/bytemuck-1.23.1.crate) = 52585
-SHA256 (rust/crates/bytemuck_derive-1.9.3.crate) = 7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1
-SIZE (rust/crates/bytemuck_derive-1.9.3.crate) = 23555
+SHA256 (rust/crates/bytemuck-1.23.2.crate) = 3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677
+SIZE (rust/crates/bytemuck-1.23.2.crate) = 53021
+SHA256 (rust/crates/bytemuck_derive-1.10.1.crate) = 4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29
+SIZE (rust/crates/bytemuck_derive-1.10.1.crate) = 25122
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
SIZE (rust/crates/bytes-1.10.1.crate) = 76779
SHA256 (rust/crates/bytesize-1.3.3.crate) = 2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659
SIZE (rust/crates/bytesize-1.3.3.crate) = 11594
-SHA256 (rust/crates/camino-1.1.10.crate) = 0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab
-SIZE (rust/crates/camino-1.1.10.crate) = 42306
+SHA256 (rust/crates/camino-1.1.12.crate) = dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5
+SIZE (rust/crates/camino-1.1.12.crate) = 44284
SHA256 (rust/crates/candle-core-0.8.4.crate) = 06ccf5ee3532e66868516d9b315f73aec9f34ea1a37ae98514534d458915dbf1
SIZE (rust/crates/candle-core-0.8.4.crate) = 232912
SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5
SIZE (rust/crates/cast-0.3.0.crate) = 11452
-SHA256 (rust/crates/cc-1.2.27.crate) = d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc
-SIZE (rust/crates/cc-1.2.27.crate) = 107070
-SHA256 (rust/crates/cfg-if-1.0.1.crate) = 9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268
-SIZE (rust/crates/cfg-if-1.0.1.crate) = 8683
+SHA256 (rust/crates/cc-1.2.34.crate) = 42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc
+SIZE (rust/crates/cc-1.2.34.crate) = 111754
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d
@@ -157,14 +157,14 @@ SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce369
SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697
SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9
SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695
-SHA256 (rust/crates/clap-4.5.40.crate) = 40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f
-SIZE (rust/crates/clap-4.5.40.crate) = 57419
-SHA256 (rust/crates/clap_builder-4.5.40.crate) = e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e
-SIZE (rust/crates/clap_builder-4.5.40.crate) = 169191
-SHA256 (rust/crates/clap_complete-4.5.54.crate) = aad5b1b4de04fead402672b48897030eec1f3bfe1550776322f59f6d6e6a5677
-SIZE (rust/crates/clap_complete-4.5.54.crate) = 48534
-SHA256 (rust/crates/clap_derive-4.5.40.crate) = d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce
-SIZE (rust/crates/clap_derive-4.5.40.crate) = 33470
+SHA256 (rust/crates/clap-4.5.46.crate) = 2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57
+SIZE (rust/crates/clap-4.5.46.crate) = 58332
+SHA256 (rust/crates/clap_builder-4.5.46.crate) = fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41
+SIZE (rust/crates/clap_builder-4.5.46.crate) = 169831
+SHA256 (rust/crates/clap_complete-4.5.57.crate) = 4d9501bd3f5f09f7bbee01da9a511073ed30a80cd7a509f1214bb74eadea71ad
+SIZE (rust/crates/clap_complete-4.5.57.crate) = 48637
+SHA256 (rust/crates/clap_derive-4.5.45.crate) = 14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6
+SIZE (rust/crates/clap_derive-4.5.45.crate) = 33545
SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
SHA256 (rust/crates/client-ip-0.1.1.crate) = 31211fc26899744f5b22521fdc971e5f3875991d8880537537470685a0e9552d
@@ -181,6 +181,10 @@ SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845
SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
SHA256 (rust/crates/colored-3.0.0.crate) = fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e
SIZE (rust/crates/colored-3.0.0.crate) = 34497
+SHA256 (rust/crates/compression-codecs-0.4.30.crate) = 485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64
+SIZE (rust/crates/compression-codecs-0.4.30.crate) = 22516
+SHA256 (rust/crates/compression-core-0.4.29.crate) = e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb
+SIZE (rust/crates/compression-core-0.4.29.crate) = 4321
SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973
SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654
SHA256 (rust/crates/constant_time_eq-0.3.1.crate) = 7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6
@@ -197,8 +201,8 @@ SHA256 (rust/crates/core-graphics-types-0.1.3.crate) = 45390e6114f68f718cc7a8305
SIZE (rust/crates/core-graphics-types-0.1.3.crate) = 7063
SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
-SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
-SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
SHA256 (rust/crates/criterion-0.6.0.crate) = 3bf7af66b0989381bd0be551bd7cc91912a655a58c6918420c9527b1fd8b4679
SIZE (rust/crates/criterion-0.6.0.crate) = 119470
SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1
@@ -211,8 +215,8 @@ SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1
SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
-SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929
-SIZE (rust/crates/crunchy-0.2.3.crate) = 3775
+SHA256 (rust/crates/crunchy-0.2.4.crate) = 460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5
+SIZE (rust/crates/crunchy-0.2.4.crate) = 3887
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
SHA256 (rust/crates/cssparser-0.35.0.crate) = 4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa
@@ -235,8 +239,8 @@ SHA256 (rust/crates/cubecl-cuda-0.5.0.crate) = 71e091e4e3a3900faff440aec4053805e
SIZE (rust/crates/cubecl-cuda-0.5.0.crate) = 26384
SHA256 (rust/crates/cubecl-hip-0.5.0.crate) = 0c2f8c00207517de61cccdc4ca2724bc1db9dab94840beaf4329e43cead3bc4a
SIZE (rust/crates/cubecl-hip-0.5.0.crate) = 23359
-SHA256 (rust/crates/cubecl-hip-sys-6.4.4348200.crate) = 283fa7401056c53fb27e18f5d1806246bb5f937c4ecbd2453896f7a9ec495c73
-SIZE (rust/crates/cubecl-hip-sys-6.4.4348200.crate) = 382555
+SHA256 (rust/crates/cubecl-hip-sys-6.4.4348201.crate) = 678a20e5e38ce9c772bdd53596f2801ef210ae735ec2d7d46b5d5b675c09d929
+SIZE (rust/crates/cubecl-hip-sys-6.4.4348201.crate) = 382548
SHA256 (rust/crates/cubecl-ir-0.5.0.crate) = e096d77646590f0180ed4ce1aa7df4ecc7219f3c4616e9fe72d93ab63a352855
SIZE (rust/crates/cubecl-ir-0.5.0.crate) = 27676
SHA256 (rust/crates/cubecl-linalg-0.5.0.crate) = 75aacf86f6004c274e63589aed55c5edcbcdf1b292eaf4ce2c1688c04c41a194
@@ -263,18 +267,18 @@ SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b
SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532
SHA256 (rust/crates/data-encoding-2.9.0.crate) = 2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476
SIZE (rust/crates/data-encoding-2.9.0.crate) = 21564
-SHA256 (rust/crates/deadpool-0.10.0.crate) = fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490
-SIZE (rust/crates/deadpool-0.10.0.crate) = 31997
+SHA256 (rust/crates/deadpool-0.12.2.crate) = 5ed5957ff93768adf7a65ab167a17835c3d2c3c50d084fe305174c112f468e2f
+SIZE (rust/crates/deadpool-0.12.2.crate) = 34422
SHA256 (rust/crates/deadpool-runtime-0.1.4.crate) = 092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b
SIZE (rust/crates/deadpool-runtime-0.1.4.crate) = 7664
-SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
-SIZE (rust/crates/deranged-0.4.0.crate) = 23235
+SHA256 (rust/crates/deranged-0.5.2.crate) = 75d7cc94194b4dd0fa12845ef8c911101b7f37633cda14997a6e82099aa0b693
+SIZE (rust/crates/deranged-0.5.2.crate) = 24030
SHA256 (rust/crates/derive-new-0.6.0.crate) = d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad
SIZE (rust/crates/derive-new-0.6.0.crate) = 7694
SHA256 (rust/crates/derive-new-0.7.0.crate) = 2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc
SIZE (rust/crates/derive-new-0.7.0.crate) = 8831
-SHA256 (rust/crates/derive_arbitrary-1.4.1.crate) = 30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800
-SIZE (rust/crates/derive_arbitrary-1.4.1.crate) = 11521
+SHA256 (rust/crates/derive_arbitrary-1.4.2.crate) = 1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a
+SIZE (rust/crates/derive_arbitrary-1.4.2.crate) = 12290
SHA256 (rust/crates/derive_builder-0.20.2.crate) = 507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947
SIZE (rust/crates/derive_builder-0.20.2.crate) = 36661
SHA256 (rust/crates/derive_builder_core-0.20.2.crate) = 2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8
@@ -315,10 +319,10 @@ SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e
SIZE (rust/crates/either-1.15.0.crate) = 20114
SHA256 (rust/crates/elasticlunr-rs-3.0.2.crate) = 41e83863a500656dfa214fee6682de9c5b9f03de6860fec531235ed2ae9f6571
SIZE (rust/crates/elasticlunr-rs-3.0.2.crate) = 109533
-SHA256 (rust/crates/embassy-futures-0.1.1.crate) = 1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067
-SIZE (rust/crates/embassy-futures-0.1.1.crate) = 6671
-SHA256 (rust/crates/embed-resource-3.0.4.crate) = 0963f530273dc3022ab2bdc3fcd6d488e850256f2284a82b7413cb9481ee85dd
-SIZE (rust/crates/embed-resource-3.0.4.crate) = 18260
+SHA256 (rust/crates/embassy-futures-0.1.2.crate) = dc2d050bdc5c21e0862a89256ed8029ae6c290a93aecefc73084b3002cdebb01
+SIZE (rust/crates/embassy-futures-0.1.2.crate) = 8773
+SHA256 (rust/crates/embed-resource-3.0.5.crate) = 4c6d81016d6c977deefb2ef8d8290da019e27cc26167e102185da528e6c0ab38
+SIZE (rust/crates/embed-resource-3.0.5.crate) = 18287
SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
SHA256 (rust/crates/enum-as-inner-0.6.1.crate) = a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc
@@ -333,10 +337,10 @@ SHA256 (rust/crates/envy-0.4.2.crate) = 3f47e0157f2cb54f5ae1bd371b30a2ae4311e1c0
SIZE (rust/crates/envy-0.4.2.crate) = 10985
SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
-SHA256 (rust/crates/errno-0.3.12.crate) = cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18
-SIZE (rust/crates/errno-0.3.12.crate) = 12423
-SHA256 (rust/crates/event-listener-5.4.0.crate) = 3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae
-SIZE (rust/crates/event-listener-5.4.0.crate) = 43452
+SHA256 (rust/crates/errno-0.3.13.crate) = 778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad
+SIZE (rust/crates/errno-0.3.13.crate) = 12449
+SHA256 (rust/crates/event-listener-5.4.1.crate) = e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab
+SIZE (rust/crates/event-listener-5.4.1.crate) = 43782
SHA256 (rust/crates/event-listener-strategy-0.5.4.crate) = 8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93
SIZE (rust/crates/event-listener-strategy-0.5.4.crate) = 16179
SHA256 (rust/crates/fallible-iterator-0.3.0.crate) = 2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649
@@ -345,8 +349,8 @@ SHA256 (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 7360491ce676a36bf
SIZE (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 9249
SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
-SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586
-SIZE (rust/crates/filetime-0.2.25.crate) = 14940
+SHA256 (rust/crates/filetime-0.2.26.crate) = bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed
+SIZE (rust/crates/filetime-0.2.26.crate) = 17273
SHA256 (rust/crates/fixedbitset-0.5.7.crate) = 1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99
SIZE (rust/crates/fixedbitset-0.5.7.crate) = 26537
SHA256 (rust/crates/flate2-1.1.2.crate) = 4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d
@@ -375,12 +379,12 @@ SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7f
SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
SHA256 (rust/crates/foreign-types-shared-0.3.1.crate) = aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b
SIZE (rust/crates/foreign-types-shared-0.3.1.crate) = 6006
-SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
-SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf
+SIZE (rust/crates/form_urlencoded-1.2.2.crate) = 9347
SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2
SIZE (rust/crates/fsevent-sys-4.1.0.crate) = 4620
-SHA256 (rust/crates/fsrs-4.1.1.crate) = c1f3a8c3df2c324ebab71461178fe8c1fe2d7373cf603f312b652befd026f06d
-SIZE (rust/crates/fsrs-4.1.1.crate) = 87592
+SHA256 (rust/crates/fsrs-5.1.0.crate) = 04954cc67c3c11ee342a2ee1f5222bf76d73f7772df08d37dc9a6cdd73c467eb
+SIZE (rust/crates/fsrs-5.1.0.crate) = 89928
SHA256 (rust/crates/futf-0.1.5.crate) = df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843
SIZE (rust/crates/futf-0.1.5.crate) = 11344
SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876
@@ -393,8 +397,8 @@ SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d3
SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965
SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6
SIZE (rust/crates/futures-io-0.3.31.crate) = 9047
-SHA256 (rust/crates/futures-lite-2.6.0.crate) = f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532
-SIZE (rust/crates/futures-lite-2.6.0.crate) = 45157
+SHA256 (rust/crates/futures-lite-2.6.1.crate) = f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad
+SIZE (rust/crates/futures-lite-2.6.1.crate) = 46095
SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650
SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341
SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7
@@ -435,8 +439,8 @@ SHA256 (rust/crates/gemm-f64-0.18.2.crate) = 35b2a4f76ce4b8b16eadc11ccf2e083252d
SIZE (rust/crates/gemm-f64-0.18.2.crate) = 7199
SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
-SHA256 (rust/crates/getopts-0.2.23.crate) = cba6ae63eb948698e300f645f87c70f76630d505f23b8907cf1e193ee85048c1
-SIZE (rust/crates/getopts-0.2.23.crate) = 21409
+SHA256 (rust/crates/getopts-0.2.24.crate) = cfe4fbac503b8d1f88e6676011885f34b7174f46e59956bba534ba83abded4df
+SIZE (rust/crates/getopts-0.2.24.crate) = 21467
SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592
SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
@@ -445,8 +449,8 @@ SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b
SIZE (rust/crates/gimli-0.31.1.crate) = 279515
SHA256 (rust/crates/gl_generator-0.14.0.crate) = 1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d
SIZE (rust/crates/gl_generator-0.14.0.crate) = 22330
-SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2
-SIZE (rust/crates/glob-0.3.2.crate) = 22359
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
SHA256 (rust/crates/globset-0.4.16.crate) = 54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5
SIZE (rust/crates/globset-0.4.16.crate) = 26533
SHA256 (rust/crates/glow-0.16.0.crate) = c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08
@@ -463,10 +467,10 @@ SHA256 (rust/crates/gpu-descriptor-0.3.2.crate) = b89c83349105e3732062a895becfc7
SIZE (rust/crates/gpu-descriptor-0.3.2.crate) = 7943
SHA256 (rust/crates/gpu-descriptor-types-0.2.0.crate) = fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91
SIZE (rust/crates/gpu-descriptor-types-0.2.0.crate) = 2169
-SHA256 (rust/crates/h2-0.3.26.crate) = 81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8
-SIZE (rust/crates/h2-0.3.26.crate) = 168315
-SHA256 (rust/crates/h2-0.4.10.crate) = a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5
-SIZE (rust/crates/h2-0.4.10.crate) = 174800
+SHA256 (rust/crates/h2-0.3.27.crate) = 0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d
+SIZE (rust/crates/h2-0.3.27.crate) = 169180
+SHA256 (rust/crates/h2-0.4.12.crate) = f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386
+SIZE (rust/crates/h2-0.4.12.crate) = 176264
SHA256 (rust/crates/half-2.6.0.crate) = 459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9
SIZE (rust/crates/half-2.6.0.crate) = 59507
SHA256 (rust/crates/handlebars-6.3.2.crate) = 759e2d5aea3287cb1190c8ec394f42866cb5bf74fcbf213f354e3c856ea26098
@@ -475,16 +479,12 @@ SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b2
SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265
SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
-SHA256 (rust/crates/hashbrown-0.15.4.crate) = 5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5
-SIZE (rust/crates/hashbrown-0.15.4.crate) = 140447
+SHA256 (rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1
+SIZE (rust/crates/hashbrown-0.15.5.crate) = 140908
SHA256 (rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1
SIZE (rust/crates/hashlink-0.10.0.crate) = 29402
-SHA256 (rust/crates/headers-0.3.9.crate) = 06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270
-SIZE (rust/crates/headers-0.3.9.crate) = 68290
SHA256 (rust/crates/headers-0.4.1.crate) = b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb
SIZE (rust/crates/headers-0.4.1.crate) = 71105
-SHA256 (rust/crates/headers-core-0.2.0.crate) = e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429
-SIZE (rust/crates/headers-core-0.2.0.crate) = 2380
SHA256 (rust/crates/headers-core-0.3.0.crate) = 54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4
SIZE (rust/crates/headers-core-0.3.0.crate) = 2333
SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
@@ -499,8 +499,8 @@ SHA256 (rust/crates/hmac-0.12.1.crate) = 6c49c37c09c17a53d937dfbb742eb3a961d65a9
SIZE (rust/crates/hmac-0.12.1.crate) = 42657
SHA256 (rust/crates/html5ever-0.26.0.crate) = bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7
SIZE (rust/crates/html5ever-0.26.0.crate) = 72921
-SHA256 (rust/crates/html5ever-0.31.0.crate) = 953cbbe631aae7fc0a112702ad5d3aaf09da38beaf45ea84610d6e1c358f569c
-SIZE (rust/crates/html5ever-0.31.0.crate) = 72775
+SHA256 (rust/crates/html5ever-0.35.0.crate) = 55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4
+SIZE (rust/crates/html5ever-0.35.0.crate) = 76142
SHA256 (rust/crates/htmlescape-0.3.1.crate) = e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163
SIZE (rust/crates/htmlescape-0.3.1.crate) = 53226
SHA256 (rust/crates/http-0.2.12.crate) = 601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1
@@ -513,22 +513,24 @@ SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b7
SIZE (rust/crates/http-body-1.0.1.crate) = 6125
SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a
SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975
+SHA256 (rust/crates/http-range-header-0.4.2.crate) = 9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c
+SIZE (rust/crates/http-range-header-0.4.2.crate) = 8545
SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87
SIZE (rust/crates/httparse-1.10.1.crate) = 45190
SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9
SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
SHA256 (rust/crates/hyper-0.14.32.crate) = 41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7
SIZE (rust/crates/hyper-0.14.32.crate) = 199622
-SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80
-SIZE (rust/crates/hyper-1.6.0.crate) = 153923
+SHA256 (rust/crates/hyper-1.7.0.crate) = eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e
+SIZE (rust/crates/hyper-1.7.0.crate) = 157006
SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
SHA256 (rust/crates/hyper-tls-0.5.0.crate) = d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905
SIZE (rust/crates/hyper-tls-0.5.0.crate) = 13257
SHA256 (rust/crates/hyper-tls-0.6.0.crate) = 70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0
SIZE (rust/crates/hyper-tls-0.6.0.crate) = 15052
-SHA256 (rust/crates/hyper-util-0.1.14.crate) = dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb
-SIZE (rust/crates/hyper-util-0.1.14.crate) = 101462
+SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
+SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184
SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8
SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919
SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
@@ -551,14 +553,14 @@ SHA256 (rust/crates/id_tree-1.8.0.crate) = bcd9db8dd5be8bde5a2624ed4b2dfb74368fe
SIZE (rust/crates/id_tree-1.8.0.crate) = 30170
SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
-SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
-SIZE (rust/crates/idna-1.0.3.crate) = 142515
+SHA256 (rust/crates/idna-1.1.0.crate) = 3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de
+SIZE (rust/crates/idna-1.1.0.crate) = 148747
SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
SHA256 (rust/crates/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b
SIZE (rust/crates/ignore-0.4.23.crate) = 55901
-SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e
-SIZE (rust/crates/indexmap-2.9.0.crate) = 91214
+SHA256 (rust/crates/indexmap-2.11.0.crate) = f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9
+SIZE (rust/crates/indexmap-2.11.0.crate) = 99851
SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd
SIZE (rust/crates/indoc-2.0.6.crate) = 17164
SHA256 (rust/crates/inflections-1.1.1.crate) = a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a
@@ -571,6 +573,8 @@ SHA256 (rust/crates/intl-memoizer-0.5.3.crate) = 310da2e345f5eb861e7a07ee182262e
SIZE (rust/crates/intl-memoizer-0.5.3.crate) = 12171
SHA256 (rust/crates/intl_pluralrules-7.0.2.crate) = 078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972
SIZE (rust/crates/intl_pluralrules-7.0.2.crate) = 9201
+SHA256 (rust/crates/io-uring-0.7.10.crate) = 046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b
+SIZE (rust/crates/io-uring-0.7.10.crate) = 103070
SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
SHA256 (rust/crates/iri-string-0.7.8.crate) = dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2
@@ -591,8 +595,8 @@ SHA256 (rust/crates/jiff-static-0.2.15.crate) = 03343451ff899767262ec32146f6d559
SIZE (rust/crates/jiff-static-0.2.15.crate) = 76146
SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130
SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232
-SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a
-SIZE (rust/crates/jobserver-0.1.33.crate) = 29136
+SHA256 (rust/crates/jobserver-0.1.34.crate) = 9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33
+SIZE (rust/crates/jobserver-0.1.34.crate) = 29013
SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f
SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
SHA256 (rust/crates/junction-1.2.0.crate) = 72bbdfd737a243da3dfc1f99ee8d6e166480f17ab4ac84d7c34aacd73fc7bd16
@@ -607,16 +611,16 @@ SHA256 (rust/crates/kqueue-sys-1.0.4.crate) = ed9625ffda8729b85e45cf04090035ac36
SIZE (rust/crates/kqueue-sys-1.0.4.crate) = 7160
SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
-SHA256 (rust/crates/libc-0.2.173.crate) = d8cfeafaffdbc32176b64fb251369d52ea9f0a8fbc6f8759edffef7b525d64bb
-SIZE (rust/crates/libc-0.2.173.crate) = 777353
+SHA256 (rust/crates/libc-0.2.175.crate) = 6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543
+SIZE (rust/crates/libc-0.2.175.crate) = 788728
SHA256 (rust/crates/libc-stdhandle-0.1.0.crate) = 6dac2473dc28934c5e0b82250dab231c9d3b94160d91fe9ff483323b05797551
SIZE (rust/crates/libc-stdhandle-0.1.0.crate) = 2254
SHA256 (rust/crates/libloading-0.8.8.crate) = 07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667
SIZE (rust/crates/libloading-0.8.8.crate) = 31345
SHA256 (rust/crates/libm-0.2.15.crate) = f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de
SIZE (rust/crates/libm-0.2.15.crate) = 156108
-SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
-SIZE (rust/crates/libredox-0.1.3.crate) = 6068
+SHA256 (rust/crates/libredox-0.1.9.crate) = 391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3
+SIZE (rust/crates/libredox-0.1.9.crate) = 7281
SHA256 (rust/crates/libsqlite3-sys-0.34.0.crate) = 91632f3b4fb6bd1d72aa3d78f41ffecfcf2b1a6648d8c241dbe7dbfaf4875e15
SIZE (rust/crates/libsqlite3-sys-0.34.0.crate) = 5184526
SHA256 (rust/crates/libz-rs-sys-0.5.1.crate) = 172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221
@@ -627,8 +631,8 @@ SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a17
SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088
SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956
SIZE (rust/crates/litemap-0.8.0.crate) = 34344
-SHA256 (rust/crates/litrs-0.4.1.crate) = b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5
-SIZE (rust/crates/litrs-0.4.1.crate) = 42603
+SHA256 (rust/crates/litrs-0.4.2.crate) = f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed
+SIZE (rust/crates/litrs-0.4.2.crate) = 43399
SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765
SIZE (rust/crates/lock_api-0.4.13.crate) = 28565
SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
@@ -639,24 +643,24 @@ SHA256 (rust/crates/lzma-sys-0.1.20.crate) = 5fda04ab3764e6cde78b9974eec4f779aca
SIZE (rust/crates/lzma-sys-0.1.20.crate) = 760045
SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4
SIZE (rust/crates/mac-0.1.1.crate) = 4838
-SHA256 (rust/crates/macerator-0.2.8.crate) = bce07f822458c4c303081d133a90610406162e7c8df17434956ac1892faf447b
-SIZE (rust/crates/macerator-0.2.8.crate) = 30387
-SHA256 (rust/crates/macerator-macros-0.1.2.crate) = a2b955a106dca78c0577269d67a6d56114abb8644b810fc995a22348276bb9dd
-SIZE (rust/crates/macerator-macros-0.1.2.crate) = 4259
+SHA256 (rust/crates/macerator-0.2.9.crate) = 8ac9c19702c37bae1a53d130a326b1c4f58cb17d472538cf547d44b46dbbe3aa
+SIZE (rust/crates/macerator-0.2.9.crate) = 31432
+SHA256 (rust/crates/macerator-macros-0.1.3.crate) = 8cd48b535b9b37a25a2589ab8d4f997886a2c68f59960ce06588525f38dd4944
+SIZE (rust/crates/macerator-macros-0.1.3.crate) = 4402
SHA256 (rust/crates/malloc_buf-0.0.6.crate) = 62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb
SIZE (rust/crates/malloc_buf-0.0.6.crate) = 1239
SHA256 (rust/crates/maplit-1.0.2.crate) = 3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d
SIZE (rust/crates/maplit-1.0.2.crate) = 8871
SHA256 (rust/crates/markup5ever-0.11.0.crate) = 7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016
SIZE (rust/crates/markup5ever-0.11.0.crate) = 34667
-SHA256 (rust/crates/markup5ever-0.16.1.crate) = d0a8096766c229e8c88a3900c9b44b7e06aa7f7343cc229158c3e58ef8f9973a
-SIZE (rust/crates/markup5ever-0.16.1.crate) = 18706
+SHA256 (rust/crates/markup5ever-0.35.0.crate) = 311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3
+SIZE (rust/crates/markup5ever-0.35.0.crate) = 15883
SHA256 (rust/crates/markup5ever_rcdom-0.2.0.crate) = b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2
SIZE (rust/crates/markup5ever_rcdom-0.2.0.crate) = 222948
-SHA256 (rust/crates/match_token-0.1.0.crate) = 88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b
-SIZE (rust/crates/match_token-0.1.0.crate) = 4903
-SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
-SIZE (rust/crates/matchers-0.1.0.crate) = 6948
+SHA256 (rust/crates/match_token-0.35.0.crate) = ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf
+SIZE (rust/crates/match_token-0.35.0.crate) = 4570
+SHA256 (rust/crates/matchers-0.2.0.crate) = d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9
+SIZE (rust/crates/matchers-0.2.0.crate) = 7075
SHA256 (rust/crates/matches-0.1.10.crate) = 2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5
SIZE (rust/crates/matches-0.1.10.crate) = 2592
SHA256 (rust/crates/matchit-0.8.4.crate) = 47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3
@@ -665,12 +669,12 @@ SHA256 (rust/crates/matrixmultiply-0.3.10.crate) = a06de3016e9fae57a36fd14dba131
SIZE (rust/crates/matrixmultiply-0.3.10.crate) = 58170
SHA256 (rust/crates/md5-0.7.0.crate) = 490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771
SIZE (rust/crates/md5-0.7.0.crate) = 6671
-SHA256 (rust/crates/mdbook-0.4.51.crate) = a87e65420ab45ca9c1b8cdf698f95b710cc826d373fa550f0f7fad82beac9328
-SIZE (rust/crates/mdbook-0.4.51.crate) = 1505997
+SHA256 (rust/crates/mdbook-0.4.52.crate) = 93c284d2855916af7c5919cf9ad897cfc77d3c2db6f55429c7cfb769182030ec
+SIZE (rust/crates/mdbook-0.4.52.crate) = 1514003
SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0
SIZE (rust/crates/memchr-2.7.5.crate) = 97603
-SHA256 (rust/crates/memmap2-0.9.5.crate) = fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f
-SIZE (rust/crates/memmap2-0.9.5.crate) = 33280
+SHA256 (rust/crates/memmap2-0.9.8.crate) = 843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7
+SIZE (rust/crates/memmap2-0.9.8.crate) = 34478
SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
SHA256 (rust/crates/metal-0.31.0.crate) = f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e
@@ -685,8 +689,8 @@ SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d632
SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c
SIZE (rust/crates/mio-1.0.4.crate) = 104212
-SHA256 (rust/crates/moddef-0.2.6.crate) = 4e519fd9c6131c1c9a4a67f8bdc4f32eb4105b16c1468adea1b8e68c98c85ec4
-SIZE (rust/crates/moddef-0.2.6.crate) = 5286
+SHA256 (rust/crates/moddef-0.3.0.crate) = 4a0b3262dc837d2513fe2ef31ff8461352ef932dcca31ba0c0abe33547cf6b9b
+SIZE (rust/crates/moddef-0.3.0.crate) = 7659
SHA256 (rust/crates/multer-3.1.0.crate) = 83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b
SIZE (rust/crates/multer-3.1.0.crate) = 25980
SHA256 (rust/crates/multimap-0.10.1.crate) = 1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084
@@ -707,16 +711,16 @@ SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b11053
SIZE (rust/crates/nom-8.0.0.crate) = 135590
SHA256 (rust/crates/normpath-1.3.0.crate) = c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed
SIZE (rust/crates/normpath-1.3.0.crate) = 20719
-SHA256 (rust/crates/notify-8.0.0.crate) = 2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943
-SIZE (rust/crates/notify-8.0.0.crate) = 35590
+SHA256 (rust/crates/notify-8.2.0.crate) = 4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3
+SIZE (rust/crates/notify-8.2.0.crate) = 39067
SHA256 (rust/crates/notify-debouncer-mini-0.6.0.crate) = a689eb4262184d9a1727f9087cd03883ea716682ab03ed24efec57d7716dccb8
SIZE (rust/crates/notify-debouncer-mini-0.6.0.crate) = 9951
SHA256 (rust/crates/notify-types-2.0.0.crate) = 5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d
SIZE (rust/crates/notify-types-2.0.0.crate) = 14495
SHA256 (rust/crates/ntapi-0.4.1.crate) = e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4
SIZE (rust/crates/ntapi-0.4.1.crate) = 126552
-SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
-SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311
+SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399
+SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536
SHA256 (rust/crates/num-0.4.3.crate) = 35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23
SIZE (rust/crates/num-0.4.3.crate) = 9575
SHA256 (rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9
@@ -741,10 +745,10 @@ SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
SHA256 (rust/crates/num_cpus-1.17.0.crate) = 91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b
SIZE (rust/crates/num_cpus-1.17.0.crate) = 15874
-SHA256 (rust/crates/num_enum-0.7.3.crate) = 4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179
-SIZE (rust/crates/num_enum-0.7.3.crate) = 18603
-SHA256 (rust/crates/num_enum_derive-0.7.3.crate) = af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56
-SIZE (rust/crates/num_enum_derive-0.7.3.crate) = 17092
+SHA256 (rust/crates/num_enum-0.7.4.crate) = a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a
+SIZE (rust/crates/num_enum-0.7.4.crate) = 21553
+SHA256 (rust/crates/num_enum_derive-0.7.4.crate) = 77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d
+SIZE (rust/crates/num_enum_derive-0.7.4.crate) = 18167
SHA256 (rust/crates/nvml-wrapper-0.10.0.crate) = 0c9bff0aa1d48904a1385ea2a8b97576fbdcbc9a3cfccd0d31fe978e1c4038c5
SIZE (rust/crates/nvml-wrapper-0.10.0.crate) = 77841
SHA256 (rust/crates/nvml-wrapper-sys-0.8.0.crate) = 698d45156f28781a4e79652b6ebe2eaa0589057d588d3aec1333f6466f13fcb5
@@ -775,8 +779,6 @@ SHA256 (rust/crates/ordered-float-2.10.1.crate) = 68f19d67e5a2795c94e73e0bb1cc1a
SIZE (rust/crates/ordered-float-2.10.1.crate) = 16029
SHA256 (rust/crates/ordered-float-4.6.0.crate) = 7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951
SIZE (rust/crates/ordered-float-4.6.0.crate) = 23633
-SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
-SIZE (rust/crates/overload-0.1.1.crate) = 24439
SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba
SIZE (rust/crates/parking-2.2.1.crate) = 10685
SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
@@ -791,8 +793,8 @@ SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d
SIZE (rust/crates/pathdiff-0.2.3.crate) = 7495
SHA256 (rust/crates/pbkdf2-0.12.2.crate) = f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2
SIZE (rust/crates/pbkdf2-0.12.2.crate) = 13906
-SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
-SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220
+SIZE (rust/crates/percent-encoding-2.3.2.crate) = 11583
SHA256 (rust/crates/pest-2.8.1.crate) = 1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323
SIZE (rust/crates/pest-2.8.1.crate) = 128906
SHA256 (rust/crates/pest_derive-2.8.1.crate) = bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc
@@ -841,8 +843,8 @@ SHA256 (rust/crates/portable-atomic-1.11.1.crate) = f84267b20a16ea918e43c6a88433
SIZE (rust/crates/portable-atomic-1.11.1.crate) = 185506
SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507
SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043
-SHA256 (rust/crates/potential_utf-0.1.2.crate) = e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585
-SIZE (rust/crates/potential_utf-0.1.2.crate) = 9613
+SHA256 (rust/crates/potential_utf-0.1.3.crate) = 84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a
+SIZE (rust/crates/potential_utf-0.1.3.crate) = 9698
SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
@@ -851,18 +853,18 @@ SHA256 (rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9
SIZE (rust/crates/precomputed-hash-0.1.1.crate) = 1640
SHA256 (rust/crates/presser-0.3.1.crate) = e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa
SIZE (rust/crates/presser-0.3.1.crate) = 20946
-SHA256 (rust/crates/prettyplease-0.2.34.crate) = 6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55
-SIZE (rust/crates/prettyplease-0.2.34.crate) = 71832
+SHA256 (rust/crates/prettyplease-0.2.37.crate) = 479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b
+SIZE (rust/crates/prettyplease-0.2.37.crate) = 72033
SHA256 (rust/crates/priority-queue-2.5.0.crate) = 5676d703dda103cbb035b653a9f11448c0a7216c7926bd35fcb5865475d0c970
SIZE (rust/crates/priority-queue-2.5.0.crate) = 49045
SHA256 (rust/crates/proc-macro-crate-3.3.0.crate) = edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35
SIZE (rust/crates/proc-macro-crate-3.3.0.crate) = 12432
SHA256 (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068
SIZE (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = 15045
-SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778
-SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820
-SHA256 (rust/crates/profiling-1.0.16.crate) = afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d
-SIZE (rust/crates/profiling-1.0.16.crate) = 12588
+SHA256 (rust/crates/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de
+SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886
+SHA256 (rust/crates/profiling-1.0.17.crate) = 3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773
+SIZE (rust/crates/profiling-1.0.17.crate) = 13493
SHA256 (rust/crates/prost-0.13.5.crate) = 2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5
SIZE (rust/crates/prost-0.13.5.crate) = 32469
SHA256 (rust/crates/prost-build-0.13.5.crate) = be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf
@@ -897,20 +899,20 @@ SHA256 (rust/crates/pyo3-macros-0.25.1.crate) = a8725c0a622b374d6cb051d11a098378
SIZE (rust/crates/pyo3-macros-0.25.1.crate) = 8886
SHA256 (rust/crates/pyo3-macros-backend-0.25.1.crate) = 4109984c22491085343c05b0dbc54ddc405c3cf7b4374fc533f5c3313a572ccc
SIZE (rust/crates/pyo3-macros-backend-0.25.1.crate) = 76006
-SHA256 (rust/crates/quinn-0.11.8.crate) = 626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8
-SIZE (rust/crates/quinn-0.11.8.crate) = 79949
-SHA256 (rust/crates/quinn-proto-0.11.12.crate) = 49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e
-SIZE (rust/crates/quinn-proto-0.11.12.crate) = 235821
-SHA256 (rust/crates/quinn-udp-0.5.12.crate) = ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842
-SIZE (rust/crates/quinn-udp-0.5.12.crate) = 31825
+SHA256 (rust/crates/quinn-0.11.9.crate) = b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20
+SIZE (rust/crates/quinn-0.11.9.crate) = 83606
+SHA256 (rust/crates/quinn-proto-0.11.13.crate) = f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31
+SIZE (rust/crates/quinn-proto-0.11.13.crate) = 243837
+SHA256 (rust/crates/quinn-udp-0.5.14.crate) = addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd
+SIZE (rust/crates/quinn-udp-0.5.14.crate) = 33436
SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
SIZE (rust/crates/quote-1.0.40.crate) = 31063
-SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5
-SIZE (rust/crates/r-efi-5.2.0.crate) = 64764
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
-SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97
-SIZE (rust/crates/rand-0.9.1.crate) = 97986
+SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1
+SIZE (rust/crates/rand-0.9.2.crate) = 99930
SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
@@ -931,36 +933,32 @@ SHA256 (rust/crates/raw-window-handle-0.6.2.crate) = 20675572f6f24e9e76ef639bc55
SIZE (rust/crates/raw-window-handle-0.6.2.crate) = 20234
SHA256 (rust/crates/rawpointer-0.2.1.crate) = 60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3
SIZE (rust/crates/rawpointer-0.2.1.crate) = 7490
-SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
-SIZE (rust/crates/rayon-1.10.0.crate) = 180155
-SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
-SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
SHA256 (rust/crates/reborrow-0.5.5.crate) = 03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430
SIZE (rust/crates/reborrow-0.5.5.crate) = 3789
-SHA256 (rust/crates/redox_syscall-0.5.13.crate) = 0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6
-SIZE (rust/crates/redox_syscall-0.5.13.crate) = 29489
+SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77
+SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002
SHA256 (rust/crates/redox_users-0.4.6.crate) = ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43
SIZE (rust/crates/redox_users-0.4.6.crate) = 15585
-SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b
-SIZE (rust/crates/redox_users-0.5.0.crate) = 15586
-SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
-SIZE (rust/crates/regex-1.11.1.crate) = 254170
-SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
-SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
-SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
-SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
-SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
-SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
-SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
-SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/redox_users-0.5.2.crate) = a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac
+SIZE (rust/crates/redox_users-0.5.2.crate) = 17280
+SHA256 (rust/crates/regex-1.11.2.crate) = 23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912
+SIZE (rust/crates/regex-1.11.2.crate) = 166265
+SHA256 (rust/crates/regex-automata-0.4.10.crate) = 6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6
+SIZE (rust/crates/regex-automata-0.4.10.crate) = 622754
+SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001
+SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808
SHA256 (rust/crates/relative-path-1.9.3.crate) = ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2
SIZE (rust/crates/relative-path-1.9.3.crate) = 22400
SHA256 (rust/crates/renderdoc-sys-1.1.0.crate) = 19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832
SIZE (rust/crates/renderdoc-sys-1.1.0.crate) = 10366
SHA256 (rust/crates/reqwest-0.11.27.crate) = dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62
SIZE (rust/crates/reqwest-0.11.27.crate) = 163155
-SHA256 (rust/crates/reqwest-0.12.20.crate) = eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813
-SIZE (rust/crates/reqwest-0.12.20.crate) = 199843
+SHA256 (rust/crates/reqwest-0.12.23.crate) = d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb
+SIZE (rust/crates/reqwest-0.12.23.crate) = 161307
SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7
SIZE (rust/crates/ring-0.17.14.crate) = 1502610
SHA256 (rust/crates/rmp-0.8.14.crate) = 228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4
@@ -973,18 +971,18 @@ SHA256 (rust/crates/rstest_macros-0.25.0.crate) = 1f168d99749d307be9de54d23fd226
SIZE (rust/crates/rstest_macros-0.25.0.crate) = 70557
SHA256 (rust/crates/rusqlite-0.36.0.crate) = 3de23c3319433716cf134eed225fe9986bc24f63bed9be9f20c329029e672dc7
SIZE (rust/crates/rusqlite-0.36.0.crate) = 169800
-SHA256 (rust/crates/rustc-demangle-0.1.25.crate) = 989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f
-SIZE (rust/crates/rustc-demangle-0.1.25.crate) = 29590
+SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace
+SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340
SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d
SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154
SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
-SHA256 (rust/crates/rustix-1.0.7.crate) = c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266
-SIZE (rust/crates/rustix-1.0.7.crate) = 414500
-SHA256 (rust/crates/rustls-0.23.28.crate) = 7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643
-SIZE (rust/crates/rustls-0.23.28.crate) = 365699
+SHA256 (rust/crates/rustix-1.0.8.crate) = 11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8
+SIZE (rust/crates/rustix-1.0.8.crate) = 416688
+SHA256 (rust/crates/rustls-0.23.31.crate) = c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc
+SIZE (rust/crates/rustls-0.23.31.crate) = 371259
SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3
SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129
SHA256 (rust/crates/rustls-pemfile-1.0.4.crate) = 1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c
@@ -993,10 +991,10 @@ SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a4
SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849
SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79
SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740
-SHA256 (rust/crates/rustls-webpki-0.103.3.crate) = e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435
-SIZE (rust/crates/rustls-webpki-0.103.3.crate) = 81840
-SHA256 (rust/crates/rustversion-1.0.21.crate) = 8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d
-SIZE (rust/crates/rustversion-1.0.21.crate) = 21001
+SHA256 (rust/crates/rustls-webpki-0.103.4.crate) = 0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc
+SIZE (rust/crates/rustls-webpki-0.103.4.crate) = 84241
+SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d
+SIZE (rust/crates/rustversion-1.0.22.crate) = 21096
SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/safetensors-0.4.5.crate) = 44560c11236a6130a46ce36c836a62936dc81ebf8c36a37947423571be0e55b6
@@ -1009,14 +1007,12 @@ SHA256 (rust/crates/sanitize-filename-0.6.0.crate) = bc984f4f9ceb736a7bb755c3e3b
SIZE (rust/crates/sanitize-filename-0.6.0.crate) = 4819
SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
SIZE (rust/crates/schannel-0.1.27.crate) = 42772
-SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294
-SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02
SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
-SHA256 (rust/crates/security-framework-3.2.0.crate) = 271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316
-SIZE (rust/crates/security-framework-3.2.0.crate) = 86095
+SHA256 (rust/crates/security-framework-3.3.0.crate) = 80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c
+SIZE (rust/crates/security-framework-3.3.0.crate) = 86425
SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
SHA256 (rust/crates/self_cell-1.2.0.crate) = 0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749
@@ -1035,18 +1031,18 @@ SHA256 (rust/crates/serde_bytes-0.11.17.crate) = 8437fd221bde2d4ca316d61b90e337e
SIZE (rust/crates/serde_bytes-0.11.17.crate) = 13256
SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
-SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373
-SIZE (rust/crates/serde_json-1.0.140.crate) = 154852
+SHA256 (rust/crates/serde_json-1.0.143.crate) = d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a
+SIZE (rust/crates/serde_json-1.0.143.crate) = 155342
SHA256 (rust/crates/serde_path_to_error-0.1.17.crate) = 59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a
SIZE (rust/crates/serde_path_to_error-0.1.17.crate) = 17662
SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c
SIZE (rust/crates/serde_repr-0.1.20.crate) = 12627
-SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3
-SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210
-SHA256 (rust/crates/serde_tuple-1.1.0.crate) = f0f9b739e59a0e07b7a73bc11c3dcd6abf790d0f54042b67a422d4bd1f6cf6c0
-SIZE (rust/crates/serde_tuple-1.1.0.crate) = 4141
-SHA256 (rust/crates/serde_tuple_macros-1.0.1.crate) = 9e87546e85c5047d03b454d12ee25266fc269a461a4029956ca58d246b9aefae
-SIZE (rust/crates/serde_tuple_macros-1.0.1.crate) = 3098
+SHA256 (rust/crates/serde_spanned-1.0.0.crate) = 40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83
+SIZE (rust/crates/serde_spanned-1.0.0.crate) = 10956
+SHA256 (rust/crates/serde_tuple-1.1.2.crate) = 52569c5296679bd28e2457f067f97d270077df67da0340647da5412c8eac8d9e
+SIZE (rust/crates/serde_tuple-1.1.2.crate) = 9933
+SHA256 (rust/crates/serde_tuple_macros-1.1.2.crate) = 2f46c707781471741d5f2670edb36476479b26e94cf43efe21ca3c220b97ef2e
+SIZE (rust/crates/serde_tuple_macros-1.1.2.crate) = 4083
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
SHA256 (rust/crates/sha1-0.10.6.crate) = e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba
@@ -1057,28 +1053,30 @@ SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e82
SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
SIZE (rust/crates/shlex-1.3.0.crate) = 18713
-SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410
-SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004
+SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b
+SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277
SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d
SIZE (rust/crates/siphasher-0.3.11.crate) = 10442
SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
-SHA256 (rust/crates/slab-0.4.10.crate) = 04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d
-SIZE (rust/crates/slab-0.4.10.crate) = 17810
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
SHA256 (rust/crates/slotmap-1.0.7.crate) = dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a
SIZE (rust/crates/slotmap-1.0.7.crate) = 61390
SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
-SHA256 (rust/crates/snafu-0.8.6.crate) = 320b01e011bf8d5d7a4a4a4be966d9160968935849c83b918827f6a435e7f627
-SIZE (rust/crates/snafu-0.8.6.crate) = 73472
-SHA256 (rust/crates/snafu-derive-0.8.6.crate) = 1961e2ef424c1424204d3a5d6975f934f56b6d50ff5732382d84ebf460e147f7
-SIZE (rust/crates/snafu-derive-0.8.6.crate) = 29444
+SHA256 (rust/crates/snafu-0.8.8.crate) = 4800ae0e2ebdfaea32ffb9745642acdc378740dcbd74d3fb3cd87572a34810c6
+SIZE (rust/crates/snafu-0.8.8.crate) = 73977
+SHA256 (rust/crates/snafu-derive-0.8.8.crate) = 186f5ba9999528053fb497fdf0dd330efcc69cfe4ad03776c9d704bc54fee10f
+SIZE (rust/crates/snafu-derive-0.8.8.crate) = 29484
SHA256 (rust/crates/snowflake-1.3.0.crate) = 27207bb65232eda1f588cf46db2fee75c0808d557f6b3cf19a75f5d6d7c94df1
SIZE (rust/crates/snowflake-1.3.0.crate) = 8073
SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
SIZE (rust/crates/socket2-0.5.10.crate) = 58169
+SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807
+SIZE (rust/crates/socket2-0.6.0.crate) = 57974
SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
SIZE (rust/crates/spin-0.9.8.crate) = 38958
SHA256 (rust/crates/spin-0.10.0.crate) = d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591
@@ -1097,18 +1095,18 @@ SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/strum-0.26.3.crate) = 8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06
SIZE (rust/crates/strum-0.26.3.crate) = 7237
-SHA256 (rust/crates/strum-0.27.1.crate) = f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32
-SIZE (rust/crates/strum-0.27.1.crate) = 7467
+SHA256 (rust/crates/strum-0.27.2.crate) = af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf
+SIZE (rust/crates/strum-0.27.2.crate) = 8489
SHA256 (rust/crates/strum_macros-0.26.4.crate) = 4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be
SIZE (rust/crates/strum_macros-0.26.4.crate) = 27531
-SHA256 (rust/crates/strum_macros-0.27.1.crate) = c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8
-SIZE (rust/crates/strum_macros-0.27.1.crate) = 29670
+SHA256 (rust/crates/strum_macros-0.27.2.crate) = 7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7
+SIZE (rust/crates/strum_macros-0.27.2.crate) = 30522
SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292
SIZE (rust/crates/subtle-2.6.1.crate) = 14562
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.103.crate) = e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8
-SIZE (rust/crates/syn-2.0.103.crate) = 298990
+SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6
+SIZE (rust/crates/syn-2.0.106.crate) = 301514
SHA256 (rust/crates/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160
SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933
SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
@@ -1125,70 +1123,74 @@ SHA256 (rust/crates/system-configuration-0.5.1.crate) = ba3a3adc5c275d719af8cb42
SIZE (rust/crates/system-configuration-0.5.1.crate) = 12618
SHA256 (rust/crates/system-configuration-sys-0.5.0.crate) = a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9
SIZE (rust/crates/system-configuration-sys-0.5.0.crate) = 6730
-SHA256 (rust/crates/systemstat-0.2.4.crate) = 668a4db78b439df482c238f559e4ea869017f9e62ef0a059c8bfcd841a4df544
-SIZE (rust/crates/systemstat-0.2.4.crate) = 34927
+SHA256 (rust/crates/systemstat-0.2.5.crate) = 5021f5184d44b26fb184acd689671bbe1e4bbd24bbdaa6bc7ec383fad32d2033
+SIZE (rust/crates/systemstat-0.2.5.crate) = 34942
SHA256 (rust/crates/tar-0.4.44.crate) = 1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a
SIZE (rust/crates/tar-0.4.44.crate) = 61020
SHA256 (rust/crates/target-lexicon-0.13.2.crate) = e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a
SIZE (rust/crates/target-lexicon-0.13.2.crate) = 27923
-SHA256 (rust/crates/tempfile-3.20.0.crate) = e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1
-SIZE (rust/crates/tempfile-3.20.0.crate) = 42306
+SHA256 (rust/crates/tempfile-3.21.0.crate) = 15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e
+SIZE (rust/crates/tempfile-3.21.0.crate) = 42581
SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
SIZE (rust/crates/tendril-0.4.3.crate) = 37210
SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
-SHA256 (rust/crates/terminal_size-0.4.2.crate) = 45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed
-SIZE (rust/crates/terminal_size-0.4.2.crate) = 9976
+SHA256 (rust/crates/terminal_size-0.4.3.crate) = 60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0
+SIZE (rust/crates/terminal_size-0.4.3.crate) = 10686
SHA256 (rust/crates/text_placeholder-0.5.1.crate) = dd5008f74a09742486ef0047596cf35df2b914e2a8dca5727fcb6ba6842a766b
SIZE (rust/crates/text_placeholder-0.5.1.crate) = 7744
SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
-SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708
-SIZE (rust/crates/thiserror-2.0.12.crate) = 28693
+SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0
+SIZE (rust/crates/thiserror-2.0.16.crate) = 29095
SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
-SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d
-SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141
+SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960
+SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214
SHA256 (rust/crates/thread-tree-0.3.3.crate) = ffbd370cb847953a25954d9f63e14824a36113f8c72eecf6eccef5dc4b45d630
SIZE (rust/crates/thread-tree-0.3.3.crate) = 12263
SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
-SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40
-SIZE (rust/crates/time-0.3.41.crate) = 138369
-SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c
-SIZE (rust/crates/time-core-0.1.4.crate) = 8422
-SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49
-SIZE (rust/crates/time-macros-0.2.22.crate) = 24604
+SHA256 (rust/crates/time-0.3.42.crate) = 8ca967379f9d8eb8058d86ed467d81d03e81acd45757e4ca341c24affbe8e8e3
+SIZE (rust/crates/time-0.3.42.crate) = 142370
+SHA256 (rust/crates/time-core-0.1.5.crate) = a9108bb380861b07264b950ded55a44a14a4adc68b9f5efd85aafc3aa4d40a68
+SIZE (rust/crates/time-core-0.1.5.crate) = 9110
+SHA256 (rust/crates/time-macros-0.2.23.crate) = 7182799245a7264ce590b349d90338f1c1affad93d2639aed5f8f69c090b334c
+SIZE (rust/crates/time-macros-0.2.23.crate) = 24713
SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b
SIZE (rust/crates/tinystr-0.8.1.crate) = 23333
SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc
SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490
-SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71
-SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137
+SHA256 (rust/crates/tinyvec-1.10.0.crate) = bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa
+SIZE (rust/crates/tinyvec-1.10.0.crate) = 51996
SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/tokio-1.45.1.crate) = 75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779
-SIZE (rust/crates/tokio-1.45.1.crate) = 811787
+SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038
+SIZE (rust/crates/tokio-1.47.1.crate) = 829790
SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2
SIZE (rust/crates/tokio-native-tls-0.3.1.crate) = 20676
SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655
-SHA256 (rust/crates/tokio-tungstenite-0.21.0.crate) = c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38
-SIZE (rust/crates/tokio-tungstenite-0.21.0.crate) = 28159
-SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df
-SIZE (rust/crates/tokio-util-0.7.15.crate) = 124255
+SHA256 (rust/crates/tokio-tungstenite-0.26.2.crate) = 7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084
+SIZE (rust/crates/tokio-tungstenite-0.26.2.crate) = 29868
+SHA256 (rust/crates/tokio-util-0.7.16.crate) = 14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5
+SIZE (rust/crates/tokio-util-0.7.16.crate) = 127775
SHA256 (rust/crates/toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234
SIZE (rust/crates/toml-0.5.11.crate) = 54910
-SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362
-SIZE (rust/crates/toml-0.8.23.crate) = 36050
+SHA256 (rust/crates/toml-0.9.5.crate) = 75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8
+SIZE (rust/crates/toml-0.9.5.crate) = 56833
SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c
SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125
+SHA256 (rust/crates/toml_datetime-0.7.0.crate) = bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3
+SIZE (rust/crates/toml_datetime-0.7.0.crate) = 18108
SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a
SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602
-SHA256 (rust/crates/toml_write-0.1.2.crate) = 5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801
-SIZE (rust/crates/toml_write-0.1.2.crate) = 15660
+SHA256 (rust/crates/toml_parser-1.0.2.crate) = b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10
+SIZE (rust/crates/toml_parser-1.0.2.crate) = 35241
+SHA256 (rust/crates/toml_writer-1.0.2.crate) = fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64
+SIZE (rust/crates/toml_writer-1.0.2.crate) = 16988
SHA256 (rust/crates/topological-sort-0.2.2.crate) = ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d
SIZE (rust/crates/topological-sort-0.2.2.crate) = 10566
SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
@@ -1203,18 +1205,18 @@ SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea
SIZE (rust/crates/tracing-0.1.41.crate) = 82448
SHA256 (rust/crates/tracing-appender-0.2.3.crate) = 3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf
SIZE (rust/crates/tracing-appender-0.2.3.crate) = 21964
-SHA256 (rust/crates/tracing-attributes-0.1.29.crate) = 1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662
-SIZE (rust/crates/tracing-attributes-0.1.29.crate) = 38683
+SHA256 (rust/crates/tracing-attributes-0.1.30.crate) = 81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903
+SIZE (rust/crates/tracing-attributes-0.1.30.crate) = 39142
SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678
SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760
SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3
SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561
-SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008
-SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345
+SHA256 (rust/crates/tracing-subscriber-0.3.20.crate) = 2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5
+SIZE (rust/crates/tracing-subscriber-0.3.20.crate) = 212274
SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
-SHA256 (rust/crates/tungstenite-0.21.0.crate) = 9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1
-SIZE (rust/crates/tungstenite-0.21.0.crate) = 59858
+SHA256 (rust/crates/tungstenite-0.26.2.crate) = 4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13
+SIZE (rust/crates/tungstenite-0.26.2.crate) = 65315
SHA256 (rust/crates/type-map-0.5.1.crate) = cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90
SIZE (rust/crates/type-map-0.5.1.crate) = 8606
SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f
@@ -1261,16 +1263,16 @@ SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e
SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
SHA256 (rust/crates/unty-0.0.4.crate) = 6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae
SIZE (rust/crates/unty-0.0.4.crate) = 7200
-SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
-SIZE (rust/crates/url-2.5.4.crate) = 81097
+SHA256 (rust/crates/url-2.5.7.crate) = 08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b
+SIZE (rust/crates/url-2.5.7.crate) = 87907
SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
-SHA256 (rust/crates/uuid-1.17.0.crate) = 3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d
-SIZE (rust/crates/uuid-1.17.0.crate) = 59014
+SHA256 (rust/crates/uuid-1.18.0.crate) = f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be
+SIZE (rust/crates/uuid-1.18.0.crate) = 59782
SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65
SIZE (rust/crates/valuable-0.1.1.crate) = 28679
SHA256 (rust/crates/variadics_please-1.1.0.crate) = 41b6d82be61465f97d42bd1d15bf20f3b0a3a0905018f38f9d6f6962055b0b5c
@@ -1287,12 +1289,10 @@ SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06
SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
SIZE (rust/crates/want-0.3.1.crate) = 6398
-SHA256 (rust/crates/warp-0.3.7.crate) = 4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c
-SIZE (rust/crates/warp-0.3.7.crate) = 117428
SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
-SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3
-SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921
+SHA256 (rust/crates/wasi-0.14.3+wasi-0.2.4.crate) = 6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95
+SIZE (rust/crates/wasi-0.14.3+wasi-0.2.4.crate) = 144010
SHA256 (rust/crates/wasix-0.12.21.crate) = c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d
SIZE (rust/crates/wasix-0.12.21.crate) = 193621
SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5
@@ -1315,8 +1315,8 @@ SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10
SIZE (rust/crates/web-time-1.1.0.crate) = 18026
SHA256 (rust/crates/web_atoms-0.1.3.crate) = 57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414
SIZE (rust/crates/web_atoms-0.1.3.crate) = 27392
-SHA256 (rust/crates/webpki-roots-1.0.0.crate) = 2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb
-SIZE (rust/crates/webpki-roots-1.0.0.crate) = 248893
+SHA256 (rust/crates/webpki-roots-1.0.2.crate) = 7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2
+SIZE (rust/crates/webpki-roots-1.0.2.crate) = 255109
SHA256 (rust/crates/wgpu-25.0.2.crate) = ec8fb398f119472be4d80bc3647339f56eb63b2a331f6a3d16e25d8144197dd9
SIZE (rust/crates/wgpu-25.0.2.crate) = 189625
SHA256 (rust/crates/wgpu-core-25.0.2.crate) = f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500
@@ -1339,34 +1339,34 @@ SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe9399
SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
-SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb
-SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464
+SHA256 (rust/crates/winapi-util-0.1.10.crate) = 0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22
+SIZE (rust/crates/winapi-util-0.1.10.crate) = 13370
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
-SHA256 (rust/crates/windows-0.56.0.crate) = 1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132
-SIZE (rust/crates/windows-0.56.0.crate) = 10807828
+SHA256 (rust/crates/windows-0.57.0.crate) = 12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143
+SIZE (rust/crates/windows-0.57.0.crate) = 9694564
SHA256 (rust/crates/windows-0.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6
SIZE (rust/crates/windows-0.58.0.crate) = 9744521
SHA256 (rust/crates/windows-0.61.3.crate) = 9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893
SIZE (rust/crates/windows-0.61.3.crate) = 9372520
SHA256 (rust/crates/windows-collections-0.2.0.crate) = 3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8
SIZE (rust/crates/windows-collections-0.2.0.crate) = 13579
-SHA256 (rust/crates/windows-core-0.56.0.crate) = 4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6
-SIZE (rust/crates/windows-core-0.56.0.crate) = 45084
+SHA256 (rust/crates/windows-core-0.57.0.crate) = d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d
+SIZE (rust/crates/windows-core-0.57.0.crate) = 53695
SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99
SIZE (rust/crates/windows-core-0.58.0.crate) = 41022
SHA256 (rust/crates/windows-core-0.61.2.crate) = c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3
SIZE (rust/crates/windows-core-0.61.2.crate) = 36771
SHA256 (rust/crates/windows-future-0.2.1.crate) = fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e
SIZE (rust/crates/windows-future-0.2.1.crate) = 17532
-SHA256 (rust/crates/windows-implement-0.56.0.crate) = f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b
-SIZE (rust/crates/windows-implement-0.56.0.crate) = 9157
+SHA256 (rust/crates/windows-implement-0.57.0.crate) = 9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7
+SIZE (rust/crates/windows-implement-0.57.0.crate) = 10470
SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b
SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491
SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836
SIZE (rust/crates/windows-implement-0.60.0.crate) = 15073
-SHA256 (rust/crates/windows-interface-0.56.0.crate) = 08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc
-SIZE (rust/crates/windows-interface-0.56.0.crate) = 9834
+SHA256 (rust/crates/windows-interface-0.57.0.crate) = 29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7
+SIZE (rust/crates/windows-interface-0.57.0.crate) = 10931
SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515
SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246
SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8
@@ -1397,8 +1397,8 @@ SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c0964560
SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
-SHA256 (rust/crates/windows-targets-0.53.2.crate) = c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef
-SIZE (rust/crates/windows-targets-0.53.2.crate) = 7046
+SHA256 (rust/crates/windows-targets-0.53.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91
+SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099
SHA256 (rust/crates/windows-threading-0.1.0.crate) = b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6
SIZE (rust/crates/windows-threading-0.1.0.crate) = 9085
SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
@@ -1447,26 +1447,26 @@ SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270
SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
-SHA256 (rust/crates/winnow-0.7.11.crate) = 74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd
-SIZE (rust/crates/winnow-0.7.11.crate) = 174175
+SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf
+SIZE (rust/crates/winnow-0.7.13.crate) = 174454
SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
SIZE (rust/crates/winreg-0.50.0.crate) = 29703
SHA256 (rust/crates/winreg-0.55.0.crate) = cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97
SIZE (rust/crates/winreg-0.55.0.crate) = 31048
SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904
SIZE (rust/crates/winsafe-0.0.19.crate) = 492820
-SHA256 (rust/crates/wiremock-0.6.3.crate) = 101681b74cd87b5899e87bcf5a64e83334dd313fcd3053ea72e6dba18928e301
-SIZE (rust/crates/wiremock-0.6.3.crate) = 61482
-SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
-SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
+SHA256 (rust/crates/wiremock-0.6.5.crate) = 08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031
+SIZE (rust/crates/wiremock-0.6.5.crate) = 60561
+SHA256 (rust/crates/wit-bindgen-0.45.0.crate) = 052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814
+SIZE (rust/crates/wit-bindgen-0.45.0.crate) = 60405
SHA256 (rust/crates/wrapcenum-derive-0.4.1.crate) = a76ff259533532054cfbaefb115c613203c73707017459206380f03b3b3f266e
SIZE (rust/crates/wrapcenum-derive-0.4.1.crate) = 7400
SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
SIZE (rust/crates/writeable-0.6.1.crate) = 24068
-SHA256 (rust/crates/xattr-1.5.0.crate) = 0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e
-SIZE (rust/crates/xattr-1.5.0.crate) = 14694
-SHA256 (rust/crates/xml-rs-0.8.26.crate) = a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda
-SIZE (rust/crates/xml-rs-0.8.26.crate) = 55115
+SHA256 (rust/crates/xattr-1.5.1.crate) = af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909
+SIZE (rust/crates/xattr-1.5.1.crate) = 14565
+SHA256 (rust/crates/xml-rs-0.8.27.crate) = 6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7
+SIZE (rust/crates/xml-rs-0.8.27.crate) = 55258
SHA256 (rust/crates/xml5ever-0.17.0.crate) = 4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650
SIZE (rust/crates/xml5ever-0.17.0.crate) = 41208
SHA256 (rust/crates/xz2-0.1.7.crate) = 388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2
@@ -1479,10 +1479,10 @@ SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8
SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525
SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6
SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521
-SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb
-SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714
-SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef
-SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671
+SHA256 (rust/crates/zerocopy-0.8.26.crate) = 1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f
+SIZE (rust/crates/zerocopy-0.8.26.crate) = 249223
+SHA256 (rust/crates/zerocopy-derive-0.8.26.crate) = 9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181
+SIZE (rust/crates/zerocopy-derive-0.8.26.crate) = 88080
SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
@@ -1491,14 +1491,14 @@ SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464
SIZE (rust/crates/zeroize-1.8.1.crate) = 20029
SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595
SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423
-SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428
-SIZE (rust/crates/zerovec-0.11.2.crate) = 124500
+SHA256 (rust/crates/zerovec-0.11.4.crate) = e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b
+SIZE (rust/crates/zerovec-0.11.4.crate) = 125080
SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
SHA256 (rust/crates/zip-1.1.4.crate) = 9cc23c04387f4da0374be4533ad1208cbb091d5c11d070dfef13676ad6497164
SIZE (rust/crates/zip-1.1.4.crate) = 77910
-SHA256 (rust/crates/zip-4.1.0.crate) = af7dcdb4229c0e79c2531a24de7726a0e980417a74fb4d030a35f535665439a0
-SIZE (rust/crates/zip-4.1.0.crate) = 112269
+SHA256 (rust/crates/zip-4.6.0.crate) = c034aa6c54f654df20e7dc3713bc51705c12f280748fb6d7f40f87c696623e34
+SIZE (rust/crates/zip-4.6.0.crate) = 115676
SHA256 (rust/crates/zlib-rs-0.5.1.crate) = 626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a
SIZE (rust/crates/zlib-rs-0.5.1.crate) = 193055
SHA256 (rust/crates/zopfli-0.8.2.crate) = edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7
@@ -1513,9 +1513,9 @@ SHA256 (ankitects-rust-url-bb930b8d089f4d30d7d19c12e54e66191de47b88_GH0.tar.gz)
SIZE (ankitects-rust-url-bb930b8d089f4d30d7d19c12e54e66191de47b88_GH0.tar.gz) = 394844
SHA256 (ankitects-linkcheck-184b2ca50ed39ca43da13f0b830a463861adb9ca_GH0.tar.gz) = 58ac773ba2e7c76a9ec3f59ee9571576d76e74d58c4974a1d606d6976e1be70e
SIZE (ankitects-linkcheck-184b2ca50ed39ca43da13f0b830a463861adb9ca_GH0.tar.gz) = 19408
-SHA256 (ankitects-anki-25.07.5_GH0.tar.gz) = ad9c0f53c2388680cde23b131d9c2abbf0f5338024ae35d8f34592fdcdf63179
-SIZE (ankitects-anki-25.07.5_GH0.tar.gz) = 2513730
-SHA256 (ankitects-anki-core-i18n-a019a54_GH0.tar.gz) = c930da9b944b2e4af721f85248afbdf8142586da785092807bd2212f1934e355
-SIZE (ankitects-anki-core-i18n-a019a54_GH0.tar.gz) = 1697738
-SHA256 (ankitects-anki-desktop-ftl-bc2da83_GH0.tar.gz) = c561a0def2f170093c0cdf419a1429221cf1b531f1c6a603cf2be8c14e55a67f
-SIZE (ankitects-anki-desktop-ftl-bc2da83_GH0.tar.gz) = 250840
+SHA256 (ankitects-anki-25.09_GH0.tar.gz) = eed3002b5e300b58edd63aa50655aded5187a6b42d02f31c94d48b2513949a94
+SIZE (ankitects-anki-25.09_GH0.tar.gz) = 2518339
+SHA256 (ankitects-anki-core-i18n-6552c95_GH0.tar.gz) = 7e99ffbcb84a4916349856b7953f1e6c2a3a7cd2bc0de0e455f453a03753b36b
+SIZE (ankitects-anki-core-i18n-6552c95_GH0.tar.gz) = 1731229
+SHA256 (ankitects-anki-desktop-ftl-dad4e27_GH0.tar.gz) = 4a3cb364759533f97a811ce2a602d8daaa55b6701c38e167ee44786f9668a47f
+SIZE (ankitects-anki-desktop-ftl-dad4e27_GH0.tar.gz) = 256082
diff --git a/games/anki/files/patch-pylib_tools_hookslib.py b/games/anki/files/patch-pylib_tools_hookslib.py
index 53a3f6d62d79..8abac8c7ba0e 100644
--- a/games/anki/files/patch-pylib_tools_hookslib.py
+++ b/games/anki/files/patch-pylib_tools_hookslib.py
@@ -1,5 +1,5 @@
-Skip code formatting with "ruff" on FreeBSD 15.0-CURRENT (observed with
-n278368-5c9b1c7e5f27) to prevent following error:
+Skip code formatting with "ruff" on !FreeBSD RELEASE builds to prevent
+following error (observed with FreeBSD 15.0-CURRENT n278368-5c9b1c7e5f27):
[...]
FAILED: /wrkdirs/usr/ports/games/anki/work/anki-25.07.2/out/qt/_aqt/hooks.py
@@ -32,5 +32,5 @@ Traceback (most recent call last):
file.write(code.encode("utf8"))
- subprocess.run([sys.executable, "-m", "ruff", "format", "-q", path], check=True)
+
-+ if not (platform.system() == 'FreeBSD' and platform.release() == '15.0-CURRENT'):
++ if platform.system() == 'FreeBSD' and platform.release().endswith('-RELEASE'):
+ subprocess.run([sys.executable, "-m", "ruff", "format", "-q", path], check=True)
diff --git a/games/anki/files/patch-rust-1.89.0 b/games/anki/files/patch-rust-1.89.0
deleted file mode 100644
index 5b3adb5cd8eb..000000000000
--- a/games/anki/files/patch-rust-1.89.0
+++ /dev/null
@@ -1,9 +0,0 @@
---- rslib/i18n/src/lib.rs.orig 2025-08-22 13:45:00 UTC
-+++ rslib/i18n/src/lib.rs
-@@ -1,5 +1,6 @@
- // Copyright: Ankitects Pty Ltd and contributors
- // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-+#![allow(text_direction_codepoint_in_literal)]
-
- mod generated;
-
diff --git a/games/anki/pkg-plist b/games/anki/pkg-plist
index 2a664c84891c..c8062f6e20d3 100644
--- a/games/anki/pkg-plist
+++ b/games/anki/pkg-plist
@@ -46,7 +46,7 @@ share/man/man1/anki.1.gz
%%DATADIR%%/_aqt/data/qt/icons/heart.svg
%%DATADIR%%/_aqt/data/qt/icons/magnify-dark.svg
%%DATADIR%%/_aqt/data/qt/icons/magnify-light.svg
-%%DATADIR%%/_aqt/data/qt/icons/media-record.png
+%%DATADIR%%/_aqt/data/qt/icons/media-record.svg
%%DATADIR%%/_aqt/data/qt/icons/menu-down-dark.svg
%%DATADIR%%/_aqt/data/qt/icons/menu-down-light.svg
%%DATADIR%%/_aqt/data/qt/icons/menu-up-dark.svg
diff --git a/games/linux-enemyterritory/Makefile b/games/linux-enemyterritory/Makefile
index c4956c1e2fd0..b73ba4b547c4 100644
--- a/games/linux-enemyterritory/Makefile
+++ b/games/linux-enemyterritory/Makefile
@@ -18,7 +18,7 @@ LICENSE_NAME= IDSOFTWARE
LICENSE_TEXT= Redistribution limited
LICENSE_PERMS= dist-mirror pkg-mirror auto-accept
-ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS= amd64 i386
USES= linux zip:infozip
USE_LINUX= dri xorglibs
ETDIR= ${PREFIX}/lib/${PORTNAME}
@@ -33,9 +33,9 @@ OPTIONS_DEFINE= DOCS
do-extract:
@${MKDIR} ${WRKSRC}
@cd ${WRKSRC} && \
- ${TAIL} +374 ${_DISTDIR}et-linux-2.60.x86.run | ${TAR} xfz -
+ ${TAIL} +374 ${_DISTDIR}/et-linux-2.60.x86.run | ${TAR} xfz -
@cd ${WRKSRC} && \
- ${UNZIP_CMD} -q ${_DISTDIR}ET-2.60b.zip
+ ${UNZIP_CMD} -q ${_DISTDIR}/ET-2.60b.zip
post-patch:
.for FILE in et etded
diff --git a/games/motogt/Makefile b/games/motogt/Makefile
deleted file mode 100644
index 5bdec9b13474..000000000000
--- a/games/motogt/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-PORTNAME= motogt
-PORTVERSION= 20110505
-PORTREVISION= 9
-CATEGORIES= games
-MASTER_SITES= SF/motogt/MotoGT1/
-DISTNAME= MotoGT-${PORTVERSION}
-
-MAINTAINER= amdmi3@FreeBSD.org
-COMMENT= 2D top-viewed motorcycle racing game
-WWW= https://motogt.sourceforge.net/
-
-DEPRECATED= Depends on obsolete devel/sfml1
-EXPIRATION_DATE=2025-09-10
-
-LICENSE= GPLv2 CC-BY-SA-3.0
-LICENSE_COMB= multi
-LICENSE_FILE_CC-BY-SA-3.0= ${WRKSRC}/doc/cc-by-sa.txt
-LICENSE_FILE_GPLv2= ${WRKSRC}/doc/gpl.txt
-
-LIB_DEPENDS= libsfml1-system.so:devel/sfml1 \
- libpng.so:graphics/png
-
-USES= gl localbase:ldflags zip
-USE_CXXSTD= c++14
-USE_GL= gl
-
-MAKEFILE= Makefile.lnx
-MAKE_JOBS_UNSAFE= yes
-
-SUB_FILES= motogt
-
-BUILD_WRKSRC= ${WRKSRC}/src
-WRKSRC= ${WRKDIR}/MotoGT
-
-PLIST_FILES= bin/${PORTNAME} libexec/MotoGT.bin
-PORTDATA= *
-
-post-patch:
- @${REINPLACE_CMD} -e '/#include/ s|SFML|&1|' ${WRKSRC}/data/src/editor.cpp ${WRKSRC}/src/*.h
- @${REINPLACE_CMD} -e 's|-lsfml|&1|g' ${WRKSRC}/src/Makefile.lnx
-
-do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/MotoGT.bin ${STAGEDIR}${PREFIX}/libexec/
- ${INSTALL_SCRIPT} ${WRKDIR}/motogt ${STAGEDIR}${PREFIX}/bin/
- cd ${WRKSRC} && ${COPYTREE_SHARE} data ${STAGEDIR}${DATADIR}/
-
-.include <bsd.port.mk>
diff --git a/games/motogt/distinfo b/games/motogt/distinfo
deleted file mode 100644
index 645efcc4ceb3..000000000000
--- a/games/motogt/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (MotoGT-20110505.zip) = a5d780c048a92e0f68b4cc83ccb9c45ee504772e651d4037468925525c2988a2
-SIZE (MotoGT-20110505.zip) = 87736858
diff --git a/games/motogt/files/motogt.in b/games/motogt/files/motogt.in
deleted file mode 100644
index c3bf7972a061..000000000000
--- a/games/motogt/files/motogt.in
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-cd %%DATADIR%% || exit 1
-exec %%PREFIX%%/libexec/MotoGT.bin "$@"
diff --git a/games/motogt/files/patch-Makefile b/games/motogt/files/patch-Makefile
deleted file mode 100644
index 86ad265d849c..000000000000
--- a/games/motogt/files/patch-Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
---- Makefile.orig 2011-01-10 20:25:23.000000000 +0300
-+++ Makefile 2011-09-27 08:44:25.000000000 +0400
-@@ -1,5 +1,5 @@
- all:
-- make -C src -f Makefile.lnx
-+ ${MAKE} -C src -f Makefile.lnx
-
- clean:
-- make -C src -f Makefile.lnx clean
-+ ${MAKE} -C src -f Makefile.lnx clean
diff --git a/games/motogt/files/patch-src-Circuito.cpp b/games/motogt/files/patch-src-Circuito.cpp
deleted file mode 100644
index fb5ae7a7398f..000000000000
--- a/games/motogt/files/patch-src-Circuito.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/Circuito.cpp.orig 2011-01-12 20:20:23.000000000 +0300
-+++ src/Circuito.cpp 2011-09-26 23:13:03.000000000 +0400
-@@ -171,7 +171,7 @@
- if (!osd) {image=NULL; sprite=NULL; return; }
- image = new Image*[image_c];
- sprite = new Sprite*[image_c];
-- string image_dir=data->tracks[track_index].dir+"t00.png";
-+ string image_dir=home_dir + data->tracks[track_index].dir + "t00.png";
- for (int i=0;i<image_c;i++) {
- image[i]=new Image[image_r];
- sprite[i]=new Sprite[image_r];
diff --git a/games/motogt/files/patch-src-Config.cpp b/games/motogt/files/patch-src-Config.cpp
deleted file mode 100644
index 148cd380aa43..000000000000
--- a/games/motogt/files/patch-src-Config.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
---- src/Config.cpp.orig 2011-01-18 06:52:35.000000000 +0300
-+++ src/Config.cpp 2014-02-02 21:13:04.124154052 +0400
-@@ -139,6 +139,9 @@
- }
-
- void Config::ChangeResolution(bool up) {
-+ if (num_modes == 0)
-+ return;
-+
- if (cur_mode!=num_modes) cur_mode+=up?1:num_modes-1;
- cur_mode=cur_mode%num_modes;
- real_w=modes_w[cur_mode];
-@@ -226,7 +229,8 @@
- old_fullscreen=fullscreen;
- changed=false;
- ofstream fil((home_dir+"settings.lst").c_str(),ios::trunc);
-- fil<<"version="<<(config->version=VERSION)<<endl;
-+ fil<<"version="<<VERSION<<endl;
-+ if (config) config->version = VERSION;
- fil<<"fullscreen="<<(fullscreen?1:0)<<endl;
- fil<<"low_textures="<<(low_textures?1:0)<<endl;
- fil<<"sound="<<(sound_on?1:0)<<endl;
diff --git a/games/motogt/files/patch-src-MakeData.cpp b/games/motogt/files/patch-src-MakeData.cpp
deleted file mode 100644
index dc130a164795..000000000000
--- a/games/motogt/files/patch-src-MakeData.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
---- src/MakeData.cpp.orig 2011-01-10 17:40:30 UTC
-+++ src/MakeData.cpp
-@@ -5,6 +5,7 @@
- #define PNG_DEBUG 3
- #include <png.h>
- #include <fstream>
-+#include <sys/stat.h>
- #include "global.h"
- #include "Config.h"
- #include "Confirm.h"
-@@ -109,10 +110,10 @@ struct PngFile {
-
- png_read_info(png_ptr, info_ptr);
-
-- width = info_ptr->width;
-- height = info_ptr->height;
-- color_type = info_ptr->color_type;
-- bit_depth = info_ptr->bit_depth;
-+ width = png_get_image_width(png_ptr, info_ptr);
-+ height = png_get_image_height(png_ptr, info_ptr);
-+ color_type = png_get_color_type(png_ptr, info_ptr);
-+ bit_depth = png_get_bit_depth(png_ptr, info_ptr);
-
- number_of_passes = png_set_interlace_handling(png_ptr);
- png_read_update_info(png_ptr, info_ptr);
-@@ -125,7 +126,7 @@ struct PngFile {
-
- row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * height);
- for (int y=0; y<height; y++)
-- row_pointers[y] = (png_byte*) malloc(info_ptr->rowbytes);
-+ row_pointers[y] = (png_byte*) malloc(png_get_rowbytes(png_ptr,info_ptr));
-
- png_read_image(png_ptr, row_pointers);
-
-@@ -376,7 +377,12 @@ struct PngFile {
- }
- fname[2]='0'+i;
- fname[1]='0'+j;
-- if (!f2->Save((dir+fname).c_str()))
-+ size_t pos = 0;
-+ do {
-+ pos = dir.find('/', pos+1);
-+ mkdir((home_dir+dir.substr(0, pos)).c_str(), 0755);
-+ } while (pos != string::npos);
-+ if (!f2->Save((home_dir+dir+fname).c_str()))
- return false;
- f2->width=ancho2; f2->height=ancho2;
- }
diff --git a/games/motogt/files/patch-src-Makefile.common b/games/motogt/files/patch-src-Makefile.common
deleted file mode 100644
index 7b6fb39a5948..000000000000
--- a/games/motogt/files/patch-src-Makefile.common
+++ /dev/null
@@ -1,149 +0,0 @@
---- src/Makefile.common.orig 2011-01-10 20:40:30.000000000 +0300
-+++ src/Makefile.common 2011-09-27 08:39:09.000000000 +0400
-@@ -1,110 +1,110 @@
- OBJS=${TEMP_DIR}/BikeSelection.o ${TEMP_DIR}/Data.o ${TEMP_DIR}/main.o ${TEMP_DIR}/Particulas.o ${TEMP_DIR}/Carrera.o ${TEMP_DIR}/Circuito.o ${TEMP_DIR}/Moto.o ${TEMP_DIR}/global.o ${TEMP_DIR}/OSD.o ${TEMP_DIR}/MyFont.o ${TEMP_DIR}/Menu.o ${TEMP_DIR}/Loading.o ${TEMP_DIR}/Confirm.o ${TEMP_DIR}/Jukebox.o ${TEMP_DIR}/RaceExtras.o ${TEMP_DIR}/SelectionWheel.o ${TEMP_DIR}/TrackSelection.o ${TEMP_DIR}/RaceResults.o ${TEMP_DIR}/Shader.o ${TEMP_DIR}/TextViewer.o ${TEMP_DIR}/text.o ${TEMP_DIR}/RaceMenu.o ${TEMP_DIR}/ChampionshipMenu.o ${TEMP_DIR}/MakeData.o ${TEMP_DIR}/ChampionshipData.o ${TEMP_DIR}/Profile.o ${TEMP_DIR}/Config.o ${TEMP_DIR}/MyRenderWindow.o ${TEMP_DIR}/SlideShow.o ${TEMP_DIR}/Experience.o ${TEMP_DIR}/LangSelection.o ${TEMP_DIR}/Records.o ${TEMP_DIR}/StyleOsd.o ${TEMP_DIR}/Intro.o ${TEMP_DIR}/HiddenDriver.o ${TEMP_DIR}/text_hidden.o
-
- ${TEMP_DIR}/BikeSelection.o: BikeSelection.cpp global.h MyRenderWindow.h Data.h BikeSelection.h Drawer.h MyFont.h SelectionWheel.h Confirm.h Loading.h Config.h Profile.h Jukebox.h
-- ${GPP} ${FLAGS} -c BikeSelection.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c BikeSelection.cpp -o $@
-
- ${TEMP_DIR}/Data.o: Data.cpp Data.h global.h MyRenderWindow.h Jukebox.h Particulas.h Shader.h ChampionshipData.h Profile.h Config.h
-- ${GPP} ${FLAGS} -c Data.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Data.cpp -o $@
-
- ${TEMP_DIR}/main.o: main.cpp global.h MyRenderWindow.h Data.h OSD.h RaceExtras.h Carrera.h Drawer.h Particulas.h Menu.h MyFont.h Loading.h Confirm.h Jukebox.h SelectionWheel.h Shader.h ChampionshipData.h Config.h Profile.h SlideShow.h version.h Circuito.h LangSelection.h StyleOsd.h Intro.h text_hidden.h HiddenDriver.h
-- ${GPP} ${FLAGS} -c main.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c main.cpp -o $@
-
- ${TEMP_DIR}/Particulas.o: Particulas.cpp Particulas.h global.h MyRenderWindow.h Data.h Moto.h Circuito.h
-- ${GPP} ${FLAGS} -c Particulas.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Particulas.cpp -o $@
-
- ${TEMP_DIR}/Carrera.o: Carrera.cpp Carrera.h global.h MyRenderWindow.h Data.h Drawer.h Confirm.h RaceExtras.h Circuito.h Particulas.h Moto.h OSD.h Loading.h Shader.h Jukebox.h Profile.h Config.h TextViewer.h text.h StyleOsd.h
-- ${GPP} ${FLAGS} -c Carrera.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Carrera.cpp -o $@
-
- ${TEMP_DIR}/Circuito.o: Circuito.cpp Circuito.h global.h MyRenderWindow.h Data.h Jukebox.h Loading.h Drawer.h Confirm.h MakeData.h Profile.h Config.h OSD.h
-- ${GPP} ${FLAGS} -c Circuito.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Circuito.cpp -o $@
-
- ${TEMP_DIR}/Moto.o: Moto.cpp Moto.h Circuito.h global.h MyRenderWindow.h Data.h Jukebox.h RaceExtras.h Particulas.h Carrera.h Drawer.h Loading.h Profile.h Config.h StyleOsd.h
-- ${GPP} ${FLAGS} -c Moto.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Moto.cpp -o $@
-
- ${TEMP_DIR}/global.o: global.cpp global.h MyRenderWindow.h Data.h
-- ${GPP} ${FLAGS} -c global.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c global.cpp -o $@
-
- ${TEMP_DIR}/OSD.o: OSD.cpp OSD.h global.h MyRenderWindow.h Data.h Carrera.h Drawer.h Moto.h Circuito.h MyFont.h Config.h
-- ${GPP} ${FLAGS} -c OSD.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c OSD.cpp -o $@
-
- ${TEMP_DIR}/MyFont.o: MyFont.cpp MyFont.h global.h MyRenderWindow.h Data.h
-- ${GPP} ${FLAGS} -c MyFont.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c MyFont.cpp -o $@
-
- ${TEMP_DIR}/Menu.o: Menu.cpp Menu.h global.h MyRenderWindow.h Data.h Drawer.h Carrera.h MyFont.h Jukebox.h Confirm.h Loading.h EnterName.h SelectionWheel.h TrackSelection.h RaceResults.h RaceExtras.h Particulas.h TextViewer.h text.h Shader.h Circuito.h RaceMenu.h version.h BikeSelection.h ChampionshipMenu.h Config.h Profile.h OSD.h Records.h HiddenDriver.h text_hidden.h
-- ${GPP} ${FLAGS} -c Menu.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Menu.cpp -o $@
-
- ${TEMP_DIR}/Loading.o: Loading.cpp Loading.h global.h MyRenderWindow.h Data.h Drawer.h
-- ${GPP} ${FLAGS} -c Loading.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Loading.cpp -o $@
-
- ${TEMP_DIR}/Confirm.o: Confirm.cpp Confirm.h global.h MyRenderWindow.h Data.h Drawer.h MyFont.h Config.h Jukebox.h Loading.h
-- ${GPP} ${FLAGS} -c Confirm.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Confirm.cpp -o $@
-
- ${TEMP_DIR}/Jukebox.o: Jukebox.cpp Jukebox.h global.h MyRenderWindow.h Data.h Config.h
-- ${GPP} ${FLAGS} -c Jukebox.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Jukebox.cpp -o $@
-
- ${TEMP_DIR}/RaceExtras.o: RaceExtras.cpp RaceExtras.h global.h MyRenderWindow.h Data.h Carrera.h Drawer.h MyFont.h
-- ${GPP} ${FLAGS} -c RaceExtras.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c RaceExtras.cpp -o $@
-
- ${TEMP_DIR}/SelectionWheel.o: SelectionWheel.cpp SelectionWheel.h global.h MyRenderWindow.h Data.h
-- ${GPP} ${FLAGS} -c SelectionWheel.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c SelectionWheel.cpp -o $@
-
- ${TEMP_DIR}/TrackSelection.o: TrackSelection.cpp TrackSelection.h global.h MyRenderWindow.h Data.h Drawer.h MyFont.h SelectionWheel.h Loading.h Profile.h Config.h Confirm.h ChampionshipData.h Jukebox.h
-- ${GPP} ${FLAGS} -c TrackSelection.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c TrackSelection.cpp -o $@
-
- ${TEMP_DIR}/RaceResults.o: RaceResults.cpp RaceResults.h global.h MyRenderWindow.h Data.h Drawer.h Carrera.h MyFont.h Moto.h Circuito.h SelectionWheel.h Jukebox.h ChampionshipData.h Config.h Profile.h
-- ${GPP} ${FLAGS} -c RaceResults.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c RaceResults.cpp -o $@
-
- ${TEMP_DIR}/Shader.o: Shader.cpp Shader.h global.h MyRenderWindow.h Data.h
-- ${GPP} ${FLAGS} -c Shader.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Shader.cpp -o $@
-
- ${TEMP_DIR}/TextViewer.o: TextViewer.cpp TextViewer.h global.h MyRenderWindow.h Data.h text.h MyFont.h Config.h Jukebox.h
-- ${GPP} ${FLAGS} -c TextViewer.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c TextViewer.cpp -o $@
-
- ${TEMP_DIR}/text.o: text.cpp
-- ${GPP} ${FLAGS} -c text.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c text.cpp -o $@
-
- ${TEMP_DIR}/RaceMenu.o: RaceMenu.cpp RaceMenu.h global.h MyRenderWindow.h Data.h Drawer.h MyFont.h SelectionWheel.h TextViewer.h text.h Loading.h Circuito.h Carrera.h Moto.h Confirm.h RaceResults.h BikeSelection.h Profile.h Config.h ChampionshipData.h Jukebox.h Experience.h HiddenDriver.h text_hidden.h
-- ${GPP} ${FLAGS} -c RaceMenu.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c RaceMenu.cpp -o $@
-
- ${TEMP_DIR}/ChampionshipMenu.o: ChampionshipMenu.cpp ChampionshipMenu.h global.h MyRenderWindow.h Data.h Drawer.h Config.h MyFont.h SelectionWheel.h TextViewer.h text.h Loading.h Circuito.h Carrera.h Moto.h Confirm.h RaceResults.h BikeSelection.h ChampionshipData.h Profile.h TrackSelection.h RaceMenu.h Jukebox.h SlideShow.h HiddenDriver.h text_hidden.h
-- ${GPP} ${FLAGS} -c ChampionshipMenu.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c ChampionshipMenu.cpp -o $@
-
- ${TEMP_DIR}/MakeData.o: MakeData.cpp global.h MyRenderWindow.h Data.h Config.h Confirm.h Drawer.h
-- ${GPP} ${FLAGS} -c MakeData.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c MakeData.cpp -o $@
-
- ${TEMP_DIR}/ChampionshipData.o: ChampionshipData.cpp ChampionshipData.h Data.h global.h MyRenderWindow.h Profile.h Moto.h Circuito.h Experience.h
-- ${GPP} ${FLAGS} -c ChampionshipData.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c ChampionshipData.cpp -o $@
-
- ${TEMP_DIR}/Profile.o: Profile.cpp Profile.h global.h MyRenderWindow.h Data.h ChampionshipData.h
-- ${GPP} ${FLAGS} -c Profile.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Profile.cpp -o $@
-
- ${TEMP_DIR}/Config.o: Config.cpp Config.h global.h MyRenderWindow.h Data.h Shader.h Particulas.h Jukebox.h
-- ${GPP} ${FLAGS} -c Config.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Config.cpp -o $@
-
- ${TEMP_DIR}/MyRenderWindow.o: MyRenderWindow.cpp global.h MyRenderWindow.h Data.h Config.h
-- ${GPP} ${FLAGS} -c MyRenderWindow.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c MyRenderWindow.cpp -o $@
-
- ${TEMP_DIR}/SlideShow.o: SlideShow.cpp SlideShow.h global.h MyRenderWindow.h Data.h Config.h Jukebox.h Loading.h Drawer.h
-- ${GPP} ${FLAGS} -c SlideShow.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c SlideShow.cpp -o $@
-
- ${TEMP_DIR}/Experience.o: Experience.cpp Experience.h global.h MyRenderWindow.h Data.h MyFont.h Config.h SelectionWheel.h Jukebox.h
-- ${GPP} ${FLAGS} -c Experience.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Experience.cpp -o $@
-
- ${TEMP_DIR}/LangSelection.o: LangSelection.cpp LangSelection.h global.h MyRenderWindow.h Data.h Config.h
-- ${GPP} ${FLAGS} -c LangSelection.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c LangSelection.cpp -o $@
-
- ${TEMP_DIR}/Records.o: Records.cpp Records.h global.h MyRenderWindow.h Data.h Config.h Jukebox.h SelectionWheel.h MyFont.h
-- ${GPP} ${FLAGS} -c Records.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Records.cpp -o $@
-
- ${TEMP_DIR}/StyleOsd.o: StyleOsd.cpp StyleOsd.h global.h MyRenderWindow.h Data.h
-- ${GPP} ${FLAGS} -c StyleOsd.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c StyleOsd.cpp -o $@
-
- ${TEMP_DIR}/Intro.o: Intro.cpp Intro.h global.h MyRenderWindow.h Data.h
-- ${GPP} ${FLAGS} -c Intro.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c Intro.cpp -o $@
-
- ${TEMP_DIR}/HiddenDriver.o: HiddenDriver.cpp HiddenDriver.h global.h MyRenderWindow.h Data.h text_hidden.h Config.h Jukebox.h MyFont.h
-- ${GPP} ${FLAGS} -c HiddenDriver.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c HiddenDriver.cpp -o $@
-
- ${TEMP_DIR}/text_hidden.o: text_hidden.cpp text_hidden.h
-- ${GPP} ${FLAGS} -c text_hidden.cpp -o $@
-+ ${CXX} ${CXXFLAGS} -c text_hidden.cpp -o $@
-
diff --git a/games/motogt/files/patch-src-Makefile.lnx b/games/motogt/files/patch-src-Makefile.lnx
deleted file mode 100644
index aba2597dfd59..000000000000
--- a/games/motogt/files/patch-src-Makefile.lnx
+++ /dev/null
@@ -1,25 +0,0 @@
---- src/Makefile.lnx.orig 2011-01-10 20:54:57.000000000 +0300
-+++ src/Makefile.lnx 2011-09-27 08:41:42.000000000 +0400
-@@ -1,8 +1,8 @@
--GPP=g++
--GCC=gcc
--FLAGS= -O2 -ffast-math
--LIBS= -s -lpng -lsfml-window -lsfml-graphics -lsfml-system -lsfml-audio
--TEMP_DIR=../tmp-lnx
-+CXX?= g++
-+CXXFLAGS?= -O2 -ffast-math
-+LIBS= -lpng -lsfml-window -lsfml-graphics -lsfml-system -lsfml-audio -lGL
-+LDFLAGS?= -s
-+TEMP_DIR= ../tmp-lnx
-
- all: ${TEMP_DIR} ../MotoGT.bin
-
-@@ -12,7 +12,7 @@
- rm -rf ${OBJS} ../MotoGT.bin
-
- ../MotoGT.bin: ${OBJS}
-- ${GPP} ${OBJS} ${LIBS} -o $@
-+ ${CXX} ${LDFLAGS} ${LIBS} ${OBJS} -o $@
-
- ${TEMP_DIR}:
- mkdir ${TEMP_DIR}
diff --git a/games/motogt/pkg-descr b/games/motogt/pkg-descr
deleted file mode 100644
index ed5668d67f8a..000000000000
--- a/games/motogt/pkg-descr
+++ /dev/null
@@ -1,5 +0,0 @@
-MotoGT is 2D top-viewed game where you drive a MotoGP bike, and you
-want to win races. In career mode you start with a regular bike,
-but when you win races you get experience, and experience let's you
-improve your bike. If you win championships, you can also unlock
-hidden features.
diff --git a/games/openclonk/Makefile b/games/openclonk/Makefile
index e23354bf7ea1..a461147ee165 100644
--- a/games/openclonk/Makefile
+++ b/games/openclonk/Makefile
@@ -1,7 +1,7 @@
PORTNAME= openclonk
DISTVERSION= 8.1
-PORTREVISION= 7
DISTVERSIONSUFFIX= -src
+PORTREVISION= 8
CATEGORIES= games
MASTER_SITES= http://www.openclonk.org/builds/release/${DISTVERSION}/
@@ -13,7 +13,6 @@ LICENSE= ISCL CC0-1.0
LICENSE_COMB= multi
LICENSE_FILE_ISCL= ${WRKSRC}/COPYING
-BROKEN_aarch64= fails to compile: mmintrin.h:50:12: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
BROKEN_powerpc64= fails to compile: C4Texture.cpp:260:13: error: 'stoul' is not a member of 'std'
LIB_DEPENDS= libalut.so:audio/freealut \
@@ -24,8 +23,6 @@ LIB_DEPENDS= libalut.so:audio/freealut \
libtinyxml.so:textproc/tinyxml \
libvorbis.so:audio/libvorbis
-WRKSRC= ${WRKDIR}/openclonk-release-${PORTVERSION}-src
-
# make install has parallel issues with ninja
USES= cmake:noninja compiler:c++14-lang desktop-file-utils gl gnome jpeg openal \
pkgconfig sdl tar:bzip2 xorg
@@ -35,6 +32,7 @@ USE_XORG= x11 xpm
CMAKE_ARGS= -DAudio_TK:STRING="OpenAL"
CFLAGS_powerpc64le= -DNO_WARN_X86_INTRINSICS
LDFLAGS_i386= -Wl,-znotext
+WRKSRC= ${WRKDIR}/openclonk-release-${PORTVERSION}-src
.include <bsd.port.pre.mk>
@@ -42,8 +40,4 @@ LDFLAGS_i386= -Wl,-znotext
LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations
.endif
-post-patch:
- @${REINPLACE_CMD} -e 's|DESTINATION games|DESTINATION bin|' \
- -e 's|share/games|share|' ${WRKSRC}/CMakeLists.txt
-
.include <bsd.port.post.mk>
diff --git a/games/openclonk/distinfo b/games/openclonk/distinfo
index 5da768b39294..463b137202dc 100644
--- a/games/openclonk/distinfo
+++ b/games/openclonk/distinfo
@@ -1,3 +1,7 @@
-TIMESTAMP = 1531177508
+TIMESTAMP = 1756900968
SHA256 (openclonk-8.1-src.tar.bz2) = 337677f25457e7137eac7818adb4ad02992d562593386c19b885738aaec4b346
SIZE (openclonk-8.1-src.tar.bz2) = 120149164
+SHA256 (288e9f339b2e0aba9a136e2c91283213d863c7d4.diff) = f5365d3d38d5ffe3708bce4dc79dd3737472f91c5ac75febe0b5895a46e89bca
+SIZE (288e9f339b2e0aba9a136e2c91283213d863c7d4.diff) = 5112218
+SHA256 (c1ee1bdac7990605ad0271f2bcb09edea4524c5a.diff) = 2ca0700e27b3de680501837437fee7e6961ef1a43230f743641733e8ded81f24
+SIZE (c1ee1bdac7990605ad0271f2bcb09edea4524c5a.diff) = 139333
diff --git a/games/openclonk/files/patch-CMakeLists.txt b/games/openclonk/files/patch-CMakeLists.txt
index 24afcb82ee29..592aebc110e9 100644
--- a/games/openclonk/files/patch-CMakeLists.txt
+++ b/games/openclonk/files/patch-CMakeLists.txt
@@ -1,6 +1,6 @@
--- CMakeLists.txt.orig 2018-03-16 17:25:33 UTC
+++ CMakeLists.txt
-@@ -91,7 +91,6 @@ function(add_linker_flags)
+@@ -91,7 +91,6 @@ endfunction()
endforeach()
endfunction()
@@ -8,7 +8,16 @@
if(USE_GCC_STYLE_LTCG)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -flto")
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -flto")
-@@ -337,8 +336,6 @@ if(READLINE_FOUND)
+@@ -167,7 +166,7 @@ if(UNIX)
+ endif()
+
+ if(UNIX)
+- add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/games/openclonk\"")
++ add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/openclonk\"")
+ endif()
+
+ if(APPLE)
+@@ -337,8 +336,6 @@ SET(HAVE_LIBREADLINE ${READLINE_FOUND} CACHE INTERNAL
endif()
SET(HAVE_LIBREADLINE ${READLINE_FOUND} CACHE INTERNAL "libreadline available")
@@ -17,7 +26,7 @@
# Select an audio library
find_package("Audio")
if(Audio_FOUND)
-@@ -356,8 +353,6 @@ set(HAVE_SDL ${SDL2_FOUND})
+@@ -356,8 +353,6 @@ include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
# Qt5 for editor
@@ -26,3 +35,28 @@
if(Qt5Widgets_FOUND)
SET(WITH_QT_EDITOR ${Qt5Widgets_FOUND} "Qt editor dialogues available")
set(CMAKE_AUTOMOC ON)
+@@ -1537,13 +1532,13 @@ foreach(group ${OC_C4GROUPS})
+ DEPENDS "${native_c4group}"
+ VERBATIM
+ )
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/games/openclonk)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/openclonk)
+ endif()
+ endforeach()
+
+ if(NOT APPLE)
+ if(NOT HEADLESS_ONLY)
+- install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/planet/Music.ocg DESTINATION share/games/openclonk)
++ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/planet/Music.ocg DESTINATION share/openclonk)
+ endif()
+ # group files (game data)
+ add_custom_target(groups DEPENDS ${OC_C4GROUPS})
+@@ -1563,7 +1558,7 @@ if(NOT HEADLESS_ONLY)
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.appdata.xml DESTINATION share/appdata)
+
+ # Install binaries
+- install(TARGETS openclonk DESTINATION games)
++ install(TARGETS openclonk DESTINATION bin)
+ else()
+ install(TARGETS openclonk
+ BUNDLE DESTINATION .
diff --git a/games/openclonk/files/patch-blake2 b/games/openclonk/files/patch-blake2
new file mode 100644
index 000000000000..f7aa744692dd
--- /dev/null
+++ b/games/openclonk/files/patch-blake2
@@ -0,0 +1,10621 @@
+This patch set updates blake2 and enables compilation on non-x86. It is
+an amalgamation of the following upstream patches, which could not be
+taken from upstream directly due to the presence of a merge:
+
+c1ee1bdac Fix the most horrible merge I've done yet
+c29148803 Merge branch 'blake2-no-sse2' into stable-8
+e0850947b BLAKE2: Fall back to plain C implementation on non-amd64 platforms
+288e9f339 Merge commit '9493ed1277ef924c3005a9ff51f194d1cda87947' as 'thirdparty/blake2'
+
+Files not needed for compilation were omitted to save space.
+
+--- thirdparty/blake2/CMakeLists.txt.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/CMakeLists.txt
+@@ -11,33 +11,64 @@
+ # To redistribute this file separately, substitute the full license texts
+ # for the above references.
+
+-add_library(blake2 STATIC
+- blake2.h
+-)
++include(CheckCSourceCompiles)
+
+-target_sources(blake2
+- PRIVATE
+- blake2b.c
+- blake2bp.c
+- blake2s.c
+- blake2sp.c
+- blake2xb.c
+- blake2xs.c
+- blake2b-load-sse2.h
+- blake2b-load-sse41.h
+- blake2b-round.h
+- blake2s-load-sse2.h
+- blake2s-load-sse41.h
+- blake2s-load-xop.h
+- blake2s-round.h
+- blake2-config.h
+- blake2-impl.h
+-)
++CHECK_C_SOURCE_COMPILES("
++#if __x86_64 || __x86_64__ || __amd64 || __AMD64 || _M_X64
++// x86-64 target system
++#else
++#error Not building for x86-64
++#endif
++int main() {}
++" HAVE_X86_64)
+
+-include(CheckCCompilerFlag)
+-CHECK_C_COMPILER_FLAG("-msse2" HAVE_CFLAG_MSSE2)
+-target_compile_definitions(blake2 PRIVATE -DHAVE_SSE2)
+-if(HAVE_CFLAG_MSSE2)
+- target_compile_options(blake2 PUBLIC -msse2)
++option(BLAKE2B_USE_SSE2 "Use SSE2 instructions for BLAKE2b" ${HAVE_X86_64})
++
++if (BLAKE2B_USE_SSE2)
++ add_library(blake2 STATIC
++ sse/blake2.h
++ )
++
++ target_sources(blake2
++ PRIVATE
++ sse/blake2b.c
++ sse/blake2bp.c
++ sse/blake2s.c
++ sse/blake2sp.c
++ sse/blake2xb.c
++ sse/blake2xs.c
++ sse/blake2b-load-sse2.h
++ sse/blake2b-load-sse41.h
++ sse/blake2b-round.h
++ sse/blake2s-load-sse2.h
++ sse/blake2s-load-sse41.h
++ sse/blake2s-load-xop.h
++ sse/blake2s-round.h
++ sse/blake2-config.h
++ sse/blake2-impl.h
++ )
++
++ include(CheckCCompilerFlag)
++ CHECK_C_COMPILER_FLAG("-msse2" HAVE_CFLAG_MSSE2)
++ target_compile_definitions(blake2 PRIVATE -DHAVE_SSE2)
++ if(HAVE_CFLAG_MSSE2)
++ target_compile_options(blake2 PUBLIC -msse2)
++ endif()
++ target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/sse)
++else()
++ add_library(blake2 STATIC
++ ref/blake2.h
++ )
++
++ target_sources(blake2
++ PRIVATE
++ ref/blake2bp-ref.c
++ ref/blake2b-ref.c
++ ref/blake2sp-ref.c
++ ref/blake2s-ref.c
++ ref/blake2xb-ref.c
++ ref/blake2xs-ref.c
++ ref/blake2-impl.h
++ )
++ target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ref)
+ endif()
+-target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+--- thirdparty/blake2/blake2-config.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2-config.h
+@@ -1,72 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2_CONFIG_H
+-#define BLAKE2_CONFIG_H
+-
+-/* These don't work everywhere */
+-#if defined(__SSE2__) || defined(__x86_64__) || defined(__amd64__)
+-#define HAVE_SSE2
+-#endif
+-
+-#if defined(__SSSE3__)
+-#define HAVE_SSSE3
+-#endif
+-
+-#if defined(__SSE4_1__)
+-#define HAVE_SSE41
+-#endif
+-
+-#if defined(__AVX__)
+-#define HAVE_AVX
+-#endif
+-
+-#if defined(__XOP__)
+-#define HAVE_XOP
+-#endif
+-
+-
+-#ifdef HAVE_AVX2
+-#ifndef HAVE_AVX
+-#define HAVE_AVX
+-#endif
+-#endif
+-
+-#ifdef HAVE_XOP
+-#ifndef HAVE_AVX
+-#define HAVE_AVX
+-#endif
+-#endif
+-
+-#ifdef HAVE_AVX
+-#ifndef HAVE_SSE41
+-#define HAVE_SSE41
+-#endif
+-#endif
+-
+-#ifdef HAVE_SSE41
+-#ifndef HAVE_SSSE3
+-#define HAVE_SSSE3
+-#endif
+-#endif
+-
+-#ifdef HAVE_SSSE3
+-#define HAVE_SSE2
+-#endif
+-
+-#if !defined(HAVE_SSE2)
+-#error "This code requires at least SSE2."
+-#endif
+-
+-#endif
+--- thirdparty/blake2/blake2-impl.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2-impl.h
+@@ -1,160 +0,0 @@
+-/*
+- BLAKE2 reference source code package - reference C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2_IMPL_H
+-#define BLAKE2_IMPL_H
+-
+-#include <stdint.h>
+-#include <string.h>
+-
+-#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
+- #if defined(_MSC_VER)
+- #define BLAKE2_INLINE __inline
+- #elif defined(__GNUC__)
+- #define BLAKE2_INLINE __inline__
+- #else
+- #define BLAKE2_INLINE
+- #endif
+-#else
+- #define BLAKE2_INLINE inline
+-#endif
+-
+-static BLAKE2_INLINE uint32_t load32( const void *src )
+-{
+-#if defined(NATIVE_LITTLE_ENDIAN)
+- uint32_t w;
+- memcpy(&w, src, sizeof w);
+- return w;
+-#else
+- const uint8_t *p = ( const uint8_t * )src;
+- return (( uint32_t )( p[0] ) << 0) |
+- (( uint32_t )( p[1] ) << 8) |
+- (( uint32_t )( p[2] ) << 16) |
+- (( uint32_t )( p[3] ) << 24) ;
+-#endif
+-}
+-
+-static BLAKE2_INLINE uint64_t load64( const void *src )
+-{
+-#if defined(NATIVE_LITTLE_ENDIAN)
+- uint64_t w;
+- memcpy(&w, src, sizeof w);
+- return w;
+-#else
+- const uint8_t *p = ( const uint8_t * )src;
+- return (( uint64_t )( p[0] ) << 0) |
+- (( uint64_t )( p[1] ) << 8) |
+- (( uint64_t )( p[2] ) << 16) |
+- (( uint64_t )( p[3] ) << 24) |
+- (( uint64_t )( p[4] ) << 32) |
+- (( uint64_t )( p[5] ) << 40) |
+- (( uint64_t )( p[6] ) << 48) |
+- (( uint64_t )( p[7] ) << 56) ;
+-#endif
+-}
+-
+-static BLAKE2_INLINE uint16_t load16( const void *src )
+-{
+-#if defined(NATIVE_LITTLE_ENDIAN)
+- uint16_t w;
+- memcpy(&w, src, sizeof w);
+- return w;
+-#else
+- const uint8_t *p = ( const uint8_t * )src;
+- return (( uint16_t )( p[0] ) << 0) |
+- (( uint16_t )( p[1] ) << 8) ;
+-#endif
+-}
+-
+-static BLAKE2_INLINE void store16( void *dst, uint16_t w )
+-{
+-#if defined(NATIVE_LITTLE_ENDIAN)
+- memcpy(dst, &w, sizeof w);
+-#else
+- uint8_t *p = ( uint8_t * )dst;
+- *p++ = ( uint8_t )w; w >>= 8;
+- *p++ = ( uint8_t )w;
+-#endif
+-}
+-
+-static BLAKE2_INLINE void store32( void *dst, uint32_t w )
+-{
+-#if defined(NATIVE_LITTLE_ENDIAN)
+- memcpy(dst, &w, sizeof w);
+-#else
+- uint8_t *p = ( uint8_t * )dst;
+- p[0] = (uint8_t)(w >> 0);
+- p[1] = (uint8_t)(w >> 8);
+- p[2] = (uint8_t)(w >> 16);
+- p[3] = (uint8_t)(w >> 24);
+-#endif
+-}
+-
+-static BLAKE2_INLINE void store64( void *dst, uint64_t w )
+-{
+-#if defined(NATIVE_LITTLE_ENDIAN)
+- memcpy(dst, &w, sizeof w);
+-#else
+- uint8_t *p = ( uint8_t * )dst;
+- p[0] = (uint8_t)(w >> 0);
+- p[1] = (uint8_t)(w >> 8);
+- p[2] = (uint8_t)(w >> 16);
+- p[3] = (uint8_t)(w >> 24);
+- p[4] = (uint8_t)(w >> 32);
+- p[5] = (uint8_t)(w >> 40);
+- p[6] = (uint8_t)(w >> 48);
+- p[7] = (uint8_t)(w >> 56);
+-#endif
+-}
+-
+-static BLAKE2_INLINE uint64_t load48( const void *src )
+-{
+- const uint8_t *p = ( const uint8_t * )src;
+- return (( uint64_t )( p[0] ) << 0) |
+- (( uint64_t )( p[1] ) << 8) |
+- (( uint64_t )( p[2] ) << 16) |
+- (( uint64_t )( p[3] ) << 24) |
+- (( uint64_t )( p[4] ) << 32) |
+- (( uint64_t )( p[5] ) << 40) ;
+-}
+-
+-static BLAKE2_INLINE void store48( void *dst, uint64_t w )
+-{
+- uint8_t *p = ( uint8_t * )dst;
+- p[0] = (uint8_t)(w >> 0);
+- p[1] = (uint8_t)(w >> 8);
+- p[2] = (uint8_t)(w >> 16);
+- p[3] = (uint8_t)(w >> 24);
+- p[4] = (uint8_t)(w >> 32);
+- p[5] = (uint8_t)(w >> 40);
+-}
+-
+-static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c )
+-{
+- return ( w >> c ) | ( w << ( 32 - c ) );
+-}
+-
+-static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c )
+-{
+- return ( w >> c ) | ( w << ( 64 - c ) );
+-}
+-
+-/* prevents compiler optimizing out memset() */
+-static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n)
+-{
+- static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
+- memset_v(v, 0, n);
+-}
+-
+-#endif
+--- thirdparty/blake2/blake2.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2.h
+@@ -1,195 +0,0 @@
+-/*
+- BLAKE2 reference source code package - reference C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2_H
+-#define BLAKE2_H
+-
+-#include <stddef.h>
+-#include <stdint.h>
+-
+-#if defined(_MSC_VER)
+-#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
+-#else
+-#define BLAKE2_PACKED(x) x __attribute__((packed))
+-#endif
+-
+-#if defined(__cplusplus)
+-extern "C" {
+-#endif
+-
+- enum blake2s_constant
+- {
+- BLAKE2S_BLOCKBYTES = 64,
+- BLAKE2S_OUTBYTES = 32,
+- BLAKE2S_KEYBYTES = 32,
+- BLAKE2S_SALTBYTES = 8,
+- BLAKE2S_PERSONALBYTES = 8
+- };
+-
+- enum blake2b_constant
+- {
+- BLAKE2B_BLOCKBYTES = 128,
+- BLAKE2B_OUTBYTES = 64,
+- BLAKE2B_KEYBYTES = 64,
+- BLAKE2B_SALTBYTES = 16,
+- BLAKE2B_PERSONALBYTES = 16
+- };
+-
+- typedef struct blake2s_state__
+- {
+- uint32_t h[8];
+- uint32_t t[2];
+- uint32_t f[2];
+- uint8_t buf[BLAKE2S_BLOCKBYTES];
+- size_t buflen;
+- size_t outlen;
+- uint8_t last_node;
+- } blake2s_state;
+-
+- typedef struct blake2b_state__
+- {
+- uint64_t h[8];
+- uint64_t t[2];
+- uint64_t f[2];
+- uint8_t buf[BLAKE2B_BLOCKBYTES];
+- size_t buflen;
+- size_t outlen;
+- uint8_t last_node;
+- } blake2b_state;
+-
+- typedef struct blake2sp_state__
+- {
+- blake2s_state S[8][1];
+- blake2s_state R[1];
+- uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
+- size_t buflen;
+- size_t outlen;
+- } blake2sp_state;
+-
+- typedef struct blake2bp_state__
+- {
+- blake2b_state S[4][1];
+- blake2b_state R[1];
+- uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
+- size_t buflen;
+- size_t outlen;
+- } blake2bp_state;
+-
+-
+- BLAKE2_PACKED(struct blake2s_param__
+- {
+- uint8_t digest_length; /* 1 */
+- uint8_t key_length; /* 2 */
+- uint8_t fanout; /* 3 */
+- uint8_t depth; /* 4 */
+- uint32_t leaf_length; /* 8 */
+- uint32_t node_offset; /* 12 */
+- uint16_t xof_length; /* 14 */
+- uint8_t node_depth; /* 15 */
+- uint8_t inner_length; /* 16 */
+- /* uint8_t reserved[0]; */
+- uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */
+- uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */
+- });
+-
+- typedef struct blake2s_param__ blake2s_param;
+-
+- BLAKE2_PACKED(struct blake2b_param__
+- {
+- uint8_t digest_length; /* 1 */
+- uint8_t key_length; /* 2 */
+- uint8_t fanout; /* 3 */
+- uint8_t depth; /* 4 */
+- uint32_t leaf_length; /* 8 */
+- uint32_t node_offset; /* 12 */
+- uint32_t xof_length; /* 16 */
+- uint8_t node_depth; /* 17 */
+- uint8_t inner_length; /* 18 */
+- uint8_t reserved[14]; /* 32 */
+- uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
+- uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
+- });
+-
+- typedef struct blake2b_param__ blake2b_param;
+-
+- typedef struct blake2xs_state__
+- {
+- blake2s_state S[1];
+- blake2s_param P[1];
+- } blake2xs_state;
+-
+- typedef struct blake2xb_state__
+- {
+- blake2b_state S[1];
+- blake2b_param P[1];
+- } blake2xb_state;
+-
+- /* Padded structs result in a compile-time error */
+- enum {
+- BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES),
+- BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
+- };
+-
+- /* Streaming API */
+- int blake2s_init( blake2s_state *S, size_t outlen );
+- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
+- int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
+- int blake2s_final( blake2s_state *S, void *out, size_t outlen );
+-
+- int blake2b_init( blake2b_state *S, size_t outlen );
+- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
+- int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
+- int blake2b_final( blake2b_state *S, void *out, size_t outlen );
+-
+- int blake2sp_init( blake2sp_state *S, size_t outlen );
+- int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
+- int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen );
+- int blake2sp_final( blake2sp_state *S, void *out, size_t outlen );
+-
+- int blake2bp_init( blake2bp_state *S, size_t outlen );
+- int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
+- int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen );
+- int blake2bp_final( blake2bp_state *S, void *out, size_t outlen );
+-
+- /* Variable output length API */
+- int blake2xs_init( blake2xs_state *S, const size_t outlen );
+- int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen );
+- int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen );
+- int blake2xs_final(blake2xs_state *S, void *out, size_t outlen);
+-
+- int blake2xb_init( blake2xb_state *S, const size_t outlen );
+- int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen );
+- int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen );
+- int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
+-
+- /* Simple API */
+- int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+- int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+-
+- int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+- int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+-
+- int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+- int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+-
+- /* This is simply an alias for blake2b */
+- int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
+-
+-#if defined(__cplusplus)
+-}
+-#endif
+-
+-#endif
+--- thirdparty/blake2/blake2b-load-sse2.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2b-load-sse2.h
+@@ -1,68 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2B_LOAD_SSE2_H
+-#define BLAKE2B_LOAD_SSE2_H
+-
+-#define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4)
+-#define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5)
+-#define LOAD_MSG_0_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12)
+-#define LOAD_MSG_0_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13)
+-#define LOAD_MSG_1_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9)
+-#define LOAD_MSG_1_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15)
+-#define LOAD_MSG_1_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11)
+-#define LOAD_MSG_1_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7)
+-#define LOAD_MSG_2_1(b0, b1) b0 = _mm_set_epi64x(m12, m11); b1 = _mm_set_epi64x(m15, m5)
+-#define LOAD_MSG_2_2(b0, b1) b0 = _mm_set_epi64x(m0, m8); b1 = _mm_set_epi64x(m13, m2)
+-#define LOAD_MSG_2_3(b0, b1) b0 = _mm_set_epi64x(m3, m10); b1 = _mm_set_epi64x(m9, m7)
+-#define LOAD_MSG_2_4(b0, b1) b0 = _mm_set_epi64x(m6, m14); b1 = _mm_set_epi64x(m4, m1)
+-#define LOAD_MSG_3_1(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m13)
+-#define LOAD_MSG_3_2(b0, b1) b0 = _mm_set_epi64x(m1, m9); b1 = _mm_set_epi64x(m14, m12)
+-#define LOAD_MSG_3_3(b0, b1) b0 = _mm_set_epi64x(m5, m2); b1 = _mm_set_epi64x(m15, m4)
+-#define LOAD_MSG_3_4(b0, b1) b0 = _mm_set_epi64x(m10, m6); b1 = _mm_set_epi64x(m8, m0)
+-#define LOAD_MSG_4_1(b0, b1) b0 = _mm_set_epi64x(m5, m9); b1 = _mm_set_epi64x(m10, m2)
+-#define LOAD_MSG_4_2(b0, b1) b0 = _mm_set_epi64x(m7, m0); b1 = _mm_set_epi64x(m15, m4)
+-#define LOAD_MSG_4_3(b0, b1) b0 = _mm_set_epi64x(m11, m14); b1 = _mm_set_epi64x(m3, m6)
+-#define LOAD_MSG_4_4(b0, b1) b0 = _mm_set_epi64x(m12, m1); b1 = _mm_set_epi64x(m13, m8)
+-#define LOAD_MSG_5_1(b0, b1) b0 = _mm_set_epi64x(m6, m2); b1 = _mm_set_epi64x(m8, m0)
+-#define LOAD_MSG_5_2(b0, b1) b0 = _mm_set_epi64x(m10, m12); b1 = _mm_set_epi64x(m3, m11)
+-#define LOAD_MSG_5_3(b0, b1) b0 = _mm_set_epi64x(m7, m4); b1 = _mm_set_epi64x(m1, m15)
+-#define LOAD_MSG_5_4(b0, b1) b0 = _mm_set_epi64x(m5, m13); b1 = _mm_set_epi64x(m9, m14)
+-#define LOAD_MSG_6_1(b0, b1) b0 = _mm_set_epi64x(m1, m12); b1 = _mm_set_epi64x(m4, m14)
+-#define LOAD_MSG_6_2(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m10, m13)
+-#define LOAD_MSG_6_3(b0, b1) b0 = _mm_set_epi64x(m6, m0); b1 = _mm_set_epi64x(m8, m9)
+-#define LOAD_MSG_6_4(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m2)
+-#define LOAD_MSG_7_1(b0, b1) b0 = _mm_set_epi64x(m7, m13); b1 = _mm_set_epi64x(m3, m12)
+-#define LOAD_MSG_7_2(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m9, m1)
+-#define LOAD_MSG_7_3(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m2, m8)
+-#define LOAD_MSG_7_4(b0, b1) b0 = _mm_set_epi64x(m4, m0); b1 = _mm_set_epi64x(m10, m6)
+-#define LOAD_MSG_8_1(b0, b1) b0 = _mm_set_epi64x(m14, m6); b1 = _mm_set_epi64x(m0, m11)
+-#define LOAD_MSG_8_2(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m8, m3)
+-#define LOAD_MSG_8_3(b0, b1) b0 = _mm_set_epi64x(m13, m12); b1 = _mm_set_epi64x(m10, m1)
+-#define LOAD_MSG_8_4(b0, b1) b0 = _mm_set_epi64x(m7, m2); b1 = _mm_set_epi64x(m5, m4)
+-#define LOAD_MSG_9_1(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m1, m7)
+-#define LOAD_MSG_9_2(b0, b1) b0 = _mm_set_epi64x(m4, m2); b1 = _mm_set_epi64x(m5, m6)
+-#define LOAD_MSG_9_3(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m13, m3)
+-#define LOAD_MSG_9_4(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m0, m12)
+-#define LOAD_MSG_10_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4)
+-#define LOAD_MSG_10_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5)
+-#define LOAD_MSG_10_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12)
+-#define LOAD_MSG_10_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13)
+-#define LOAD_MSG_11_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9)
+-#define LOAD_MSG_11_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15)
+-#define LOAD_MSG_11_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11)
+-#define LOAD_MSG_11_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7)
+-
+-
+-#endif
+--- thirdparty/blake2/blake2b-load-sse41.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2b-load-sse41.h
+@@ -1,402 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2B_LOAD_SSE41_H
+-#define BLAKE2B_LOAD_SSE41_H
+-
+-#define LOAD_MSG_0_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m0, m1); \
+-b1 = _mm_unpacklo_epi64(m2, m3); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_0_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m0, m1); \
+-b1 = _mm_unpackhi_epi64(m2, m3); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_0_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m4, m5); \
+-b1 = _mm_unpacklo_epi64(m6, m7); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_0_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m4, m5); \
+-b1 = _mm_unpackhi_epi64(m6, m7); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_1_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m7, m2); \
+-b1 = _mm_unpackhi_epi64(m4, m6); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_1_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m5, m4); \
+-b1 = _mm_alignr_epi8(m3, m7, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_1_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \
+-b1 = _mm_unpackhi_epi64(m5, m2); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_1_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m6, m1); \
+-b1 = _mm_unpackhi_epi64(m3, m1); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_2_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_alignr_epi8(m6, m5, 8); \
+-b1 = _mm_unpackhi_epi64(m2, m7); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_2_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m4, m0); \
+-b1 = _mm_blend_epi16(m1, m6, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_2_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m5, m1, 0xF0); \
+-b1 = _mm_unpackhi_epi64(m3, m4); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_2_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m7, m3); \
+-b1 = _mm_alignr_epi8(m2, m0, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_3_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m3, m1); \
+-b1 = _mm_unpackhi_epi64(m6, m5); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_3_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m4, m0); \
+-b1 = _mm_unpacklo_epi64(m6, m7); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_3_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m1, m2, 0xF0); \
+-b1 = _mm_blend_epi16(m2, m7, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_3_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m3, m5); \
+-b1 = _mm_unpacklo_epi64(m0, m4); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_4_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m4, m2); \
+-b1 = _mm_unpacklo_epi64(m1, m5); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_4_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m0, m3, 0xF0); \
+-b1 = _mm_blend_epi16(m2, m7, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_4_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m7, m5, 0xF0); \
+-b1 = _mm_blend_epi16(m3, m1, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_4_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_alignr_epi8(m6, m0, 8); \
+-b1 = _mm_blend_epi16(m4, m6, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_5_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m1, m3); \
+-b1 = _mm_unpacklo_epi64(m0, m4); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_5_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m6, m5); \
+-b1 = _mm_unpackhi_epi64(m5, m1); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_5_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m2, m3, 0xF0); \
+-b1 = _mm_unpackhi_epi64(m7, m0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_5_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m6, m2); \
+-b1 = _mm_blend_epi16(m7, m4, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_6_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m6, m0, 0xF0); \
+-b1 = _mm_unpacklo_epi64(m7, m2); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_6_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m2, m7); \
+-b1 = _mm_alignr_epi8(m5, m6, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_6_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m0, m3); \
+-b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_6_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m3, m1); \
+-b1 = _mm_blend_epi16(m1, m5, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_7_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m6, m3); \
+-b1 = _mm_blend_epi16(m6, m1, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_7_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_alignr_epi8(m7, m5, 8); \
+-b1 = _mm_unpackhi_epi64(m0, m4); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_7_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m2, m7); \
+-b1 = _mm_unpacklo_epi64(m4, m1); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_7_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m0, m2); \
+-b1 = _mm_unpacklo_epi64(m3, m5); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_8_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m3, m7); \
+-b1 = _mm_alignr_epi8(m0, m5, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_8_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m7, m4); \
+-b1 = _mm_alignr_epi8(m4, m1, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_8_3(b0, b1) \
+-do \
+-{ \
+-b0 = m6; \
+-b1 = _mm_alignr_epi8(m5, m0, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_8_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_blend_epi16(m1, m3, 0xF0); \
+-b1 = m2; \
+-} while(0)
+-
+-
+-#define LOAD_MSG_9_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m5, m4); \
+-b1 = _mm_unpackhi_epi64(m3, m0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_9_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m1, m2); \
+-b1 = _mm_blend_epi16(m3, m2, 0xF0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_9_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m7, m4); \
+-b1 = _mm_unpackhi_epi64(m1, m6); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_9_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_alignr_epi8(m7, m5, 8); \
+-b1 = _mm_unpacklo_epi64(m6, m0); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_10_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m0, m1); \
+-b1 = _mm_unpacklo_epi64(m2, m3); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_10_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m0, m1); \
+-b1 = _mm_unpackhi_epi64(m2, m3); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_10_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m4, m5); \
+-b1 = _mm_unpacklo_epi64(m6, m7); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_10_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpackhi_epi64(m4, m5); \
+-b1 = _mm_unpackhi_epi64(m6, m7); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_11_1(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m7, m2); \
+-b1 = _mm_unpackhi_epi64(m4, m6); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_11_2(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m5, m4); \
+-b1 = _mm_alignr_epi8(m3, m7, 8); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_11_3(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \
+-b1 = _mm_unpackhi_epi64(m5, m2); \
+-} while(0)
+-
+-
+-#define LOAD_MSG_11_4(b0, b1) \
+-do \
+-{ \
+-b0 = _mm_unpacklo_epi64(m6, m1); \
+-b1 = _mm_unpackhi_epi64(m3, m1); \
+-} while(0)
+-
+-
+-#endif
+--- thirdparty/blake2/blake2b-round.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2b-round.h
+@@ -1,157 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2B_ROUND_H
+-#define BLAKE2B_ROUND_H
+-
+-#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) )
+-#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
+-
+-#define TOF(reg) _mm_castsi128_ps((reg))
+-#define TOI(reg) _mm_castps_si128((reg))
+-
+-#define LIKELY(x) __builtin_expect((x),1)
+-
+-
+-/* Microarchitecture-specific macros */
+-#ifndef HAVE_XOP
+-#ifdef HAVE_SSSE3
+-#define _mm_roti_epi64(x, c) \
+- (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \
+- : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \
+- : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \
+- : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \
+- : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c))))
+-#else
+-#define _mm_roti_epi64(r, c) _mm_xor_si128(_mm_srli_epi64( (r), -(c) ),_mm_slli_epi64( (r), 64-(-(c)) ))
+-#endif
+-#else
+-/* ... */
+-#endif
+-
+-
+-
+-#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
+- row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \
+- row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \
+- \
+- row4l = _mm_xor_si128(row4l, row1l); \
+- row4h = _mm_xor_si128(row4h, row1h); \
+- \
+- row4l = _mm_roti_epi64(row4l, -32); \
+- row4h = _mm_roti_epi64(row4h, -32); \
+- \
+- row3l = _mm_add_epi64(row3l, row4l); \
+- row3h = _mm_add_epi64(row3h, row4h); \
+- \
+- row2l = _mm_xor_si128(row2l, row3l); \
+- row2h = _mm_xor_si128(row2h, row3h); \
+- \
+- row2l = _mm_roti_epi64(row2l, -24); \
+- row2h = _mm_roti_epi64(row2h, -24); \
+-
+-#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
+- row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \
+- row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \
+- \
+- row4l = _mm_xor_si128(row4l, row1l); \
+- row4h = _mm_xor_si128(row4h, row1h); \
+- \
+- row4l = _mm_roti_epi64(row4l, -16); \
+- row4h = _mm_roti_epi64(row4h, -16); \
+- \
+- row3l = _mm_add_epi64(row3l, row4l); \
+- row3h = _mm_add_epi64(row3h, row4h); \
+- \
+- row2l = _mm_xor_si128(row2l, row3l); \
+- row2h = _mm_xor_si128(row2h, row3h); \
+- \
+- row2l = _mm_roti_epi64(row2l, -63); \
+- row2h = _mm_roti_epi64(row2h, -63); \
+-
+-#if defined(HAVE_SSSE3)
+-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
+- t0 = _mm_alignr_epi8(row2h, row2l, 8); \
+- t1 = _mm_alignr_epi8(row2l, row2h, 8); \
+- row2l = t0; \
+- row2h = t1; \
+- \
+- t0 = row3l; \
+- row3l = row3h; \
+- row3h = t0; \
+- \
+- t0 = _mm_alignr_epi8(row4h, row4l, 8); \
+- t1 = _mm_alignr_epi8(row4l, row4h, 8); \
+- row4l = t1; \
+- row4h = t0;
+-
+-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
+- t0 = _mm_alignr_epi8(row2l, row2h, 8); \
+- t1 = _mm_alignr_epi8(row2h, row2l, 8); \
+- row2l = t0; \
+- row2h = t1; \
+- \
+- t0 = row3l; \
+- row3l = row3h; \
+- row3h = t0; \
+- \
+- t0 = _mm_alignr_epi8(row4l, row4h, 8); \
+- t1 = _mm_alignr_epi8(row4h, row4l, 8); \
+- row4l = t1; \
+- row4h = t0;
+-#else
+-
+-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
+- t0 = row4l;\
+- t1 = row2l;\
+- row4l = row3l;\
+- row3l = row3h;\
+- row3h = row4l;\
+- row4l = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t0, t0)); \
+- row4h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row4h, row4h)); \
+- row2l = _mm_unpackhi_epi64(row2l, _mm_unpacklo_epi64(row2h, row2h)); \
+- row2h = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(t1, t1))
+-
+-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
+- t0 = row3l;\
+- row3l = row3h;\
+- row3h = t0;\
+- t0 = row2l;\
+- t1 = row4l;\
+- row2l = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(row2l, row2l)); \
+- row2h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row2h, row2h)); \
+- row4l = _mm_unpackhi_epi64(row4l, _mm_unpacklo_epi64(row4h, row4h)); \
+- row4h = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t1, t1))
+-
+-#endif
+-
+-#if defined(HAVE_SSE41)
+-#include "blake2b-load-sse41.h"
+-#else
+-#include "blake2b-load-sse2.h"
+-#endif
+-
+-#define ROUND(r) \
+- LOAD_MSG_ ##r ##_1(b0, b1); \
+- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
+- LOAD_MSG_ ##r ##_2(b0, b1); \
+- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
+- DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
+- LOAD_MSG_ ##r ##_3(b0, b1); \
+- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
+- LOAD_MSG_ ##r ##_4(b0, b1); \
+- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
+- UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h);
+-
+-#endif
+--- thirdparty/blake2/blake2b.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2b.c
+@@ -1,373 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdint.h>
+-#include <string.h>
+-#include <stdio.h>
+-
+-#include "blake2.h"
+-#include "blake2-impl.h"
+-
+-#include "blake2-config.h"
+-
+-#ifdef _MSC_VER
+-#include <intrin.h> /* for _mm_set_epi64x */
+-#endif
+-#include <emmintrin.h>
+-#if defined(HAVE_SSSE3)
+-#include <tmmintrin.h>
+-#endif
+-#if defined(HAVE_SSE41)
+-#include <smmintrin.h>
+-#endif
+-#if defined(HAVE_AVX)
+-#include <immintrin.h>
+-#endif
+-#if defined(HAVE_XOP)
+-#include <x86intrin.h>
+-#endif
+-
+-#include "blake2b-round.h"
+-
+-static const uint64_t blake2b_IV[8] =
+-{
+- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
+- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
+- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
+- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
+-};
+-
+-/* Some helper functions */
+-static void blake2b_set_lastnode( blake2b_state *S )
+-{
+- S->f[1] = (uint64_t)-1;
+-}
+-
+-static int blake2b_is_lastblock( const blake2b_state *S )
+-{
+- return S->f[0] != 0;
+-}
+-
+-static void blake2b_set_lastblock( blake2b_state *S )
+-{
+- if( S->last_node ) blake2b_set_lastnode( S );
+-
+- S->f[0] = (uint64_t)-1;
+-}
+-
+-static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
+-{
+- S->t[0] += inc;
+- S->t[1] += ( S->t[0] < inc );
+-}
+-
+-/* init xors IV with input parameter block */
+-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
+-{
+- size_t i;
+- /*blake2b_init0( S ); */
+- const unsigned char * v = ( const unsigned char * )( blake2b_IV );
+- const unsigned char * p = ( const unsigned char * )( P );
+- unsigned char * h = ( unsigned char * )( S->h );
+- /* IV XOR ParamBlock */
+- memset( S, 0, sizeof( blake2b_state ) );
+-
+- for( i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
+-
+- S->outlen = P->digest_length;
+- return 0;
+-}
+-
+-
+-/* Some sort of default parameter block initialization, for sequential blake2b */
+-int blake2b_init( blake2b_state *S, size_t outlen )
+-{
+- blake2b_param P[1];
+-
+- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
+-
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = 0;
+- P->fanout = 1;
+- P->depth = 1;
+- store32( &P->leaf_length, 0 );
+- store32( &P->node_offset, 0 );
+- store32( &P->xof_length, 0 );
+- P->node_depth = 0;
+- P->inner_length = 0;
+- memset( P->reserved, 0, sizeof( P->reserved ) );
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+-
+- return blake2b_init_param( S, P );
+-}
+-
+-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
+-{
+- blake2b_param P[1];
+-
+- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
+-
+- if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1;
+-
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = (uint8_t)keylen;
+- P->fanout = 1;
+- P->depth = 1;
+- store32( &P->leaf_length, 0 );
+- store32( &P->node_offset, 0 );
+- store32( &P->xof_length, 0 );
+- P->node_depth = 0;
+- P->inner_length = 0;
+- memset( P->reserved, 0, sizeof( P->reserved ) );
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+-
+- if( blake2b_init_param( S, P ) < 0 )
+- return 0;
+-
+- {
+- uint8_t block[BLAKE2B_BLOCKBYTES];
+- memset( block, 0, BLAKE2B_BLOCKBYTES );
+- memcpy( block, key, keylen );
+- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
+- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
+- }
+- return 0;
+-}
+-
+-static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
+-{
+- __m128i row1l, row1h;
+- __m128i row2l, row2h;
+- __m128i row3l, row3h;
+- __m128i row4l, row4h;
+- __m128i b0, b1;
+- __m128i t0, t1;
+-#if defined(HAVE_SSSE3) && !defined(HAVE_XOP)
+- const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 );
+- const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 );
+-#endif
+-#if defined(HAVE_SSE41)
+- const __m128i m0 = LOADU( block + 00 );
+- const __m128i m1 = LOADU( block + 16 );
+- const __m128i m2 = LOADU( block + 32 );
+- const __m128i m3 = LOADU( block + 48 );
+- const __m128i m4 = LOADU( block + 64 );
+- const __m128i m5 = LOADU( block + 80 );
+- const __m128i m6 = LOADU( block + 96 );
+- const __m128i m7 = LOADU( block + 112 );
+-#else
+- const uint64_t m0 = load64(block + 0 * sizeof(uint64_t));
+- const uint64_t m1 = load64(block + 1 * sizeof(uint64_t));
+- const uint64_t m2 = load64(block + 2 * sizeof(uint64_t));
+- const uint64_t m3 = load64(block + 3 * sizeof(uint64_t));
+- const uint64_t m4 = load64(block + 4 * sizeof(uint64_t));
+- const uint64_t m5 = load64(block + 5 * sizeof(uint64_t));
+- const uint64_t m6 = load64(block + 6 * sizeof(uint64_t));
+- const uint64_t m7 = load64(block + 7 * sizeof(uint64_t));
+- const uint64_t m8 = load64(block + 8 * sizeof(uint64_t));
+- const uint64_t m9 = load64(block + 9 * sizeof(uint64_t));
+- const uint64_t m10 = load64(block + 10 * sizeof(uint64_t));
+- const uint64_t m11 = load64(block + 11 * sizeof(uint64_t));
+- const uint64_t m12 = load64(block + 12 * sizeof(uint64_t));
+- const uint64_t m13 = load64(block + 13 * sizeof(uint64_t));
+- const uint64_t m14 = load64(block + 14 * sizeof(uint64_t));
+- const uint64_t m15 = load64(block + 15 * sizeof(uint64_t));
+-#endif
+- row1l = LOADU( &S->h[0] );
+- row1h = LOADU( &S->h[2] );
+- row2l = LOADU( &S->h[4] );
+- row2h = LOADU( &S->h[6] );
+- row3l = LOADU( &blake2b_IV[0] );
+- row3h = LOADU( &blake2b_IV[2] );
+- row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) );
+- row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) );
+- ROUND( 0 );
+- ROUND( 1 );
+- ROUND( 2 );
+- ROUND( 3 );
+- ROUND( 4 );
+- ROUND( 5 );
+- ROUND( 6 );
+- ROUND( 7 );
+- ROUND( 8 );
+- ROUND( 9 );
+- ROUND( 10 );
+- ROUND( 11 );
+- row1l = _mm_xor_si128( row3l, row1l );
+- row1h = _mm_xor_si128( row3h, row1h );
+- STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) );
+- STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) );
+- row2l = _mm_xor_si128( row4l, row2l );
+- row2h = _mm_xor_si128( row4h, row2h );
+- STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) );
+- STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) );
+-}
+-
+-
+-int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
+-{
+- const unsigned char * in = (const unsigned char *)pin;
+- if( inlen > 0 )
+- {
+- size_t left = S->buflen;
+- size_t fill = BLAKE2B_BLOCKBYTES - left;
+- if( inlen > fill )
+- {
+- S->buflen = 0;
+- memcpy( S->buf + left, in, fill ); /* Fill buffer */
+- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
+- blake2b_compress( S, S->buf ); /* Compress */
+- in += fill; inlen -= fill;
+- while(inlen > BLAKE2B_BLOCKBYTES) {
+- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
+- blake2b_compress( S, in );
+- in += BLAKE2B_BLOCKBYTES;
+- inlen -= BLAKE2B_BLOCKBYTES;
+- }
+- }
+- memcpy( S->buf + S->buflen, in, inlen );
+- S->buflen += inlen;
+- }
+- return 0;
+-}
+-
+-
+-int blake2b_final( blake2b_state *S, void *out, size_t outlen )
+-{
+- if( out == NULL || outlen < S->outlen )
+- return -1;
+-
+- if( blake2b_is_lastblock( S ) )
+- return -1;
+-
+- blake2b_increment_counter( S, S->buflen );
+- blake2b_set_lastblock( S );
+- memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
+- blake2b_compress( S, S->buf );
+-
+- memcpy( out, &S->h[0], S->outlen );
+- return 0;
+-}
+-
+-
+-int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
+-{
+- blake2b_state S[1];
+-
+- /* Verify parameters */
+- if ( NULL == in && inlen > 0 ) return -1;
+-
+- if ( NULL == out ) return -1;
+-
+- if( NULL == key && keylen > 0 ) return -1;
+-
+- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+-
+- if( keylen > BLAKE2B_KEYBYTES ) return -1;
+-
+- if( keylen )
+- {
+- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
+- }
+- else
+- {
+- if( blake2b_init( S, outlen ) < 0 ) return -1;
+- }
+-
+- blake2b_update( S, ( const uint8_t * )in, inlen );
+- blake2b_final( S, out, outlen );
+- return 0;
+-}
+-
+-int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
+- return blake2b(out, outlen, in, inlen, key, keylen);
+-}
+-
+-#if defined(SUPERCOP)
+-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
+-{
+- return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
+-}
+-#endif
+-
+-#if defined(BLAKE2B_SELFTEST)
+-#include <string.h>
+-#include "blake2-kat.h"
+-int main( void )
+-{
+- uint8_t key[BLAKE2B_KEYBYTES];
+- uint8_t buf[BLAKE2_KAT_LENGTH];
+- size_t i, step;
+-
+- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
+- key[i] = ( uint8_t )i;
+-
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- buf[i] = ( uint8_t )i;
+-
+- /* Test simple API */
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- {
+- uint8_t hash[BLAKE2B_OUTBYTES];
+- blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
+-
+- if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
+- {
+- goto fail;
+- }
+- }
+-
+- /* Test streaming API */
+- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
+- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
+- uint8_t hash[BLAKE2B_OUTBYTES];
+- blake2b_state S;
+- uint8_t * p = buf;
+- size_t mlen = i;
+- int err = 0;
+-
+- if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
+- goto fail;
+- }
+-
+- while (mlen >= step) {
+- if ( (err = blake2b_update(&S, p, step)) < 0 ) {
+- goto fail;
+- }
+- mlen -= step;
+- p += step;
+- }
+- if ( (err = blake2b_update(&S, p, mlen)) < 0) {
+- goto fail;
+- }
+- if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
+- goto fail;
+- }
+-
+- if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
+- goto fail;
+- }
+- }
+- }
+-
+- puts( "ok" );
+- return 0;
+-fail:
+- puts("error");
+- return -1;
+-}
+-#endif
+--- thirdparty/blake2/blake2bp.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2bp.c
+@@ -1,361 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <stdint.h>
+-
+-#if defined(_OPENMP)
+-#include <omp.h>
+-#endif
+-
+-#include "blake2.h"
+-#include "blake2-impl.h"
+-
+-#define PARALLELISM_DEGREE 4
+-
+-/*
+- blake2b_init_param defaults to setting the expecting output length
+- from the digest_length parameter block field.
+-
+- In some cases, however, we do not want this, as the output length
+- of these instances is given by inner_length instead.
+-*/
+-static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P )
+-{
+- int err = blake2b_init_param(S, P);
+- S->outlen = P->inner_length;
+- return err;
+-}
+-
+-static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset )
+-{
+- blake2b_param P[1];
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = (uint8_t)keylen;
+- P->fanout = PARALLELISM_DEGREE;
+- P->depth = 2;
+- P->leaf_length = 0;
+- P->node_offset = offset;
+- P->xof_length = 0;
+- P->node_depth = 0;
+- P->inner_length = BLAKE2B_OUTBYTES;
+- memset( P->reserved, 0, sizeof( P->reserved ) );
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+- return blake2bp_init_leaf_param( S, P );
+-}
+-
+-static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
+-{
+- blake2b_param P[1];
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = (uint8_t)keylen;
+- P->fanout = PARALLELISM_DEGREE;
+- P->depth = 2;
+- P->leaf_length = 0;
+- P->node_offset = 0;
+- P->xof_length = 0;
+- P->node_depth = 1;
+- P->inner_length = BLAKE2B_OUTBYTES;
+- memset( P->reserved, 0, sizeof( P->reserved ) );
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+- return blake2b_init_param( S, P );
+-}
+-
+-
+-int blake2bp_init( blake2bp_state *S, size_t outlen )
+-{
+- size_t i;
+- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+-
+- memset( S->buf, 0, sizeof( S->buf ) );
+- S->buflen = 0;
+- S->outlen = outlen;
+-
+- if( blake2bp_init_root( S->R, outlen, 0 ) < 0 )
+- return -1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
+-
+- S->R->last_node = 1;
+- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+- return 0;
+-}
+-
+-int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
+-{
+- size_t i;
+-
+- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+-
+- if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
+-
+- memset( S->buf, 0, sizeof( S->buf ) );
+- S->buflen = 0;
+- S->outlen = outlen;
+-
+- if( blake2bp_init_root( S->R, outlen, keylen ) < 0 )
+- return -1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
+-
+- S->R->last_node = 1;
+- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+- {
+- uint8_t block[BLAKE2B_BLOCKBYTES];
+- memset( block, 0, BLAKE2B_BLOCKBYTES );
+- memcpy( block, key, keylen );
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
+-
+- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
+- }
+- return 0;
+-}
+-
+-
+-int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen )
+-{
+- const unsigned char * in = (const unsigned char *)pin;
+- size_t left = S->buflen;
+- size_t fill = sizeof( S->buf ) - left;
+- size_t i;
+-
+- if( left && inlen >= fill )
+- {
+- memcpy( S->buf + left, in, fill );
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
+-
+- in += fill;
+- inlen -= fill;
+- left = 0;
+- }
+-
+-#if defined(_OPENMP)
+- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
+-#else
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+-#endif
+- {
+-#if defined(_OPENMP)
+- size_t i = omp_get_thread_num();
+-#endif
+- size_t inlen__ = inlen;
+- const unsigned char *in__ = ( const unsigned char * )in;
+- in__ += i * BLAKE2B_BLOCKBYTES;
+-
+- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
+- {
+- blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES );
+- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+- }
+- }
+-
+- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
+- inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+-
+- if( inlen > 0 )
+- memcpy( S->buf + left, in, inlen );
+-
+- S->buflen = left + inlen;
+- return 0;
+-}
+-
+-
+-
+-int blake2bp_final( blake2bp_state *S, void *out, size_t outlen )
+-{
+- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
+- size_t i;
+-
+- if(out == NULL || outlen < S->outlen) {
+- return -1;
+- }
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- {
+- if( S->buflen > i * BLAKE2B_BLOCKBYTES )
+- {
+- size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
+-
+- if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
+-
+- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
+- }
+-
+- blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
+- }
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
+-
+- return blake2b_final( S->R, out, S->outlen );
+-}
+-
+-int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
+-{
+- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
+- blake2b_state S[PARALLELISM_DEGREE][1];
+- blake2b_state FS[1];
+- size_t i;
+-
+- /* Verify parameters */
+- if ( NULL == in && inlen > 0 ) return -1;
+-
+- if ( NULL == out ) return -1;
+-
+- if( NULL == key && keylen > 0 ) return -1;
+-
+- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+-
+- if( keylen > BLAKE2B_KEYBYTES ) return -1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
+-
+- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
+-
+- if( keylen > 0 )
+- {
+- uint8_t block[BLAKE2B_BLOCKBYTES];
+- memset( block, 0, BLAKE2B_BLOCKBYTES );
+- memcpy( block, key, keylen );
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
+-
+- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
+- }
+-
+-#if defined(_OPENMP)
+- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
+-#else
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+-#endif
+- {
+-#if defined(_OPENMP)
+- size_t i = omp_get_thread_num();
+-#endif
+- size_t inlen__ = inlen;
+- const unsigned char *in__ = ( const unsigned char * )in;
+- in__ += i * BLAKE2B_BLOCKBYTES;
+-
+- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
+- {
+- blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES );
+- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+- }
+-
+- if( inlen__ > i * BLAKE2B_BLOCKBYTES )
+- {
+- const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES;
+- const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
+- blake2b_update( S[i], in__, len );
+- }
+-
+- blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES );
+- }
+-
+- if( blake2bp_init_root( FS, outlen, keylen ) < 0 )
+- return -1;
+-
+- FS->last_node = 1; /* Mark as last node */
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
+-
+- return blake2b_final( FS, out, outlen );
+-}
+-
+-
+-#if defined(BLAKE2BP_SELFTEST)
+-#include <string.h>
+-#include "blake2-kat.h"
+-int main( void )
+-{
+- uint8_t key[BLAKE2B_KEYBYTES];
+- uint8_t buf[BLAKE2_KAT_LENGTH];
+- size_t i, step;
+-
+- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
+- key[i] = ( uint8_t )i;
+-
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- buf[i] = ( uint8_t )i;
+-
+- /* Test simple API */
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- {
+- uint8_t hash[BLAKE2B_OUTBYTES];
+- blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
+-
+- if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
+- {
+- goto fail;
+- }
+- }
+-
+- /* Test streaming API */
+- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
+- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
+- uint8_t hash[BLAKE2B_OUTBYTES];
+- blake2bp_state S;
+- uint8_t * p = buf;
+- size_t mlen = i;
+- int err = 0;
+-
+- if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
+- goto fail;
+- }
+-
+- while (mlen >= step) {
+- if ( (err = blake2bp_update(&S, p, step)) < 0 ) {
+- goto fail;
+- }
+- mlen -= step;
+- p += step;
+- }
+- if ( (err = blake2bp_update(&S, p, mlen)) < 0) {
+- goto fail;
+- }
+- if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
+- goto fail;
+- }
+-
+- if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) {
+- goto fail;
+- }
+- }
+- }
+-
+- puts( "ok" );
+- return 0;
+-fail:
+- puts("error");
+- return -1;
+-}
+-#endif
+--- thirdparty/blake2/blake2s-load-sse2.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2s-load-sse2.h
+@@ -1,60 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2S_LOAD_SSE2_H
+-#define BLAKE2S_LOAD_SSE2_H
+-
+-#define LOAD_MSG_0_1(buf) buf = _mm_set_epi32(m6,m4,m2,m0)
+-#define LOAD_MSG_0_2(buf) buf = _mm_set_epi32(m7,m5,m3,m1)
+-#define LOAD_MSG_0_3(buf) buf = _mm_set_epi32(m14,m12,m10,m8)
+-#define LOAD_MSG_0_4(buf) buf = _mm_set_epi32(m15,m13,m11,m9)
+-#define LOAD_MSG_1_1(buf) buf = _mm_set_epi32(m13,m9,m4,m14)
+-#define LOAD_MSG_1_2(buf) buf = _mm_set_epi32(m6,m15,m8,m10)
+-#define LOAD_MSG_1_3(buf) buf = _mm_set_epi32(m5,m11,m0,m1)
+-#define LOAD_MSG_1_4(buf) buf = _mm_set_epi32(m3,m7,m2,m12)
+-#define LOAD_MSG_2_1(buf) buf = _mm_set_epi32(m15,m5,m12,m11)
+-#define LOAD_MSG_2_2(buf) buf = _mm_set_epi32(m13,m2,m0,m8)
+-#define LOAD_MSG_2_3(buf) buf = _mm_set_epi32(m9,m7,m3,m10)
+-#define LOAD_MSG_2_4(buf) buf = _mm_set_epi32(m4,m1,m6,m14)
+-#define LOAD_MSG_3_1(buf) buf = _mm_set_epi32(m11,m13,m3,m7)
+-#define LOAD_MSG_3_2(buf) buf = _mm_set_epi32(m14,m12,m1,m9)
+-#define LOAD_MSG_3_3(buf) buf = _mm_set_epi32(m15,m4,m5,m2)
+-#define LOAD_MSG_3_4(buf) buf = _mm_set_epi32(m8,m0,m10,m6)
+-#define LOAD_MSG_4_1(buf) buf = _mm_set_epi32(m10,m2,m5,m9)
+-#define LOAD_MSG_4_2(buf) buf = _mm_set_epi32(m15,m4,m7,m0)
+-#define LOAD_MSG_4_3(buf) buf = _mm_set_epi32(m3,m6,m11,m14)
+-#define LOAD_MSG_4_4(buf) buf = _mm_set_epi32(m13,m8,m12,m1)
+-#define LOAD_MSG_5_1(buf) buf = _mm_set_epi32(m8,m0,m6,m2)
+-#define LOAD_MSG_5_2(buf) buf = _mm_set_epi32(m3,m11,m10,m12)
+-#define LOAD_MSG_5_3(buf) buf = _mm_set_epi32(m1,m15,m7,m4)
+-#define LOAD_MSG_5_4(buf) buf = _mm_set_epi32(m9,m14,m5,m13)
+-#define LOAD_MSG_6_1(buf) buf = _mm_set_epi32(m4,m14,m1,m12)
+-#define LOAD_MSG_6_2(buf) buf = _mm_set_epi32(m10,m13,m15,m5)
+-#define LOAD_MSG_6_3(buf) buf = _mm_set_epi32(m8,m9,m6,m0)
+-#define LOAD_MSG_6_4(buf) buf = _mm_set_epi32(m11,m2,m3,m7)
+-#define LOAD_MSG_7_1(buf) buf = _mm_set_epi32(m3,m12,m7,m13)
+-#define LOAD_MSG_7_2(buf) buf = _mm_set_epi32(m9,m1,m14,m11)
+-#define LOAD_MSG_7_3(buf) buf = _mm_set_epi32(m2,m8,m15,m5)
+-#define LOAD_MSG_7_4(buf) buf = _mm_set_epi32(m10,m6,m4,m0)
+-#define LOAD_MSG_8_1(buf) buf = _mm_set_epi32(m0,m11,m14,m6)
+-#define LOAD_MSG_8_2(buf) buf = _mm_set_epi32(m8,m3,m9,m15)
+-#define LOAD_MSG_8_3(buf) buf = _mm_set_epi32(m10,m1,m13,m12)
+-#define LOAD_MSG_8_4(buf) buf = _mm_set_epi32(m5,m4,m7,m2)
+-#define LOAD_MSG_9_1(buf) buf = _mm_set_epi32(m1,m7,m8,m10)
+-#define LOAD_MSG_9_2(buf) buf = _mm_set_epi32(m5,m6,m4,m2)
+-#define LOAD_MSG_9_3(buf) buf = _mm_set_epi32(m13,m3,m9,m15)
+-#define LOAD_MSG_9_4(buf) buf = _mm_set_epi32(m0,m12,m14,m11)
+-
+-
+-#endif
+--- thirdparty/blake2/blake2s-load-sse41.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2s-load-sse41.h
+@@ -1,229 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2S_LOAD_SSE41_H
+-#define BLAKE2S_LOAD_SSE41_H
+-
+-#define LOAD_MSG_0_1(buf) \
+-buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(2,0,2,0)));
+-
+-#define LOAD_MSG_0_2(buf) \
+-buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(3,1,3,1)));
+-
+-#define LOAD_MSG_0_3(buf) \
+-buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(2,0,2,0)));
+-
+-#define LOAD_MSG_0_4(buf) \
+-buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(3,1,3,1)));
+-
+-#define LOAD_MSG_1_1(buf) \
+-t0 = _mm_blend_epi16(m1, m2, 0x0C); \
+-t1 = _mm_slli_si128(m3, 4); \
+-t2 = _mm_blend_epi16(t0, t1, 0xF0); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,0,3));
+-
+-#define LOAD_MSG_1_2(buf) \
+-t0 = _mm_shuffle_epi32(m2,_MM_SHUFFLE(0,0,2,0)); \
+-t1 = _mm_blend_epi16(m1,m3,0xC0); \
+-t2 = _mm_blend_epi16(t0, t1, 0xF0); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
+-
+-#define LOAD_MSG_1_3(buf) \
+-t0 = _mm_slli_si128(m1, 4); \
+-t1 = _mm_blend_epi16(m2, t0, 0x30); \
+-t2 = _mm_blend_epi16(m0, t1, 0xF0); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
+-
+-#define LOAD_MSG_1_4(buf) \
+-t0 = _mm_unpackhi_epi32(m0,m1); \
+-t1 = _mm_slli_si128(m3, 4); \
+-t2 = _mm_blend_epi16(t0, t1, 0x0C); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
+-
+-#define LOAD_MSG_2_1(buf) \
+-t0 = _mm_unpackhi_epi32(m2,m3); \
+-t1 = _mm_blend_epi16(m3,m1,0x0C); \
+-t2 = _mm_blend_epi16(t0, t1, 0x0F); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2));
+-
+-#define LOAD_MSG_2_2(buf) \
+-t0 = _mm_unpacklo_epi32(m2,m0); \
+-t1 = _mm_blend_epi16(t0, m0, 0xF0); \
+-t2 = _mm_slli_si128(m3, 8); \
+-buf = _mm_blend_epi16(t1, t2, 0xC0);
+-
+-#define LOAD_MSG_2_3(buf) \
+-t0 = _mm_blend_epi16(m0, m2, 0x3C); \
+-t1 = _mm_srli_si128(m1, 12); \
+-t2 = _mm_blend_epi16(t0,t1,0x03); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,3,2));
+-
+-#define LOAD_MSG_2_4(buf) \
+-t0 = _mm_slli_si128(m3, 4); \
+-t1 = _mm_blend_epi16(m0, m1, 0x33); \
+-t2 = _mm_blend_epi16(t1, t0, 0xC0); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(0,1,2,3));
+-
+-#define LOAD_MSG_3_1(buf) \
+-t0 = _mm_unpackhi_epi32(m0,m1); \
+-t1 = _mm_unpackhi_epi32(t0, m2); \
+-t2 = _mm_blend_epi16(t1, m3, 0x0C); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2));
+-
+-#define LOAD_MSG_3_2(buf) \
+-t0 = _mm_slli_si128(m2, 8); \
+-t1 = _mm_blend_epi16(m3,m0,0x0C); \
+-t2 = _mm_blend_epi16(t1, t0, 0xC0); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3));
+-
+-#define LOAD_MSG_3_3(buf) \
+-t0 = _mm_blend_epi16(m0,m1,0x0F); \
+-t1 = _mm_blend_epi16(t0, m3, 0xC0); \
+-buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2));
+-
+-#define LOAD_MSG_3_4(buf) \
+-t0 = _mm_unpacklo_epi32(m0,m2); \
+-t1 = _mm_unpackhi_epi32(m1,m2); \
+-buf = _mm_unpacklo_epi64(t1,t0);
+-
+-#define LOAD_MSG_4_1(buf) \
+-t0 = _mm_unpacklo_epi64(m1,m2); \
+-t1 = _mm_unpackhi_epi64(m0,m2); \
+-t2 = _mm_blend_epi16(t0,t1,0x33); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3));
+-
+-#define LOAD_MSG_4_2(buf) \
+-t0 = _mm_unpackhi_epi64(m1,m3); \
+-t1 = _mm_unpacklo_epi64(m0,m1); \
+-buf = _mm_blend_epi16(t0,t1,0x33);
+-
+-#define LOAD_MSG_4_3(buf) \
+-t0 = _mm_unpackhi_epi64(m3,m1); \
+-t1 = _mm_unpackhi_epi64(m2,m0); \
+-buf = _mm_blend_epi16(t1,t0,0x33);
+-
+-#define LOAD_MSG_4_4(buf) \
+-t0 = _mm_blend_epi16(m0,m2,0x03); \
+-t1 = _mm_slli_si128(t0, 8); \
+-t2 = _mm_blend_epi16(t1,m3,0x0F); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,0,3));
+-
+-#define LOAD_MSG_5_1(buf) \
+-t0 = _mm_unpackhi_epi32(m0,m1); \
+-t1 = _mm_unpacklo_epi32(m0,m2); \
+-buf = _mm_unpacklo_epi64(t0,t1);
+-
+-#define LOAD_MSG_5_2(buf) \
+-t0 = _mm_srli_si128(m2, 4); \
+-t1 = _mm_blend_epi16(m0,m3,0x03); \
+-buf = _mm_blend_epi16(t1,t0,0x3C);
+-
+-#define LOAD_MSG_5_3(buf) \
+-t0 = _mm_blend_epi16(m1,m0,0x0C); \
+-t1 = _mm_srli_si128(m3, 4); \
+-t2 = _mm_blend_epi16(t0,t1,0x30); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,3,0));
+-
+-#define LOAD_MSG_5_4(buf) \
+-t0 = _mm_unpacklo_epi64(m1,m2); \
+-t1= _mm_shuffle_epi32(m3, _MM_SHUFFLE(0,2,0,1)); \
+-buf = _mm_blend_epi16(t0,t1,0x33);
+-
+-#define LOAD_MSG_6_1(buf) \
+-t0 = _mm_slli_si128(m1, 12); \
+-t1 = _mm_blend_epi16(m0,m3,0x33); \
+-buf = _mm_blend_epi16(t1,t0,0xC0);
+-
+-#define LOAD_MSG_6_2(buf) \
+-t0 = _mm_blend_epi16(m3,m2,0x30); \
+-t1 = _mm_srli_si128(m1, 4); \
+-t2 = _mm_blend_epi16(t0,t1,0x03); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,3,0));
+-
+-#define LOAD_MSG_6_3(buf) \
+-t0 = _mm_unpacklo_epi64(m0,m2); \
+-t1 = _mm_srli_si128(m1, 4); \
+-buf = _mm_shuffle_epi32(_mm_blend_epi16(t0,t1,0x0C), _MM_SHUFFLE(2,3,1,0));
+-
+-#define LOAD_MSG_6_4(buf) \
+-t0 = _mm_unpackhi_epi32(m1,m2); \
+-t1 = _mm_unpackhi_epi64(m0,t0); \
+-buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2));
+-
+-#define LOAD_MSG_7_1(buf) \
+-t0 = _mm_unpackhi_epi32(m0,m1); \
+-t1 = _mm_blend_epi16(t0,m3,0x0F); \
+-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(2,0,3,1));
+-
+-#define LOAD_MSG_7_2(buf) \
+-t0 = _mm_blend_epi16(m2,m3,0x30); \
+-t1 = _mm_srli_si128(m0,4); \
+-t2 = _mm_blend_epi16(t0,t1,0x03); \
+-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,2,3));
+-
+-#define LOAD_MSG_7_3(buf) \
+-t0 = _mm_unpackhi_epi64(m0,m3); \
+-t1 = _mm_unpacklo_epi64(m1,m2); \
+-t2 = _mm_blend_epi16(t0,t1,0x3C); \
+-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,2,3,1));
+-
+-#define LOAD_MSG_7_4(buf) \
+-t0 = _mm_unpacklo_epi32(m0,m1); \
+-t1 = _mm_unpackhi_epi32(m1,m2); \
+-buf = _mm_unpacklo_epi64(t0,t1);
+-
+-#define LOAD_MSG_8_1(buf) \
+-t0 = _mm_unpackhi_epi32(m1,m3); \
+-t1 = _mm_unpacklo_epi64(t0,m0); \
+-t2 = _mm_blend_epi16(t1,m2,0xC0); \
+-buf = _mm_shufflehi_epi16(t2,_MM_SHUFFLE(1,0,3,2));
+-
+-#define LOAD_MSG_8_2(buf) \
+-t0 = _mm_unpackhi_epi32(m0,m3); \
+-t1 = _mm_blend_epi16(m2,t0,0xF0); \
+-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(0,2,1,3));
+-
+-#define LOAD_MSG_8_3(buf) \
+-t0 = _mm_blend_epi16(m2,m0,0x0C); \
+-t1 = _mm_slli_si128(t0,4); \
+-buf = _mm_blend_epi16(t1,m3,0x0F);
+-
+-#define LOAD_MSG_8_4(buf) \
+-t0 = _mm_blend_epi16(m1,m0,0x30); \
+-buf = _mm_shuffle_epi32(t0,_MM_SHUFFLE(1,0,3,2));
+-
+-#define LOAD_MSG_9_1(buf) \
+-t0 = _mm_blend_epi16(m0,m2,0x03); \
+-t1 = _mm_blend_epi16(m1,m2,0x30); \
+-t2 = _mm_blend_epi16(t1,t0,0x0F); \
+-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(1,3,0,2));
+-
+-#define LOAD_MSG_9_2(buf) \
+-t0 = _mm_slli_si128(m0,4); \
+-t1 = _mm_blend_epi16(m1,t0,0xC0); \
+-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(1,2,0,3));
+-
+-#define LOAD_MSG_9_3(buf) \
+-t0 = _mm_unpackhi_epi32(m0,m3); \
+-t1 = _mm_unpacklo_epi32(m2,m3); \
+-t2 = _mm_unpackhi_epi64(t0,t1); \
+-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(3,0,2,1));
+-
+-#define LOAD_MSG_9_4(buf) \
+-t0 = _mm_blend_epi16(m3,m2,0xC0); \
+-t1 = _mm_unpacklo_epi32(m0,m3); \
+-t2 = _mm_blend_epi16(t0,t1,0x0F); \
+-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,1,2,3));
+-
+-#endif
+--- thirdparty/blake2/blake2s-load-xop.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2s-load-xop.h
+@@ -1,191 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2S_LOAD_XOP_H
+-#define BLAKE2S_LOAD_XOP_H
+-
+-#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */
+-
+-#if 0
+-/* Basic VPPERM emulation, for testing purposes */
+-static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel)
+-{
+- const __m128i sixteen = _mm_set1_epi8(16);
+- const __m128i t0 = _mm_shuffle_epi8(src1, sel);
+- const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen));
+- const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen),
+- _mm_cmpgt_epi8(sel, sixteen)); /* (>=16) = 0xff : 00 */
+- return _mm_blendv_epi8(t0, s1, mask);
+-}
+-#endif
+-
+-#define LOAD_MSG_0_1(buf) \
+-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
+-
+-#define LOAD_MSG_0_2(buf) \
+-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) );
+-
+-#define LOAD_MSG_0_3(buf) \
+-buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
+-
+-#define LOAD_MSG_0_4(buf) \
+-buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) );
+-
+-#define LOAD_MSG_1_1(buf) \
+-t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(5),TOB(0),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) );
+-
+-#define LOAD_MSG_1_2(buf) \
+-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(2),TOB(0),TOB(4),TOB(6)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_1_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(0),TOB(0),TOB(1)) ); \
+-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_1_4(buf) \
+-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(7),TOB(2),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) );
+-
+-#define LOAD_MSG_2_1(buf) \
+-t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(1),TOB(0),TOB(7)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(4),TOB(0)) );
+-
+-#define LOAD_MSG_2_2(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(2),TOB(0),TOB(4)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_2_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(7),TOB(3),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) );
+-
+-#define LOAD_MSG_2_4(buf) \
+-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(1),TOB(6),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) );
+-
+-#define LOAD_MSG_3_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(3),TOB(7)) ); \
+-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_3_2(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(1),TOB(5)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_3_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(5),TOB(2)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_3_4(buf) \
+-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \
+-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(6),TOB(0)) );
+-
+-#define LOAD_MSG_4_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(5),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(5)) );
+-
+-#define LOAD_MSG_4_2(buf) \
+-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(7),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_4_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(6),TOB(0),TOB(0)) ); \
+-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) );
+-
+-#define LOAD_MSG_4_4(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(4),TOB(0),TOB(1)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(4),TOB(0)) );
+-
+-#define LOAD_MSG_5_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(2)) ); \
+-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_5_2(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(6),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) );
+-
+-#define LOAD_MSG_5_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(0),TOB(7),TOB(4)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_5_4(buf) \
+-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(5),TOB(0),TOB(1),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(5)) );
+-
+-#define LOAD_MSG_6_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(0),TOB(1),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(4)) );
+-
+-#define LOAD_MSG_6_2(buf) \
+-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(6),TOB(0),TOB(0),TOB(1)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(7),TOB(0)) );
+-
+-#define LOAD_MSG_6_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(5),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_6_4(buf) \
+-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(3),TOB(7)) ); \
+-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_7_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(0),TOB(7),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(5)) );
+-
+-#define LOAD_MSG_7_2(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(5),TOB(1),TOB(0),TOB(7)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) );
+-
+-#define LOAD_MSG_7_3(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(2),TOB(0),TOB(0),TOB(5)) ); \
+-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) );
+-
+-#define LOAD_MSG_7_4(buf) \
+-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(6),TOB(4),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(0)) );
+-
+-#define LOAD_MSG_8_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \
+-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) );
+-
+-#define LOAD_MSG_8_2(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(4),TOB(3),TOB(5),TOB(0)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(7)) );
+-
+-#define LOAD_MSG_8_3(buf) \
+-t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(6),TOB(1),TOB(0),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(5),TOB(4)) ); \
+-
+-#define LOAD_MSG_8_4(buf) \
+-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(4),TOB(7),TOB(2)) );
+-
+-#define LOAD_MSG_9_1(buf) \
+-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(7),TOB(0),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(4),TOB(6)) );
+-
+-#define LOAD_MSG_9_2(buf) \
+-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(6),TOB(4),TOB(2)) );
+-
+-#define LOAD_MSG_9_3(buf) \
+-t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(3),TOB(5),TOB(0)) ); \
+-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(7)) );
+-
+-#define LOAD_MSG_9_4(buf) \
+-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(7)) ); \
+-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(6),TOB(0)) );
+-
+-#endif
+--- thirdparty/blake2/blake2s-round.h.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2s-round.h
+@@ -1,88 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-#ifndef BLAKE2S_ROUND_H
+-#define BLAKE2S_ROUND_H
+-
+-#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) )
+-#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
+-
+-#define TOF(reg) _mm_castsi128_ps((reg))
+-#define TOI(reg) _mm_castps_si128((reg))
+-
+-#define LIKELY(x) __builtin_expect((x),1)
+-
+-
+-/* Microarchitecture-specific macros */
+-#ifndef HAVE_XOP
+-#ifdef HAVE_SSSE3
+-#define _mm_roti_epi32(r, c) ( \
+- (8==-(c)) ? _mm_shuffle_epi8(r,r8) \
+- : (16==-(c)) ? _mm_shuffle_epi8(r,r16) \
+- : _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) )
+-#else
+-#define _mm_roti_epi32(r, c) _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) ))
+-#endif
+-#else
+-/* ... */
+-#endif
+-
+-
+-#define G1(row1,row2,row3,row4,buf) \
+- row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \
+- row4 = _mm_xor_si128( row4, row1 ); \
+- row4 = _mm_roti_epi32(row4, -16); \
+- row3 = _mm_add_epi32( row3, row4 ); \
+- row2 = _mm_xor_si128( row2, row3 ); \
+- row2 = _mm_roti_epi32(row2, -12);
+-
+-#define G2(row1,row2,row3,row4,buf) \
+- row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \
+- row4 = _mm_xor_si128( row4, row1 ); \
+- row4 = _mm_roti_epi32(row4, -8); \
+- row3 = _mm_add_epi32( row3, row4 ); \
+- row2 = _mm_xor_si128( row2, row3 ); \
+- row2 = _mm_roti_epi32(row2, -7);
+-
+-#define DIAGONALIZE(row1,row2,row3,row4) \
+- row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(2,1,0,3) ); \
+- row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \
+- row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(0,3,2,1) );
+-
+-#define UNDIAGONALIZE(row1,row2,row3,row4) \
+- row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(0,3,2,1) ); \
+- row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \
+- row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(2,1,0,3) );
+-
+-#if defined(HAVE_XOP)
+-#include "blake2s-load-xop.h"
+-#elif defined(HAVE_SSE41)
+-#include "blake2s-load-sse41.h"
+-#else
+-#include "blake2s-load-sse2.h"
+-#endif
+-
+-#define ROUND(r) \
+- LOAD_MSG_ ##r ##_1(buf1); \
+- G1(row1,row2,row3,row4,buf1); \
+- LOAD_MSG_ ##r ##_2(buf2); \
+- G2(row1,row2,row3,row4,buf2); \
+- DIAGONALIZE(row1,row2,row3,row4); \
+- LOAD_MSG_ ##r ##_3(buf3); \
+- G1(row1,row2,row3,row4,buf3); \
+- LOAD_MSG_ ##r ##_4(buf4); \
+- G2(row1,row2,row3,row4,buf4); \
+- UNDIAGONALIZE(row1,row2,row3,row4); \
+-
+-#endif
+--- thirdparty/blake2/blake2s.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2s.c
+@@ -1,363 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdint.h>
+-#include <string.h>
+-#include <stdio.h>
+-
+-#include "blake2.h"
+-#include "blake2-impl.h"
+-
+-#include "blake2-config.h"
+-
+-
+-#include <emmintrin.h>
+-#if defined(HAVE_SSSE3)
+-#include <tmmintrin.h>
+-#endif
+-#if defined(HAVE_SSE41)
+-#include <smmintrin.h>
+-#endif
+-#if defined(HAVE_AVX)
+-#include <immintrin.h>
+-#endif
+-#if defined(HAVE_XOP)
+-#include <x86intrin.h>
+-#endif
+-
+-#include "blake2s-round.h"
+-
+-static const uint32_t blake2s_IV[8] =
+-{
+- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
+- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
+-};
+-
+-/* Some helper functions */
+-static void blake2s_set_lastnode( blake2s_state *S )
+-{
+- S->f[1] = (uint32_t)-1;
+-}
+-
+-static int blake2s_is_lastblock( const blake2s_state *S )
+-{
+- return S->f[0] != 0;
+-}
+-
+-static void blake2s_set_lastblock( blake2s_state *S )
+-{
+- if( S->last_node ) blake2s_set_lastnode( S );
+-
+- S->f[0] = (uint32_t)-1;
+-}
+-
+-static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
+-{
+- uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0];
+- t += inc;
+- S->t[0] = ( uint32_t )( t >> 0 );
+- S->t[1] = ( uint32_t )( t >> 32 );
+-}
+-
+-/* init2 xors IV with input parameter block */
+-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
+-{
+- size_t i;
+- /*blake2s_init0( S ); */
+- const uint8_t * v = ( const uint8_t * )( blake2s_IV );
+- const uint8_t * p = ( const uint8_t * )( P );
+- uint8_t * h = ( uint8_t * )( S->h );
+- /* IV XOR ParamBlock */
+- memset( S, 0, sizeof( blake2s_state ) );
+-
+- for( i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
+-
+- S->outlen = P->digest_length;
+- return 0;
+-}
+-
+-
+-/* Some sort of default parameter block initialization, for sequential blake2s */
+-int blake2s_init( blake2s_state *S, size_t outlen )
+-{
+- blake2s_param P[1];
+-
+- /* Move interval verification here? */
+- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
+-
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = 0;
+- P->fanout = 1;
+- P->depth = 1;
+- store32( &P->leaf_length, 0 );
+- store32( &P->node_offset, 0 );
+- store16( &P->xof_length, 0 );
+- P->node_depth = 0;
+- P->inner_length = 0;
+- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+-
+- return blake2s_init_param( S, P );
+-}
+-
+-
+-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
+-{
+- blake2s_param P[1];
+-
+- /* Move interval verification here? */
+- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
+-
+- if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1;
+-
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = (uint8_t)keylen;
+- P->fanout = 1;
+- P->depth = 1;
+- store32( &P->leaf_length, 0 );
+- store32( &P->node_offset, 0 );
+- store16( &P->xof_length, 0 );
+- P->node_depth = 0;
+- P->inner_length = 0;
+- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+-
+- if( blake2s_init_param( S, P ) < 0 )
+- return -1;
+-
+- {
+- uint8_t block[BLAKE2S_BLOCKBYTES];
+- memset( block, 0, BLAKE2S_BLOCKBYTES );
+- memcpy( block, key, keylen );
+- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
+- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
+- }
+- return 0;
+-}
+-
+-
+-static void blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] )
+-{
+- __m128i row1, row2, row3, row4;
+- __m128i buf1, buf2, buf3, buf4;
+-#if defined(HAVE_SSE41)
+- __m128i t0, t1;
+-#if !defined(HAVE_XOP)
+- __m128i t2;
+-#endif
+-#endif
+- __m128i ff0, ff1;
+-#if defined(HAVE_SSSE3) && !defined(HAVE_XOP)
+- const __m128i r8 = _mm_set_epi8( 12, 15, 14, 13, 8, 11, 10, 9, 4, 7, 6, 5, 0, 3, 2, 1 );
+- const __m128i r16 = _mm_set_epi8( 13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2 );
+-#endif
+-#if defined(HAVE_SSE41)
+- const __m128i m0 = LOADU( block + 00 );
+- const __m128i m1 = LOADU( block + 16 );
+- const __m128i m2 = LOADU( block + 32 );
+- const __m128i m3 = LOADU( block + 48 );
+-#else
+- const uint32_t m0 = load32(block + 0 * sizeof(uint32_t));
+- const uint32_t m1 = load32(block + 1 * sizeof(uint32_t));
+- const uint32_t m2 = load32(block + 2 * sizeof(uint32_t));
+- const uint32_t m3 = load32(block + 3 * sizeof(uint32_t));
+- const uint32_t m4 = load32(block + 4 * sizeof(uint32_t));
+- const uint32_t m5 = load32(block + 5 * sizeof(uint32_t));
+- const uint32_t m6 = load32(block + 6 * sizeof(uint32_t));
+- const uint32_t m7 = load32(block + 7 * sizeof(uint32_t));
+- const uint32_t m8 = load32(block + 8 * sizeof(uint32_t));
+- const uint32_t m9 = load32(block + 9 * sizeof(uint32_t));
+- const uint32_t m10 = load32(block + 10 * sizeof(uint32_t));
+- const uint32_t m11 = load32(block + 11 * sizeof(uint32_t));
+- const uint32_t m12 = load32(block + 12 * sizeof(uint32_t));
+- const uint32_t m13 = load32(block + 13 * sizeof(uint32_t));
+- const uint32_t m14 = load32(block + 14 * sizeof(uint32_t));
+- const uint32_t m15 = load32(block + 15 * sizeof(uint32_t));
+-#endif
+- row1 = ff0 = LOADU( &S->h[0] );
+- row2 = ff1 = LOADU( &S->h[4] );
+- row3 = _mm_loadu_si128( (__m128i const *)&blake2s_IV[0] );
+- row4 = _mm_xor_si128( _mm_loadu_si128( (__m128i const *)&blake2s_IV[4] ), LOADU( &S->t[0] ) );
+- ROUND( 0 );
+- ROUND( 1 );
+- ROUND( 2 );
+- ROUND( 3 );
+- ROUND( 4 );
+- ROUND( 5 );
+- ROUND( 6 );
+- ROUND( 7 );
+- ROUND( 8 );
+- ROUND( 9 );
+- STOREU( &S->h[0], _mm_xor_si128( ff0, _mm_xor_si128( row1, row3 ) ) );
+- STOREU( &S->h[4], _mm_xor_si128( ff1, _mm_xor_si128( row2, row4 ) ) );
+-}
+-
+-int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
+-{
+- const unsigned char * in = (const unsigned char *)pin;
+- if( inlen > 0 )
+- {
+- size_t left = S->buflen;
+- size_t fill = BLAKE2S_BLOCKBYTES - left;
+- if( inlen > fill )
+- {
+- S->buflen = 0;
+- memcpy( S->buf + left, in, fill ); /* Fill buffer */
+- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
+- blake2s_compress( S, S->buf ); /* Compress */
+- in += fill; inlen -= fill;
+- while(inlen > BLAKE2S_BLOCKBYTES) {
+- blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
+- blake2s_compress( S, in );
+- in += BLAKE2S_BLOCKBYTES;
+- inlen -= BLAKE2S_BLOCKBYTES;
+- }
+- }
+- memcpy( S->buf + S->buflen, in, inlen );
+- S->buflen += inlen;
+- }
+- return 0;
+-}
+-
+-int blake2s_final( blake2s_state *S, void *out, size_t outlen )
+-{
+- uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
+- size_t i;
+-
+- if( out == NULL || outlen < S->outlen )
+- return -1;
+-
+- if( blake2s_is_lastblock( S ) )
+- return -1;
+-
+- blake2s_increment_counter( S, (uint32_t)S->buflen );
+- blake2s_set_lastblock( S );
+- memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
+- blake2s_compress( S, S->buf );
+-
+- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
+- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
+-
+- memcpy( out, buffer, S->outlen );
+- secure_zero_memory( buffer, sizeof(buffer) );
+- return 0;
+-}
+-
+-/* inlen, at least, should be uint64_t. Others can be size_t. */
+-int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
+-{
+- blake2s_state S[1];
+-
+- /* Verify parameters */
+- if ( NULL == in && inlen > 0 ) return -1;
+-
+- if ( NULL == out ) return -1;
+-
+- if ( NULL == key && keylen > 0) return -1;
+-
+- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+-
+- if( keylen > BLAKE2S_KEYBYTES ) return -1;
+-
+- if( keylen > 0 )
+- {
+- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
+- }
+- else
+- {
+- if( blake2s_init( S, outlen ) < 0 ) return -1;
+- }
+-
+- blake2s_update( S, ( const uint8_t * )in, inlen );
+- blake2s_final( S, out, outlen );
+- return 0;
+-}
+-
+-#if defined(SUPERCOP)
+-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
+-{
+- return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
+-}
+-#endif
+-
+-#if defined(BLAKE2S_SELFTEST)
+-#include <string.h>
+-#include "blake2-kat.h"
+-int main( void )
+-{
+- uint8_t key[BLAKE2S_KEYBYTES];
+- uint8_t buf[BLAKE2_KAT_LENGTH];
+- size_t i, step;
+-
+- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
+- key[i] = ( uint8_t )i;
+-
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- buf[i] = ( uint8_t )i;
+-
+- /* Test simple API */
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- {
+- uint8_t hash[BLAKE2S_OUTBYTES];
+- blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
+-
+- if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
+- {
+- goto fail;
+- }
+- }
+-
+- /* Test streaming API */
+- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
+- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
+- uint8_t hash[BLAKE2S_OUTBYTES];
+- blake2s_state S;
+- uint8_t * p = buf;
+- size_t mlen = i;
+- int err = 0;
+-
+- if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
+- goto fail;
+- }
+-
+- while (mlen >= step) {
+- if ( (err = blake2s_update(&S, p, step)) < 0 ) {
+- goto fail;
+- }
+- mlen -= step;
+- p += step;
+- }
+- if ( (err = blake2s_update(&S, p, mlen)) < 0) {
+- goto fail;
+- }
+- if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
+- goto fail;
+- }
+-
+- if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
+- goto fail;
+- }
+- }
+- }
+-
+- puts( "ok" );
+- return 0;
+-fail:
+- puts("error");
+- return -1;
+-}
+-#endif
+--- thirdparty/blake2/blake2sp.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2sp.c
+@@ -1,358 +0,0 @@
+-/*
+- BLAKE2 reference source code package - optimized C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdlib.h>
+-#include <string.h>
+-#include <stdio.h>
+-
+-#if defined(_OPENMP)
+-#include <omp.h>
+-#endif
+-
+-#include "blake2.h"
+-#include "blake2-impl.h"
+-
+-#define PARALLELISM_DEGREE 8
+-
+-/*
+- blake2sp_init_param defaults to setting the expecting output length
+- from the digest_length parameter block field.
+-
+- In some cases, however, we do not want this, as the output length
+- of these instances is given by inner_length instead.
+-*/
+-static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P )
+-{
+- int err = blake2s_init_param(S, P);
+- S->outlen = P->inner_length;
+- return err;
+-}
+-
+-static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset )
+-{
+- blake2s_param P[1];
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = (uint8_t)keylen;
+- P->fanout = PARALLELISM_DEGREE;
+- P->depth = 2;
+- P->leaf_length = 0;
+- P->node_offset = offset;
+- P->xof_length = 0;
+- P->node_depth = 0;
+- P->inner_length = BLAKE2S_OUTBYTES;
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+- return blake2sp_init_leaf_param( S, P );
+-}
+-
+-static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
+-{
+- blake2s_param P[1];
+- P->digest_length = (uint8_t)outlen;
+- P->key_length = (uint8_t)keylen;
+- P->fanout = PARALLELISM_DEGREE;
+- P->depth = 2;
+- P->leaf_length = 0;
+- P->node_offset = 0;
+- P->xof_length = 0;
+- P->node_depth = 1;
+- P->inner_length = BLAKE2S_OUTBYTES;
+- memset( P->salt, 0, sizeof( P->salt ) );
+- memset( P->personal, 0, sizeof( P->personal ) );
+- return blake2s_init_param( S, P );
+-}
+-
+-
+-int blake2sp_init( blake2sp_state *S, size_t outlen )
+-{
+- size_t i;
+-
+- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+-
+- memset( S->buf, 0, sizeof( S->buf ) );
+- S->buflen = 0;
+- S->outlen = outlen;
+-
+- if( blake2sp_init_root( S->R, outlen, 0 ) < 0 )
+- return -1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
+-
+- S->R->last_node = 1;
+- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+- return 0;
+-}
+-
+-int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
+-{
+- size_t i;
+-
+- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+-
+- if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
+-
+- memset( S->buf, 0, sizeof( S->buf ) );
+- S->buflen = 0;
+- S->outlen = outlen;
+-
+- if( blake2sp_init_root( S->R, outlen, keylen ) < 0 )
+- return -1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
+-
+- S->R->last_node = 1;
+- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+- {
+- uint8_t block[BLAKE2S_BLOCKBYTES];
+- memset( block, 0, BLAKE2S_BLOCKBYTES );
+- memcpy( block, key, keylen );
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
+-
+- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
+- }
+- return 0;
+-}
+-
+-
+-int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen )
+-{
+- const unsigned char * in = (const unsigned char *)pin;
+- size_t left = S->buflen;
+- size_t fill = sizeof( S->buf ) - left;
+- size_t i;
+-
+- if( left && inlen >= fill )
+- {
+- memcpy( S->buf + left, in, fill );
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
+-
+- in += fill;
+- inlen -= fill;
+- left = 0;
+- }
+-
+-#if defined(_OPENMP)
+- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
+-#else
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+-#endif
+- {
+-#if defined(_OPENMP)
+- size_t i = omp_get_thread_num();
+-#endif
+- size_t inlen__ = inlen;
+- const unsigned char *in__ = ( const unsigned char * )in;
+- in__ += i * BLAKE2S_BLOCKBYTES;
+-
+- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
+- {
+- blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES );
+- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+- }
+- }
+-
+- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
+- inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+-
+- if( inlen > 0 )
+- memcpy( S->buf + left, in, inlen );
+-
+- S->buflen = left + inlen;
+- return 0;
+-}
+-
+-
+-int blake2sp_final( blake2sp_state *S, void *out, size_t outlen )
+-{
+- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
+- size_t i;
+-
+- if(out == NULL || outlen < S->outlen) {
+- return -1;
+- }
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- {
+- if( S->buflen > i * BLAKE2S_BLOCKBYTES )
+- {
+- size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
+-
+- if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
+-
+- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
+- }
+-
+- blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
+- }
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
+-
+- return blake2s_final( S->R, out, S->outlen );
+-}
+-
+-
+-int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
+-{
+- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
+- blake2s_state S[PARALLELISM_DEGREE][1];
+- blake2s_state FS[1];
+- size_t i;
+-
+- /* Verify parameters */
+- if ( NULL == in && inlen > 0 ) return -1;
+-
+- if ( NULL == out ) return -1;
+-
+- if ( NULL == key && keylen > 0) return -1;
+-
+- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+-
+- if( keylen > BLAKE2S_KEYBYTES ) return -1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
+-
+- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
+-
+- if( keylen > 0 )
+- {
+- uint8_t block[BLAKE2S_BLOCKBYTES];
+- memset( block, 0, BLAKE2S_BLOCKBYTES );
+- memcpy( block, key, keylen );
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
+-
+- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
+- }
+-
+-#if defined(_OPENMP)
+- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
+-#else
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+-#endif
+- {
+-#if defined(_OPENMP)
+- size_t i = omp_get_thread_num();
+-#endif
+- size_t inlen__ = inlen;
+- const unsigned char *in__ = ( const unsigned char * )in;
+- in__ += i * BLAKE2S_BLOCKBYTES;
+-
+- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
+- {
+- blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES );
+- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+- }
+-
+- if( inlen__ > i * BLAKE2S_BLOCKBYTES )
+- {
+- const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES;
+- const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
+- blake2s_update( S[i], in__, len );
+- }
+-
+- blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES );
+- }
+-
+- if( blake2sp_init_root( FS, outlen, keylen ) < 0 )
+- return -1;
+-
+- FS->last_node = 1;
+-
+- for( i = 0; i < PARALLELISM_DEGREE; ++i )
+- blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
+-
+- return blake2s_final( FS, out, outlen );
+-}
+-
+-#if defined(BLAKE2SP_SELFTEST)
+-#include <string.h>
+-#include "blake2-kat.h"
+-int main( void )
+-{
+- uint8_t key[BLAKE2S_KEYBYTES];
+- uint8_t buf[BLAKE2_KAT_LENGTH];
+- size_t i, step;
+-
+- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
+- key[i] = ( uint8_t )i;
+-
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- buf[i] = ( uint8_t )i;
+-
+- /* Test simple API */
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
+- {
+- uint8_t hash[BLAKE2S_OUTBYTES];
+- blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
+-
+- if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
+- {
+- goto fail;
+- }
+- }
+-
+- /* Test streaming API */
+- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
+- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
+- uint8_t hash[BLAKE2S_OUTBYTES];
+- blake2sp_state S;
+- uint8_t * p = buf;
+- size_t mlen = i;
+- int err = 0;
+-
+- if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
+- goto fail;
+- }
+-
+- while (mlen >= step) {
+- if ( (err = blake2sp_update(&S, p, step)) < 0 ) {
+- goto fail;
+- }
+- mlen -= step;
+- p += step;
+- }
+- if ( (err = blake2sp_update(&S, p, mlen)) < 0) {
+- goto fail;
+- }
+- if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
+- goto fail;
+- }
+-
+- if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) {
+- goto fail;
+- }
+- }
+- }
+-
+- puts( "ok" );
+- return 0;
+-fail:
+- puts("error");
+- return -1;
+-}
+-#endif
+--- thirdparty/blake2/blake2xb.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2xb.c
+@@ -1,241 +0,0 @@
+-/*
+- BLAKE2 reference source code package - reference C implementations
+-
+- Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>.
+- Copyright 2016, Samuel Neves <sneves@dei.uc.pt>.
+-
+- You may use this under the terms of the CC0, the OpenSSL Licence, or
+- the Apache Public License 2.0, at your option. The terms of these
+- licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdint.h>
+-#include <string.h>
+-#include <stdio.h>
+-
+-#include "blake2.h"
+-#include "blake2-impl.h"
+-
+-int blake2xb_init( blake2xb_state *S, const size_t outlen ) {
+- return blake2xb_init_key(S, outlen, NULL, 0);
+-}
+-
+-int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen)
+-{
+- if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) {
+- return -1;
+- }
+-
+- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
+- return -1;
+- }
+-
+- if (NULL == key && keylen > 0) {
+- return -1;
+- }
+-
+- /* Initialize parameter block */
+- S->P->digest_length = BLAKE2B_OUTBYTES;
+- S->P->key_length = keylen;
+- S->P->fanout = 1;
+- S->P->depth = 1;
+- store32( &S->P->leaf_length, 0 );
+- store32( &S->P->node_offset, 0 );
+- store32( &S->P->xof_length, outlen );
+- S->P->node_depth = 0;
+- S->P->inner_length = 0;
+- memset( S->P->reserved, 0, sizeof( S->P->reserved ) );
+- memset( S->P->salt, 0, sizeof( S->P->salt ) );
+- memset( S->P->personal, 0, sizeof( S->P->personal ) );
+-
+- if( blake2b_init_param( S->S, S->P ) < 0 ) {
+- return -1;
+- }
+-
+- if (keylen > 0) {
+- uint8_t block[BLAKE2B_BLOCKBYTES];
+- memset(block, 0, BLAKE2B_BLOCKBYTES);
+- memcpy(block, key, keylen);
+- blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES);
+- secure_zero_memory(block, BLAKE2B_BLOCKBYTES);
+- }
+- return 0;
+-}
+-
+-int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) {
+- return blake2b_update( S->S, in, inlen );
+-}
+-
+-int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) {
+-
+- blake2b_state C[1];
+- blake2b_param P[1];
+- uint32_t xof_length = load32(&S->P->xof_length);
+- uint8_t root[BLAKE2B_BLOCKBYTES];
+- size_t i;
+-
+- if (NULL == out) {
+- return -1;
+- }
+-
+- /* outlen must match the output size defined in xof_length, */
+- /* unless it was -1, in which case anything goes except 0. */
+- if(xof_length == 0xFFFFFFFFUL) {
+- if(outlen == 0) {
+- return -1;
+- }
+- } else {
+- if(outlen != xof_length) {
+- return -1;
+- }
+- }
+-
+- /* Finalize the root hash */
+- if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) {
+- return -1;
+- }
+-
+- /* Set common block structure values */
+- /* Copy values from parent instance, and only change the ones below */
+- memcpy(P, S->P, sizeof(blake2b_param));
+- P->key_length = 0;
+- P->fanout = 0;
+- P->depth = 0;
+- store32(&P->leaf_length, BLAKE2B_OUTBYTES);
+- P->inner_length = BLAKE2B_OUTBYTES;
+- P->node_depth = 0;
+-
+- for (i = 0; outlen > 0; ++i) {
+- const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
+- /* Initialize state */
+- P->digest_length = block_size;
+- store32(&P->node_offset, i);
+- blake2b_init_param(C, P);
+- /* Process key if needed */
+- blake2b_update(C, root, BLAKE2B_OUTBYTES);
+- if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) {
+- return -1;
+- }
+- outlen -= block_size;
+- }
+- secure_zero_memory(root, sizeof(root));
+- secure_zero_memory(P, sizeof(P));
+- secure_zero_memory(C, sizeof(C));
+- /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */
+- return 0;
+-
+-}
+-
+-int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
+-{
+- blake2xb_state S[1];
+-
+- /* Verify parameters */
+- if (NULL == in && inlen > 0)
+- return -1;
+-
+- if (NULL == out)
+- return -1;
+-
+- if (NULL == key && keylen > 0)
+- return -1;
+-
+- if (keylen > BLAKE2B_KEYBYTES)
+- return -1;
+-
+- if (outlen == 0)
+- return -1;
+-
+- /* Initialize the root block structure */
+- if (blake2xb_init_key(S, outlen, key, keylen) < 0) {
+- return -1;
+- }
+-
+- /* Absorb the input message */
+- blake2xb_update(S, in, inlen);
+-
+- /* Compute the root node of the tree and the final hash using the counter construction */
+- return blake2xb_final(S, out, outlen);
+-}
+-
+-#if defined(BLAKE2XB_SELFTEST)
+-#include <string.h>
+-#include "blake2-kat.h"
+-int main( void )
+-{
+- uint8_t key[BLAKE2B_KEYBYTES];
+- uint8_t buf[BLAKE2_KAT_LENGTH];
+- size_t i, step, outlen;
+-
+- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) {
+- key[i] = ( uint8_t )i;
+- }
+-
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
+- buf[i] = ( uint8_t )i;
+- }
+-
+- /* Testing length of ouputs rather than inputs */
+- /* (Test of input lengths mostly covered by blake2s tests) */
+-
+- /* Test simple API */
+- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
+- {
+- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
+- if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) {
+- goto fail;
+- }
+-
+- if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) )
+- {
+- goto fail;
+- }
+- }
+-
+- /* Test streaming API */
+- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
+- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
+- uint8_t hash[BLAKE2_KAT_LENGTH];
+- blake2xb_state S;
+- uint8_t * p = buf;
+- size_t mlen = BLAKE2_KAT_LENGTH;
+- int err = 0;
+-
+- if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) {
+- goto fail;
+- }
+-
+- while (mlen >= step) {
+- if ( (err = blake2xb_update(&S, p, step)) < 0 ) {
+- goto fail;
+- }
+- mlen -= step;
+- p += step;
+- }
+- if ( (err = blake2xb_update(&S, p, mlen)) < 0) {
+- goto fail;
+- }
+- if ( (err = blake2xb_final(&S, hash, outlen)) < 0) {
+- goto fail;
+- }
+-
+- if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) {
+- goto fail;
+- }
+- }
+- }
+-
+- puts( "ok" );
+- return 0;
+-fail:
+- puts("error");
+- return -1;
+-}
+-#endif
+--- thirdparty/blake2/blake2xs.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/blake2xs.c
+@@ -1,239 +0,0 @@
+-/*
+- BLAKE2 reference source code package - reference C implementations
+-
+- Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>.
+- Copyright 2016, Samuel Neves <sneves@dei.uc.pt>.
+-
+- You may use this under the terms of the CC0, the OpenSSL Licence, or
+- the Apache Public License 2.0, at your option. The terms of these
+- licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdint.h>
+-#include <string.h>
+-#include <stdio.h>
+-
+-#include "blake2.h"
+-#include "blake2-impl.h"
+-
+-int blake2xs_init( blake2xs_state *S, const size_t outlen ) {
+- return blake2xs_init_key(S, outlen, NULL, 0);
+-}
+-
+-int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen )
+-{
+- if ( outlen == 0 || outlen > 0xFFFFUL ) {
+- return -1;
+- }
+-
+- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
+- return -1;
+- }
+-
+- if (NULL == key && keylen > 0) {
+- return -1;
+- }
+-
+- /* Initialize parameter block */
+- S->P->digest_length = BLAKE2S_OUTBYTES;
+- S->P->key_length = keylen;
+- S->P->fanout = 1;
+- S->P->depth = 1;
+- store32( &S->P->leaf_length, 0 );
+- store32( &S->P->node_offset, 0 );
+- store16( &S->P->xof_length, outlen );
+- S->P->node_depth = 0;
+- S->P->inner_length = 0;
+- memset( S->P->salt, 0, sizeof( S->P->salt ) );
+- memset( S->P->personal, 0, sizeof( S->P->personal ) );
+-
+- if( blake2s_init_param( S->S, S->P ) < 0 ) {
+- return -1;
+- }
+-
+- if (keylen > 0) {
+- uint8_t block[BLAKE2S_BLOCKBYTES];
+- memset(block, 0, BLAKE2S_BLOCKBYTES);
+- memcpy(block, key, keylen);
+- blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES);
+- secure_zero_memory(block, BLAKE2S_BLOCKBYTES);
+- }
+- return 0;
+-}
+-
+-int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) {
+- return blake2s_update( S->S, in, inlen );
+-}
+-
+-int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) {
+-
+- blake2s_state C[1];
+- blake2s_param P[1];
+- uint16_t xof_length = load16(&S->P->xof_length);
+- uint8_t root[BLAKE2S_BLOCKBYTES];
+- size_t i;
+-
+- if (NULL == out) {
+- return -1;
+- }
+-
+- /* outlen must match the output size defined in xof_length, */
+- /* unless it was -1, in which case anything goes except 0. */
+- if(xof_length == 0xFFFFUL) {
+- if(outlen == 0) {
+- return -1;
+- }
+- } else {
+- if(outlen != xof_length) {
+- return -1;
+- }
+- }
+-
+- /* Finalize the root hash */
+- if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) {
+- return -1;
+- }
+-
+- /* Set common block structure values */
+- /* Copy values from parent instance, and only change the ones below */
+- memcpy(P, S->P, sizeof(blake2s_param));
+- P->key_length = 0;
+- P->fanout = 0;
+- P->depth = 0;
+- store32(&P->leaf_length, BLAKE2S_OUTBYTES);
+- P->inner_length = BLAKE2S_OUTBYTES;
+- P->node_depth = 0;
+-
+- for (i = 0; outlen > 0; ++i) {
+- const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
+- /* Initialize state */
+- P->digest_length = block_size;
+- store32(&P->node_offset, i);
+- blake2s_init_param(C, P);
+- /* Process key if needed */
+- blake2s_update(C, root, BLAKE2S_OUTBYTES);
+- if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) {
+- return -1;
+- }
+- outlen -= block_size;
+- }
+- secure_zero_memory(root, sizeof(root));
+- secure_zero_memory(P, sizeof(P));
+- secure_zero_memory(C, sizeof(C));
+- /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */
+- return 0;
+-}
+-
+-int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
+-{
+- blake2xs_state S[1];
+-
+- /* Verify parameters */
+- if (NULL == in && inlen > 0)
+- return -1;
+-
+- if (NULL == out)
+- return -1;
+-
+- if (NULL == key && keylen > 0)
+- return -1;
+-
+- if (keylen > BLAKE2S_KEYBYTES)
+- return -1;
+-
+- if (outlen == 0)
+- return -1;
+-
+- /* Initialize the root block structure */
+- if (blake2xs_init_key(S, outlen, key, keylen) < 0) {
+- return -1;
+- }
+-
+- /* Absorb the input message */
+- blake2xs_update(S, in, inlen);
+-
+- /* Compute the root node of the tree and the final hash using the counter construction */
+- return blake2xs_final(S, out, outlen);
+-}
+-
+-#if defined(BLAKE2XS_SELFTEST)
+-#include <string.h>
+-#include "blake2-kat.h"
+-int main( void )
+-{
+- uint8_t key[BLAKE2S_KEYBYTES];
+- uint8_t buf[BLAKE2_KAT_LENGTH];
+- size_t i, step, outlen;
+-
+- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) {
+- key[i] = ( uint8_t )i;
+- }
+-
+- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
+- buf[i] = ( uint8_t )i;
+- }
+-
+- /* Testing length of ouputs rather than inputs */
+- /* (Test of input lengths mostly covered by blake2s tests) */
+-
+- /* Test simple API */
+- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
+- {
+- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
+- if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) {
+- goto fail;
+- }
+-
+- if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) )
+- {
+- goto fail;
+- }
+- }
+-
+- /* Test streaming API */
+- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
+- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
+- uint8_t hash[BLAKE2_KAT_LENGTH];
+- blake2xs_state S;
+- uint8_t * p = buf;
+- size_t mlen = BLAKE2_KAT_LENGTH;
+- int err = 0;
+-
+- if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) {
+- goto fail;
+- }
+-
+- while (mlen >= step) {
+- if ( (err = blake2xs_update(&S, p, step)) < 0 ) {
+- goto fail;
+- }
+- mlen -= step;
+- p += step;
+- }
+- if ( (err = blake2xs_update(&S, p, mlen)) < 0) {
+- goto fail;
+- }
+- if ( (err = blake2xs_final(&S, hash, outlen)) < 0) {
+- goto fail;
+- }
+-
+- if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) {
+- goto fail;
+- }
+- }
+- }
+-
+- puts( "ok" );
+- return 0;
+-fail:
+- puts("error");
+- return -1;
+-}
+-#endif
+--- thirdparty/blake2/genkat-c.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/genkat-c.c
+@@ -1,139 +0,0 @@
+-/*
+- BLAKE2 reference source code package - reference C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdint.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#include "blake2.h"
+-
+-#define STR_(x) #x
+-#define STR(x) STR_(x)
+-
+-#define LENGTH 256
+-
+-#define MAKE_KAT(name, size_prefix) \
+- do { \
+- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
+- "_OUTBYTES] = \n{\n"); \
+- \
+- for (i = 0; i < LENGTH; ++i) { \
+- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
+- printf("\t{\n\t\t"); \
+- \
+- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
+- printf("0x%02X%s", hash[j], \
+- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
+- \
+- printf("\t},\n"); \
+- } \
+- \
+- printf("};\n\n\n\n\n"); \
+- } while (0)
+-
+-#define MAKE_KEYED_KAT(name, size_prefix) \
+- do { \
+- printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
+- "_OUTBYTES] = \n{\n"); \
+- \
+- for (i = 0; i < LENGTH; ++i) { \
+- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
+- printf("\t{\n\t\t"); \
+- \
+- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
+- printf("0x%02X%s", hash[j], \
+- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
+- \
+- printf("\t},\n"); \
+- } \
+- \
+- printf("};\n\n\n\n\n"); \
+- } while (0)
+-
+-#define MAKE_XOF_KAT(name) \
+- do { \
+- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
+- \
+- for (i = 1; i <= LENGTH; ++i) { \
+- name(hash, i, in, LENGTH, NULL, 0); \
+- printf("\t{\n\t\t"); \
+- \
+- for (j = 0; j < i; ++j) \
+- printf("0x%02X%s", hash[j], \
+- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
+- \
+- for (j = i; j < LENGTH; ++j) \
+- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
+- \
+- printf("\t},\n"); \
+- } \
+- \
+- printf("};\n\n\n\n\n"); \
+- } while (0)
+-
+-#define MAKE_XOF_KEYED_KAT(name, size_prefix) \
+- do { \
+- printf("static const uint8_t " #name \
+- "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
+- \
+- for (i = 1; i <= LENGTH; ++i) { \
+- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
+- printf("\t{\n\t\t"); \
+- \
+- for (j = 0; j < i; ++j) \
+- printf("0x%02X%s", hash[j], \
+- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
+- \
+- for (j = i; j < LENGTH; ++j) \
+- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
+- \
+- printf("\t},\n"); \
+- } \
+- \
+- printf("};\n\n\n\n\n"); \
+- } while (0)
+-
+-int main() {
+- uint8_t key[64] = {0};
+- uint8_t in[LENGTH] = {0};
+- uint8_t hash[LENGTH] = {0};
+- size_t i, j;
+-
+- for (i = 0; i < sizeof(in); ++i)
+- in[i] = i;
+-
+- for (i = 0; i < sizeof(key); ++i)
+- key[i] = i;
+-
+- puts("#ifndef BLAKE2_KAT_H\n"
+- "#define BLAKE2_KAT_H\n\n\n"
+- "#include <stdint.h>\n\n"
+- "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n");
+- MAKE_KAT(blake2s, BLAKE2S);
+- MAKE_KEYED_KAT(blake2s, BLAKE2S);
+- MAKE_KAT(blake2b, BLAKE2B);
+- MAKE_KEYED_KAT(blake2b, BLAKE2B);
+- MAKE_KAT(blake2sp, BLAKE2S);
+- MAKE_KEYED_KAT(blake2sp, BLAKE2S);
+- MAKE_KAT(blake2bp, BLAKE2B);
+- MAKE_KEYED_KAT(blake2bp, BLAKE2B);
+- MAKE_XOF_KAT(blake2xs);
+- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S);
+- MAKE_XOF_KAT(blake2xb);
+- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B);
+- puts("#endif");
+- return 0;
+-}
+--- thirdparty/blake2/genkat-json.c.orig 2018-03-16 17:25:33 UTC
++++ thirdparty/blake2/genkat-json.c
+@@ -1,154 +0,0 @@
+-/*
+- BLAKE2 reference source code package - reference C implementations
+-
+- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+- your option. The terms of these licenses can be found at:
+-
+- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+- - OpenSSL license : https://www.openssl.org/source/license.html
+- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+-
+- More information about the BLAKE2 hash function can be found at
+- https://blake2.net.
+-*/
+-
+-#include <stdint.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#include "blake2.h"
+-
+-#define STR_(x) #x
+-#define STR(x) STR_(x)
+-
+-#define LENGTH 256
+-
+-#define MAKE_KAT(name, size_prefix, first) \
+- do { \
+- for (i = 0; i < LENGTH; ++i) { \
+- printf("%s\n{\n", i == 0 && first ? "" : ","); \
+- \
+- printf(" \"hash\": \"" #name "\",\n"); \
+- printf(" \"in\": \""); \
+- for (j = 0; j < i; ++j) \
+- printf("%02x", in[j]); \
+- \
+- printf("\",\n"); \
+- printf(" \"key\": \"\",\n"); \
+- printf(" \"out\": \""); \
+- \
+- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
+- \
+- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
+- printf("%02x", hash[j]); \
+- printf("\"\n"); \
+- printf("}"); \
+- } \
+- } while (0)
+-
+-#define MAKE_KEYED_KAT(name, size_prefix, first) \
+- do { \
+- for (i = 0; i < LENGTH; ++i) { \
+- printf("%s\n{\n", i == 0 && first ? "" : ","); \
+- \
+- printf(" \"hash\": \"" #name "\",\n"); \
+- printf(" \"in\": \""); \
+- for (j = 0; j < i; ++j) \
+- printf("%02x", in[j]); \
+- \
+- printf("\",\n"); \
+- printf(" \"key\": \""); \
+- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
+- printf("%02x", key[j]); \
+- printf("\",\n"); \
+- printf(" \"out\": \""); \
+- \
+- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
+- \
+- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
+- printf("%02x", hash[j]); \
+- printf("\"\n"); \
+- printf("}"); \
+- } \
+- } while (0)
+-
+-#define MAKE_XOF_KAT(name, first) \
+- do { \
+- for (i = 1; i <= LENGTH; ++i) { \
+- printf("%s\n{\n", i == 1 && first ? "" : ","); \
+- \
+- printf(" \"hash\": \"" #name "\",\n"); \
+- printf(" \"in\": \""); \
+- for (j = 0; j < LENGTH; ++j) \
+- printf("%02x", in[j]); \
+- \
+- printf("\",\n"); \
+- printf(" \"key\": \"\",\n"); \
+- printf(" \"out\": \""); \
+- \
+- name(hash, i, in, LENGTH, NULL, 0); \
+- \
+- for (j = 0; j < i; ++j) \
+- printf("%02x", hash[j]); \
+- printf("\"\n"); \
+- printf("}"); \
+- } \
+- } while (0)
+-
+-#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \
+- do { \
+- for (i = 1; i <= LENGTH; ++i) { \
+- printf("%s\n{\n", i == 1 && first ? "" : ","); \
+- \
+- printf(" \"hash\": \"" #name "\",\n"); \
+- printf(" \"in\": \""); \
+- for (j = 0; j < LENGTH; ++j) \
+- printf("%02x", in[j]); \
+- \
+- printf("\",\n"); \
+- printf(" \"key\": \""); \
+- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
+- printf("%02x", key[j]); \
+- printf("\",\n"); \
+- printf(" \"out\": \""); \
+- \
+- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
+- \
+- for (j = 0; j < i; ++j) \
+- printf("%02x", hash[j]); \
+- printf("\"\n"); \
+- printf("}"); \
+- } \
+- } while (0)
+-
+-int main() {
+- uint8_t key[64] = {0};
+- uint8_t in[LENGTH] = {0};
+- uint8_t hash[LENGTH] = {0};
+- size_t i, j;
+-
+- for (i = 0; i < sizeof(in); ++i)
+- in[i] = i;
+-
+- for (i = 0; i < sizeof(key); ++i)
+- key[i] = i;
+-
+- printf("[");
+- MAKE_KAT(blake2s, BLAKE2S, 1);
+- MAKE_KEYED_KAT(blake2s, BLAKE2S, 0);
+- MAKE_KAT(blake2b, BLAKE2B, 0);
+- MAKE_KEYED_KAT(blake2b, BLAKE2B, 0);
+- MAKE_KAT(blake2sp, BLAKE2S, 0);
+- MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0);
+- MAKE_KAT(blake2bp, BLAKE2B, 0);
+- MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0);
+- MAKE_XOF_KAT(blake2xs, 0);
+- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0);
+- MAKE_XOF_KAT(blake2xb, 0);
+- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0);
+- printf("\n]\n");
+- fflush(stdout);
+- return 0;
+-}
+--- thirdparty/blake2/ref/blake2-impl.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2-impl.h
+@@ -0,0 +1,160 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2_IMPL_H
++#define BLAKE2_IMPL_H
++
++#include <stdint.h>
++#include <string.h>
++
++#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
++ #if defined(_MSC_VER)
++ #define BLAKE2_INLINE __inline
++ #elif defined(__GNUC__)
++ #define BLAKE2_INLINE __inline__
++ #else
++ #define BLAKE2_INLINE
++ #endif
++#else
++ #define BLAKE2_INLINE inline
++#endif
++
++static BLAKE2_INLINE uint32_t load32( const void *src )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ uint32_t w;
++ memcpy(&w, src, sizeof w);
++ return w;
++#else
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint32_t )( p[0] ) << 0) |
++ (( uint32_t )( p[1] ) << 8) |
++ (( uint32_t )( p[2] ) << 16) |
++ (( uint32_t )( p[3] ) << 24) ;
++#endif
++}
++
++static BLAKE2_INLINE uint64_t load64( const void *src )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ uint64_t w;
++ memcpy(&w, src, sizeof w);
++ return w;
++#else
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint64_t )( p[0] ) << 0) |
++ (( uint64_t )( p[1] ) << 8) |
++ (( uint64_t )( p[2] ) << 16) |
++ (( uint64_t )( p[3] ) << 24) |
++ (( uint64_t )( p[4] ) << 32) |
++ (( uint64_t )( p[5] ) << 40) |
++ (( uint64_t )( p[6] ) << 48) |
++ (( uint64_t )( p[7] ) << 56) ;
++#endif
++}
++
++static BLAKE2_INLINE uint16_t load16( const void *src )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ uint16_t w;
++ memcpy(&w, src, sizeof w);
++ return w;
++#else
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint16_t )( p[0] ) << 0) |
++ (( uint16_t )( p[1] ) << 8) ;
++#endif
++}
++
++static BLAKE2_INLINE void store16( void *dst, uint16_t w )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ memcpy(dst, &w, sizeof w);
++#else
++ uint8_t *p = ( uint8_t * )dst;
++ *p++ = ( uint8_t )w; w >>= 8;
++ *p++ = ( uint8_t )w;
++#endif
++}
++
++static BLAKE2_INLINE void store32( void *dst, uint32_t w )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ memcpy(dst, &w, sizeof w);
++#else
++ uint8_t *p = ( uint8_t * )dst;
++ p[0] = (uint8_t)(w >> 0);
++ p[1] = (uint8_t)(w >> 8);
++ p[2] = (uint8_t)(w >> 16);
++ p[3] = (uint8_t)(w >> 24);
++#endif
++}
++
++static BLAKE2_INLINE void store64( void *dst, uint64_t w )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ memcpy(dst, &w, sizeof w);
++#else
++ uint8_t *p = ( uint8_t * )dst;
++ p[0] = (uint8_t)(w >> 0);
++ p[1] = (uint8_t)(w >> 8);
++ p[2] = (uint8_t)(w >> 16);
++ p[3] = (uint8_t)(w >> 24);
++ p[4] = (uint8_t)(w >> 32);
++ p[5] = (uint8_t)(w >> 40);
++ p[6] = (uint8_t)(w >> 48);
++ p[7] = (uint8_t)(w >> 56);
++#endif
++}
++
++static BLAKE2_INLINE uint64_t load48( const void *src )
++{
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint64_t )( p[0] ) << 0) |
++ (( uint64_t )( p[1] ) << 8) |
++ (( uint64_t )( p[2] ) << 16) |
++ (( uint64_t )( p[3] ) << 24) |
++ (( uint64_t )( p[4] ) << 32) |
++ (( uint64_t )( p[5] ) << 40) ;
++}
++
++static BLAKE2_INLINE void store48( void *dst, uint64_t w )
++{
++ uint8_t *p = ( uint8_t * )dst;
++ p[0] = (uint8_t)(w >> 0);
++ p[1] = (uint8_t)(w >> 8);
++ p[2] = (uint8_t)(w >> 16);
++ p[3] = (uint8_t)(w >> 24);
++ p[4] = (uint8_t)(w >> 32);
++ p[5] = (uint8_t)(w >> 40);
++}
++
++static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c )
++{
++ return ( w >> c ) | ( w << ( 32 - c ) );
++}
++
++static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c )
++{
++ return ( w >> c ) | ( w << ( 64 - c ) );
++}
++
++/* prevents compiler optimizing out memset() */
++static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n)
++{
++ static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
++ memset_v(v, 0, n);
++}
++
++#endif
+--- thirdparty/blake2/ref/blake2.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2.h
+@@ -0,0 +1,195 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2_H
++#define BLAKE2_H
++
++#include <stddef.h>
++#include <stdint.h>
++
++#if defined(_MSC_VER)
++#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
++#else
++#define BLAKE2_PACKED(x) x __attribute__((packed))
++#endif
++
++#if defined(__cplusplus)
++extern "C" {
++#endif
++
++ enum blake2s_constant
++ {
++ BLAKE2S_BLOCKBYTES = 64,
++ BLAKE2S_OUTBYTES = 32,
++ BLAKE2S_KEYBYTES = 32,
++ BLAKE2S_SALTBYTES = 8,
++ BLAKE2S_PERSONALBYTES = 8
++ };
++
++ enum blake2b_constant
++ {
++ BLAKE2B_BLOCKBYTES = 128,
++ BLAKE2B_OUTBYTES = 64,
++ BLAKE2B_KEYBYTES = 64,
++ BLAKE2B_SALTBYTES = 16,
++ BLAKE2B_PERSONALBYTES = 16
++ };
++
++ typedef struct blake2s_state__
++ {
++ uint32_t h[8];
++ uint32_t t[2];
++ uint32_t f[2];
++ uint8_t buf[BLAKE2S_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ uint8_t last_node;
++ } blake2s_state;
++
++ typedef struct blake2b_state__
++ {
++ uint64_t h[8];
++ uint64_t t[2];
++ uint64_t f[2];
++ uint8_t buf[BLAKE2B_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ uint8_t last_node;
++ } blake2b_state;
++
++ typedef struct blake2sp_state__
++ {
++ blake2s_state S[8][1];
++ blake2s_state R[1];
++ uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ } blake2sp_state;
++
++ typedef struct blake2bp_state__
++ {
++ blake2b_state S[4][1];
++ blake2b_state R[1];
++ uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ } blake2bp_state;
++
++
++ BLAKE2_PACKED(struct blake2s_param__
++ {
++ uint8_t digest_length; /* 1 */
++ uint8_t key_length; /* 2 */
++ uint8_t fanout; /* 3 */
++ uint8_t depth; /* 4 */
++ uint32_t leaf_length; /* 8 */
++ uint32_t node_offset; /* 12 */
++ uint16_t xof_length; /* 14 */
++ uint8_t node_depth; /* 15 */
++ uint8_t inner_length; /* 16 */
++ /* uint8_t reserved[0]; */
++ uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */
++ uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */
++ });
++
++ typedef struct blake2s_param__ blake2s_param;
++
++ BLAKE2_PACKED(struct blake2b_param__
++ {
++ uint8_t digest_length; /* 1 */
++ uint8_t key_length; /* 2 */
++ uint8_t fanout; /* 3 */
++ uint8_t depth; /* 4 */
++ uint32_t leaf_length; /* 8 */
++ uint32_t node_offset; /* 12 */
++ uint32_t xof_length; /* 16 */
++ uint8_t node_depth; /* 17 */
++ uint8_t inner_length; /* 18 */
++ uint8_t reserved[14]; /* 32 */
++ uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
++ uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
++ });
++
++ typedef struct blake2b_param__ blake2b_param;
++
++ typedef struct blake2xs_state__
++ {
++ blake2s_state S[1];
++ blake2s_param P[1];
++ } blake2xs_state;
++
++ typedef struct blake2xb_state__
++ {
++ blake2b_state S[1];
++ blake2b_param P[1];
++ } blake2xb_state;
++
++ /* Padded structs result in a compile-time error */
++ enum {
++ BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES),
++ BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
++ };
++
++ /* Streaming API */
++ int blake2s_init( blake2s_state *S, size_t outlen );
++ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
++ int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
++ int blake2s_final( blake2s_state *S, void *out, size_t outlen );
++
++ int blake2b_init( blake2b_state *S, size_t outlen );
++ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
++ int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
++ int blake2b_final( blake2b_state *S, void *out, size_t outlen );
++
++ int blake2sp_init( blake2sp_state *S, size_t outlen );
++ int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen );
++ int blake2sp_final( blake2sp_state *S, void *out, size_t outlen );
++
++ int blake2bp_init( blake2bp_state *S, size_t outlen );
++ int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen );
++ int blake2bp_final( blake2bp_state *S, void *out, size_t outlen );
++
++ /* Variable output length API */
++ int blake2xs_init( blake2xs_state *S, const size_t outlen );
++ int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen );
++ int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen );
++ int blake2xs_final(blake2xs_state *S, void *out, size_t outlen);
++
++ int blake2xb_init( blake2xb_state *S, const size_t outlen );
++ int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen );
++ int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen );
++ int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
++
++ /* Simple API */
++ int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++ int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++ int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++ int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++ int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++ int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++ /* This is simply an alias for blake2b */
++ int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++#if defined(__cplusplus)
++}
++#endif
++
++#endif
+--- thirdparty/blake2/ref/blake2b-ref.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2b-ref.c
+@@ -0,0 +1,379 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++static const uint64_t blake2b_IV[8] =
++{
++ 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
++ 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
++ 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
++ 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
++};
++
++static const uint8_t blake2b_sigma[12][16] =
++{
++ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
++ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
++ { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
++ { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
++ { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
++ { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
++ { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
++ { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
++ { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
++ { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
++ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
++ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }
++};
++
++
++static void blake2b_set_lastnode( blake2b_state *S )
++{
++ S->f[1] = (uint64_t)-1;
++}
++
++/* Some helper functions, not necessarily useful */
++static int blake2b_is_lastblock( const blake2b_state *S )
++{
++ return S->f[0] != 0;
++}
++
++static void blake2b_set_lastblock( blake2b_state *S )
++{
++ if( S->last_node ) blake2b_set_lastnode( S );
++
++ S->f[0] = (uint64_t)-1;
++}
++
++static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
++{
++ S->t[0] += inc;
++ S->t[1] += ( S->t[0] < inc );
++}
++
++static void blake2b_init0( blake2b_state *S )
++{
++ size_t i;
++ memset( S, 0, sizeof( blake2b_state ) );
++
++ for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
++}
++
++/* init xors IV with input parameter block */
++int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
++{
++ const uint8_t *p = ( const uint8_t * )( P );
++ size_t i;
++
++ blake2b_init0( S );
++
++ /* IV XOR ParamBlock */
++ for( i = 0; i < 8; ++i )
++ S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
++
++ S->outlen = P->digest_length;
++ return 0;
++}
++
++
++
++int blake2b_init( blake2b_state *S, size_t outlen )
++{
++ blake2b_param P[1];
++
++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = 0;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store32( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2b_init_param( S, P );
++}
++
++
++int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ blake2b_param P[1];
++
++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
++
++ if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store32( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++
++ if( blake2b_init_param( S, P ) < 0 ) return -1;
++
++ {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset( block, 0, BLAKE2B_BLOCKBYTES );
++ memcpy( block, key, keylen );
++ blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++#define G(r,i,a,b,c,d) \
++ do { \
++ a = a + b + m[blake2b_sigma[r][2*i+0]]; \
++ d = rotr64(d ^ a, 32); \
++ c = c + d; \
++ b = rotr64(b ^ c, 24); \
++ a = a + b + m[blake2b_sigma[r][2*i+1]]; \
++ d = rotr64(d ^ a, 16); \
++ c = c + d; \
++ b = rotr64(b ^ c, 63); \
++ } while(0)
++
++#define ROUND(r) \
++ do { \
++ G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
++ G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
++ G(r,2,v[ 2],v[ 6],v[10],v[14]); \
++ G(r,3,v[ 3],v[ 7],v[11],v[15]); \
++ G(r,4,v[ 0],v[ 5],v[10],v[15]); \
++ G(r,5,v[ 1],v[ 6],v[11],v[12]); \
++ G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
++ G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
++ } while(0)
++
++static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
++{
++ uint64_t m[16];
++ uint64_t v[16];
++ size_t i;
++
++ for( i = 0; i < 16; ++i ) {
++ m[i] = load64( block + i * sizeof( m[i] ) );
++ }
++
++ for( i = 0; i < 8; ++i ) {
++ v[i] = S->h[i];
++ }
++
++ v[ 8] = blake2b_IV[0];
++ v[ 9] = blake2b_IV[1];
++ v[10] = blake2b_IV[2];
++ v[11] = blake2b_IV[3];
++ v[12] = blake2b_IV[4] ^ S->t[0];
++ v[13] = blake2b_IV[5] ^ S->t[1];
++ v[14] = blake2b_IV[6] ^ S->f[0];
++ v[15] = blake2b_IV[7] ^ S->f[1];
++
++ ROUND( 0 );
++ ROUND( 1 );
++ ROUND( 2 );
++ ROUND( 3 );
++ ROUND( 4 );
++ ROUND( 5 );
++ ROUND( 6 );
++ ROUND( 7 );
++ ROUND( 8 );
++ ROUND( 9 );
++ ROUND( 10 );
++ ROUND( 11 );
++
++ for( i = 0; i < 8; ++i ) {
++ S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
++ }
++}
++
++#undef G
++#undef ROUND
++
++int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ if( inlen > 0 )
++ {
++ size_t left = S->buflen;
++ size_t fill = BLAKE2B_BLOCKBYTES - left;
++ if( inlen > fill )
++ {
++ S->buflen = 0;
++ memcpy( S->buf + left, in, fill ); /* Fill buffer */
++ blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
++ blake2b_compress( S, S->buf ); /* Compress */
++ in += fill; inlen -= fill;
++ while(inlen > BLAKE2B_BLOCKBYTES) {
++ blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
++ blake2b_compress( S, in );
++ in += BLAKE2B_BLOCKBYTES;
++ inlen -= BLAKE2B_BLOCKBYTES;
++ }
++ }
++ memcpy( S->buf + S->buflen, in, inlen );
++ S->buflen += inlen;
++ }
++ return 0;
++}
++
++int blake2b_final( blake2b_state *S, void *out, size_t outlen )
++{
++ uint8_t buffer[BLAKE2B_OUTBYTES] = {0};
++ size_t i;
++
++ if( out == NULL || outlen < S->outlen )
++ return -1;
++
++ if( blake2b_is_lastblock( S ) )
++ return -1;
++
++ blake2b_increment_counter( S, S->buflen );
++ blake2b_set_lastblock( S );
++ memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
++ blake2b_compress( S, S->buf );
++
++ for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
++ store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
++
++ memcpy( out, buffer, S->outlen );
++ secure_zero_memory(buffer, sizeof(buffer));
++ return 0;
++}
++
++/* inlen, at least, should be uint64_t. Others can be size_t. */
++int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ blake2b_state S[1];
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if( NULL == key && keylen > 0 ) return -1;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ if( keylen > 0 )
++ {
++ if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
++ }
++ else
++ {
++ if( blake2b_init( S, outlen ) < 0 ) return -1;
++ }
++
++ blake2b_update( S, ( const uint8_t * )in, inlen );
++ blake2b_final( S, out, outlen );
++ return 0;
++}
++
++int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
++ return blake2b(out, outlen, in, inlen, key, keylen);
++}
++
++#if defined(SUPERCOP)
++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
++{
++ return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
++}
++#endif
++
++#if defined(BLAKE2B_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2B_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2b_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2b_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2b_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/ref/blake2bp-ref.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2bp-ref.c
+@@ -0,0 +1,359 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <stdint.h>
++
++#if defined(_OPENMP)
++#include <omp.h>
++#endif
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++#define PARALLELISM_DEGREE 4
++
++/*
++ blake2b_init_param defaults to setting the expecting output length
++ from the digest_length parameter block field.
++
++ In some cases, however, we do not want this, as the output length
++ of these instances is given by inner_length instead.
++*/
++static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P )
++{
++ int err = blake2b_init_param(S, P);
++ S->outlen = P->inner_length;
++ return err;
++}
++
++static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset )
++{
++ blake2b_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, offset );
++ store32( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = BLAKE2B_OUTBYTES;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2bp_init_leaf_param( S, P );
++}
++
++static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
++{
++ blake2b_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store32( &P->xof_length, 0 );
++ P->node_depth = 1;
++ P->inner_length = BLAKE2B_OUTBYTES;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2b_init_param( S, P );
++}
++
++
++int blake2bp_init( blake2bp_state *S, size_t outlen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2bp_init_root( S->R, outlen, 0 ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ return 0;
++}
++
++int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2bp_init_root( S->R, outlen, keylen ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset( block, 0, BLAKE2B_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++
++int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ size_t left = S->buflen;
++ size_t fill = sizeof( S->buf ) - left;
++ size_t i;
++
++ if( left && inlen >= fill )
++ {
++ memcpy( S->buf + left, in, fill );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
++
++ in += fill;
++ inlen -= fill;
++ left = 0;
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2B_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
++ {
++ blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ }
++ }
++
++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
++ inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++
++ if( inlen > 0 )
++ memcpy( S->buf + left, in, inlen );
++
++ S->buflen = left + inlen;
++ return 0;
++}
++
++int blake2bp_final( blake2bp_state *S, void *out, size_t outlen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
++ size_t i;
++
++ if(out == NULL || outlen < S->outlen) {
++ return -1;
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ {
++ if( S->buflen > i * BLAKE2B_BLOCKBYTES )
++ {
++ size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
++
++ if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
++
++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
++ }
++
++ blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
++
++ return blake2b_final( S->R, out, S->outlen );
++}
++
++int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
++ blake2b_state S[PARALLELISM_DEGREE][1];
++ blake2b_state FS[1];
++ size_t i;
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if( NULL == key && keylen > 0 ) return -1;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
++
++ if( keylen > 0 )
++ {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset( block, 0, BLAKE2B_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2B_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
++ {
++ blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ }
++
++ if( inlen__ > i * BLAKE2B_BLOCKBYTES )
++ {
++ const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES;
++ const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
++ blake2b_update( S[i], in__, len );
++ }
++
++ blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES );
++ }
++
++ if( blake2bp_init_root( FS, outlen, keylen ) < 0 )
++ return -1;
++
++ FS->last_node = 1; /* Mark as last node */
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
++
++ return blake2b_final( FS, out, outlen );;
++}
++
++#if defined(BLAKE2BP_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2B_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2bp_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2bp_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2bp_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/ref/blake2s-ref.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2s-ref.c
+@@ -0,0 +1,367 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++static const uint32_t blake2s_IV[8] =
++{
++ 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
++ 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
++};
++
++static const uint8_t blake2s_sigma[10][16] =
++{
++ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
++ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
++ { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
++ { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
++ { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
++ { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
++ { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
++ { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
++ { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
++ { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
++};
++
++static void blake2s_set_lastnode( blake2s_state *S )
++{
++ S->f[1] = (uint32_t)-1;
++}
++
++/* Some helper functions, not necessarily useful */
++static int blake2s_is_lastblock( const blake2s_state *S )
++{
++ return S->f[0] != 0;
++}
++
++static void blake2s_set_lastblock( blake2s_state *S )
++{
++ if( S->last_node ) blake2s_set_lastnode( S );
++
++ S->f[0] = (uint32_t)-1;
++}
++
++static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
++{
++ S->t[0] += inc;
++ S->t[1] += ( S->t[0] < inc );
++}
++
++static void blake2s_init0( blake2s_state *S )
++{
++ size_t i;
++ memset( S, 0, sizeof( blake2s_state ) );
++
++ for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
++}
++
++/* init2 xors IV with input parameter block */
++int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
++{
++ const unsigned char *p = ( const unsigned char * )( P );
++ size_t i;
++
++ blake2s_init0( S );
++
++ /* IV XOR ParamBlock */
++ for( i = 0; i < 8; ++i )
++ S->h[i] ^= load32( &p[i * 4] );
++
++ S->outlen = P->digest_length;
++ return 0;
++}
++
++
++/* Sequential blake2s initialization */
++int blake2s_init( blake2s_state *S, size_t outlen )
++{
++ blake2s_param P[1];
++
++ /* Move interval verification here? */
++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = 0;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store16( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2s_init_param( S, P );
++}
++
++int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ blake2s_param P[1];
++
++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
++
++ if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store16( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++
++ if( blake2s_init_param( S, P ) < 0 ) return -1;
++
++ {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset( block, 0, BLAKE2S_BLOCKBYTES );
++ memcpy( block, key, keylen );
++ blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++#define G(r,i,a,b,c,d) \
++ do { \
++ a = a + b + m[blake2s_sigma[r][2*i+0]]; \
++ d = rotr32(d ^ a, 16); \
++ c = c + d; \
++ b = rotr32(b ^ c, 12); \
++ a = a + b + m[blake2s_sigma[r][2*i+1]]; \
++ d = rotr32(d ^ a, 8); \
++ c = c + d; \
++ b = rotr32(b ^ c, 7); \
++ } while(0)
++
++#define ROUND(r) \
++ do { \
++ G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
++ G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
++ G(r,2,v[ 2],v[ 6],v[10],v[14]); \
++ G(r,3,v[ 3],v[ 7],v[11],v[15]); \
++ G(r,4,v[ 0],v[ 5],v[10],v[15]); \
++ G(r,5,v[ 1],v[ 6],v[11],v[12]); \
++ G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
++ G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
++ } while(0)
++
++static void blake2s_compress( blake2s_state *S, const uint8_t in[BLAKE2S_BLOCKBYTES] )
++{
++ uint32_t m[16];
++ uint32_t v[16];
++ size_t i;
++
++ for( i = 0; i < 16; ++i ) {
++ m[i] = load32( in + i * sizeof( m[i] ) );
++ }
++
++ for( i = 0; i < 8; ++i ) {
++ v[i] = S->h[i];
++ }
++
++ v[ 8] = blake2s_IV[0];
++ v[ 9] = blake2s_IV[1];
++ v[10] = blake2s_IV[2];
++ v[11] = blake2s_IV[3];
++ v[12] = S->t[0] ^ blake2s_IV[4];
++ v[13] = S->t[1] ^ blake2s_IV[5];
++ v[14] = S->f[0] ^ blake2s_IV[6];
++ v[15] = S->f[1] ^ blake2s_IV[7];
++
++ ROUND( 0 );
++ ROUND( 1 );
++ ROUND( 2 );
++ ROUND( 3 );
++ ROUND( 4 );
++ ROUND( 5 );
++ ROUND( 6 );
++ ROUND( 7 );
++ ROUND( 8 );
++ ROUND( 9 );
++
++ for( i = 0; i < 8; ++i ) {
++ S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
++ }
++}
++
++#undef G
++#undef ROUND
++
++int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ if( inlen > 0 )
++ {
++ size_t left = S->buflen;
++ size_t fill = BLAKE2S_BLOCKBYTES - left;
++ if( inlen > fill )
++ {
++ S->buflen = 0;
++ memcpy( S->buf + left, in, fill ); /* Fill buffer */
++ blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
++ blake2s_compress( S, S->buf ); /* Compress */
++ in += fill; inlen -= fill;
++ while(inlen > BLAKE2S_BLOCKBYTES) {
++ blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
++ blake2s_compress( S, in );
++ in += BLAKE2S_BLOCKBYTES;
++ inlen -= BLAKE2S_BLOCKBYTES;
++ }
++ }
++ memcpy( S->buf + S->buflen, in, inlen );
++ S->buflen += inlen;
++ }
++ return 0;
++}
++
++int blake2s_final( blake2s_state *S, void *out, size_t outlen )
++{
++ uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
++ size_t i;
++
++ if( out == NULL || outlen < S->outlen )
++ return -1;
++
++ if( blake2s_is_lastblock( S ) )
++ return -1;
++
++ blake2s_increment_counter( S, ( uint32_t )S->buflen );
++ blake2s_set_lastblock( S );
++ memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
++ blake2s_compress( S, S->buf );
++
++ for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
++ store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
++
++ memcpy( out, buffer, outlen );
++ secure_zero_memory(buffer, sizeof(buffer));
++ return 0;
++}
++
++int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ blake2s_state S[1];
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if ( NULL == key && keylen > 0) return -1;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ if( keylen > 0 )
++ {
++ if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
++ }
++ else
++ {
++ if( blake2s_init( S, outlen ) < 0 ) return -1;
++ }
++
++ blake2s_update( S, ( const uint8_t * )in, inlen );
++ blake2s_final( S, out, outlen );
++ return 0;
++}
++
++#if defined(SUPERCOP)
++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
++{
++ return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
++}
++#endif
++
++#if defined(BLAKE2S_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2S_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2s_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2s_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2s_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/ref/blake2sp-ref.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2sp-ref.c
+@@ -0,0 +1,359 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdlib.h>
++#include <string.h>
++#include <stdio.h>
++
++#if defined(_OPENMP)
++#include <omp.h>
++#endif
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++#define PARALLELISM_DEGREE 8
++
++/*
++ blake2sp_init_param defaults to setting the expecting output length
++ from the digest_length parameter block field.
++
++ In some cases, however, we do not want this, as the output length
++ of these instances is given by inner_length instead.
++*/
++static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P )
++{
++ int err = blake2s_init_param(S, P);
++ S->outlen = P->inner_length;
++ return err;
++}
++
++static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset )
++{
++ blake2s_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, offset );
++ store16( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = BLAKE2S_OUTBYTES;
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2sp_init_leaf_param( S, P );
++}
++
++static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
++{
++ blake2s_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store16( &P->xof_length, 0 );
++ P->node_depth = 1;
++ P->inner_length = BLAKE2S_OUTBYTES;
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2s_init_param( S, P );
++}
++
++
++int blake2sp_init( blake2sp_state *S, size_t outlen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2sp_init_root( S->R, outlen, 0 ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ return 0;
++}
++
++int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2sp_init_root( S->R, outlen, keylen ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset( block, 0, BLAKE2S_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++
++int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ size_t left = S->buflen;
++ size_t fill = sizeof( S->buf ) - left;
++ size_t i;
++
++ if( left && inlen >= fill )
++ {
++ memcpy( S->buf + left, in, fill );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
++
++ in += fill;
++ inlen -= fill;
++ left = 0;
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
++#else
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2S_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
++ {
++ blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ }
++ }
++
++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
++ inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++
++ if( inlen > 0 )
++ memcpy( S->buf + left, in, inlen );
++
++ S->buflen = left + inlen;
++ return 0;
++}
++
++
++int blake2sp_final( blake2sp_state *S, void *out, size_t outlen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
++ size_t i;
++
++ if(out == NULL || outlen < S->outlen) {
++ return -1;
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ {
++ if( S->buflen > i * BLAKE2S_BLOCKBYTES )
++ {
++ size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
++
++ if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
++
++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
++ }
++
++ blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
++
++ return blake2s_final( S->R, out, S->outlen );
++}
++
++
++int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
++ blake2s_state S[PARALLELISM_DEGREE][1];
++ blake2s_state FS[1];
++ size_t i;
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if ( NULL == key && keylen > 0) return -1;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
++
++ if( keylen > 0 )
++ {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset( block, 0, BLAKE2S_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2S_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
++ {
++ blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ }
++
++ if( inlen__ > i * BLAKE2S_BLOCKBYTES )
++ {
++ const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES;
++ const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
++ blake2s_update( S[i], in__, len );
++ }
++
++ blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES );
++ }
++
++ if( blake2sp_init_root( FS, outlen, keylen ) < 0 )
++ return -1;
++
++ FS->last_node = 1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
++
++ return blake2s_final( FS, out, outlen );
++}
++
++
++
++#if defined(BLAKE2SP_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2S_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2sp_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2sp_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2sp_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/ref/blake2xb-ref.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2xb-ref.c
+@@ -0,0 +1,241 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>.
++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>.
++
++ You may use this under the terms of the CC0, the OpenSSL Licence, or
++ the Apache Public License 2.0, at your option. The terms of these
++ licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++int blake2xb_init( blake2xb_state *S, const size_t outlen ) {
++ return blake2xb_init_key(S, outlen, NULL, 0);
++}
++
++int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen)
++{
++ if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) {
++ return -1;
++ }
++
++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
++ return -1;
++ }
++
++ if (NULL == key && keylen > 0) {
++ return -1;
++ }
++
++ /* Initialize parameter block */
++ S->P->digest_length = BLAKE2B_OUTBYTES;
++ S->P->key_length = keylen;
++ S->P->fanout = 1;
++ S->P->depth = 1;
++ store32( &S->P->leaf_length, 0 );
++ store32( &S->P->node_offset, 0 );
++ store32( &S->P->xof_length, outlen );
++ S->P->node_depth = 0;
++ S->P->inner_length = 0;
++ memset( S->P->reserved, 0, sizeof( S->P->reserved ) );
++ memset( S->P->salt, 0, sizeof( S->P->salt ) );
++ memset( S->P->personal, 0, sizeof( S->P->personal ) );
++
++ if( blake2b_init_param( S->S, S->P ) < 0 ) {
++ return -1;
++ }
++
++ if (keylen > 0) {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset(block, 0, BLAKE2B_BLOCKBYTES);
++ memcpy(block, key, keylen);
++ blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES);
++ secure_zero_memory(block, BLAKE2B_BLOCKBYTES);
++ }
++ return 0;
++}
++
++int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) {
++ return blake2b_update( S->S, in, inlen );
++}
++
++int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) {
++
++ blake2b_state C[1];
++ blake2b_param P[1];
++ uint32_t xof_length = load32(&S->P->xof_length);
++ uint8_t root[BLAKE2B_BLOCKBYTES];
++ size_t i;
++
++ if (NULL == out) {
++ return -1;
++ }
++
++ /* outlen must match the output size defined in xof_length, */
++ /* unless it was -1, in which case anything goes except 0. */
++ if(xof_length == 0xFFFFFFFFUL) {
++ if(outlen == 0) {
++ return -1;
++ }
++ } else {
++ if(outlen != xof_length) {
++ return -1;
++ }
++ }
++
++ /* Finalize the root hash */
++ if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) {
++ return -1;
++ }
++
++ /* Set common block structure values */
++ /* Copy values from parent instance, and only change the ones below */
++ memcpy(P, S->P, sizeof(blake2b_param));
++ P->key_length = 0;
++ P->fanout = 0;
++ P->depth = 0;
++ store32(&P->leaf_length, BLAKE2B_OUTBYTES);
++ P->inner_length = BLAKE2B_OUTBYTES;
++ P->node_depth = 0;
++
++ for (i = 0; outlen > 0; ++i) {
++ const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
++ /* Initialize state */
++ P->digest_length = block_size;
++ store32(&P->node_offset, i);
++ blake2b_init_param(C, P);
++ /* Process key if needed */
++ blake2b_update(C, root, BLAKE2B_OUTBYTES);
++ if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) {
++ return -1;
++ }
++ outlen -= block_size;
++ }
++ secure_zero_memory(root, sizeof(root));
++ secure_zero_memory(P, sizeof(P));
++ secure_zero_memory(C, sizeof(C));
++ /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */
++ return 0;
++
++}
++
++int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
++{
++ blake2xb_state S[1];
++
++ /* Verify parameters */
++ if (NULL == in && inlen > 0)
++ return -1;
++
++ if (NULL == out)
++ return -1;
++
++ if (NULL == key && keylen > 0)
++ return -1;
++
++ if (keylen > BLAKE2B_KEYBYTES)
++ return -1;
++
++ if (outlen == 0)
++ return -1;
++
++ /* Initialize the root block structure */
++ if (blake2xb_init_key(S, outlen, key, keylen) < 0) {
++ return -1;
++ }
++
++ /* Absorb the input message */
++ blake2xb_update(S, in, inlen);
++
++ /* Compute the root node of the tree and the final hash using the counter construction */
++ return blake2xb_final(S, out, outlen);
++}
++
++#if defined(BLAKE2XB_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2B_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step, outlen;
++
++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) {
++ key[i] = ( uint8_t )i;
++ }
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
++ buf[i] = ( uint8_t )i;
++ }
++
++ /* Testing length of outputs rather than inputs */
++ /* (Test of input lengths mostly covered by blake2b tests) */
++
++ /* Test simple API */
++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
++ {
++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
++ if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) {
++ goto fail;
++ }
++
++ if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
++ uint8_t hash[BLAKE2_KAT_LENGTH];
++ blake2xb_state S;
++ uint8_t * p = buf;
++ size_t mlen = BLAKE2_KAT_LENGTH;
++ int err = 0;
++
++ if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2xb_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2xb_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2xb_final(&S, hash, outlen)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/ref/blake2xs-ref.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/blake2xs-ref.c
+@@ -0,0 +1,239 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>.
++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>.
++
++ You may use this under the terms of the CC0, the OpenSSL Licence, or
++ the Apache Public License 2.0, at your option. The terms of these
++ licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++int blake2xs_init( blake2xs_state *S, const size_t outlen ) {
++ return blake2xs_init_key(S, outlen, NULL, 0);
++}
++
++int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen )
++{
++ if ( outlen == 0 || outlen > 0xFFFFUL ) {
++ return -1;
++ }
++
++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
++ return -1;
++ }
++
++ if (NULL == key && keylen > 0) {
++ return -1;
++ }
++
++ /* Initialize parameter block */
++ S->P->digest_length = BLAKE2S_OUTBYTES;
++ S->P->key_length = keylen;
++ S->P->fanout = 1;
++ S->P->depth = 1;
++ store32( &S->P->leaf_length, 0 );
++ store32( &S->P->node_offset, 0 );
++ store16( &S->P->xof_length, outlen );
++ S->P->node_depth = 0;
++ S->P->inner_length = 0;
++ memset( S->P->salt, 0, sizeof( S->P->salt ) );
++ memset( S->P->personal, 0, sizeof( S->P->personal ) );
++
++ if( blake2s_init_param( S->S, S->P ) < 0 ) {
++ return -1;
++ }
++
++ if (keylen > 0) {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset(block, 0, BLAKE2S_BLOCKBYTES);
++ memcpy(block, key, keylen);
++ blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES);
++ secure_zero_memory(block, BLAKE2S_BLOCKBYTES);
++ }
++ return 0;
++}
++
++int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) {
++ return blake2s_update( S->S, in, inlen );
++}
++
++int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) {
++
++ blake2s_state C[1];
++ blake2s_param P[1];
++ uint16_t xof_length = load16(&S->P->xof_length);
++ uint8_t root[BLAKE2S_BLOCKBYTES];
++ size_t i;
++
++ if (NULL == out) {
++ return -1;
++ }
++
++ /* outlen must match the output size defined in xof_length, */
++ /* unless it was -1, in which case anything goes except 0. */
++ if(xof_length == 0xFFFFUL) {
++ if(outlen == 0) {
++ return -1;
++ }
++ } else {
++ if(outlen != xof_length) {
++ return -1;
++ }
++ }
++
++ /* Finalize the root hash */
++ if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) {
++ return -1;
++ }
++
++ /* Set common block structure values */
++ /* Copy values from parent instance, and only change the ones below */
++ memcpy(P, S->P, sizeof(blake2s_param));
++ P->key_length = 0;
++ P->fanout = 0;
++ P->depth = 0;
++ store32(&P->leaf_length, BLAKE2S_OUTBYTES);
++ P->inner_length = BLAKE2S_OUTBYTES;
++ P->node_depth = 0;
++
++ for (i = 0; outlen > 0; ++i) {
++ const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
++ /* Initialize state */
++ P->digest_length = block_size;
++ store32(&P->node_offset, i);
++ blake2s_init_param(C, P);
++ /* Process key if needed */
++ blake2s_update(C, root, BLAKE2S_OUTBYTES);
++ if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) {
++ return -1;
++ }
++ outlen -= block_size;
++ }
++ secure_zero_memory(root, sizeof(root));
++ secure_zero_memory(P, sizeof(P));
++ secure_zero_memory(C, sizeof(C));
++ /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */
++ return 0;
++}
++
++int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
++{
++ blake2xs_state S[1];
++
++ /* Verify parameters */
++ if (NULL == in && inlen > 0)
++ return -1;
++
++ if (NULL == out)
++ return -1;
++
++ if (NULL == key && keylen > 0)
++ return -1;
++
++ if (keylen > BLAKE2S_KEYBYTES)
++ return -1;
++
++ if (outlen == 0)
++ return -1;
++
++ /* Initialize the root block structure */
++ if (blake2xs_init_key(S, outlen, key, keylen) < 0) {
++ return -1;
++ }
++
++ /* Absorb the input message */
++ blake2xs_update(S, in, inlen);
++
++ /* Compute the root node of the tree and the final hash using the counter construction */
++ return blake2xs_final(S, out, outlen);
++}
++
++#if defined(BLAKE2XS_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2S_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step, outlen;
++
++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) {
++ key[i] = ( uint8_t )i;
++ }
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
++ buf[i] = ( uint8_t )i;
++ }
++
++ /* Testing length of outputs rather than inputs */
++ /* (Test of input lengths mostly covered by blake2s tests) */
++
++ /* Test simple API */
++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
++ {
++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
++ if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) {
++ goto fail;
++ }
++
++ if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
++ uint8_t hash[BLAKE2_KAT_LENGTH];
++ blake2xs_state S;
++ uint8_t * p = buf;
++ size_t mlen = BLAKE2_KAT_LENGTH;
++ int err = 0;
++
++ if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2xs_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2xs_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2xs_final(&S, hash, outlen)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/ref/genkat-c.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/genkat-c.c
+@@ -0,0 +1,139 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "blake2.h"
++
++#define STR_(x) #x
++#define STR(x) STR_(x)
++
++#define LENGTH 256
++
++#define MAKE_KAT(name, size_prefix) \
++ do { \
++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
++ "_OUTBYTES] = \n{\n"); \
++ \
++ for (i = 0; i < LENGTH; ++i) { \
++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++#define MAKE_KEYED_KAT(name, size_prefix) \
++ do { \
++ printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
++ "_OUTBYTES] = \n{\n"); \
++ \
++ for (i = 0; i < LENGTH; ++i) { \
++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++#define MAKE_XOF_KAT(name) \
++ do { \
++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
++ \
++ for (i = 1; i <= LENGTH; ++i) { \
++ name(hash, i, in, LENGTH, NULL, 0); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ for (j = i; j < LENGTH; ++j) \
++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++#define MAKE_XOF_KEYED_KAT(name, size_prefix) \
++ do { \
++ printf("static const uint8_t " #name \
++ "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
++ \
++ for (i = 1; i <= LENGTH; ++i) { \
++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ for (j = i; j < LENGTH; ++j) \
++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++int main() {
++ uint8_t key[64] = {0};
++ uint8_t in[LENGTH] = {0};
++ uint8_t hash[LENGTH] = {0};
++ size_t i, j;
++
++ for (i = 0; i < sizeof(in); ++i)
++ in[i] = i;
++
++ for (i = 0; i < sizeof(key); ++i)
++ key[i] = i;
++
++ puts("#ifndef BLAKE2_KAT_H\n"
++ "#define BLAKE2_KAT_H\n\n\n"
++ "#include <stdint.h>\n\n"
++ "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n");
++ MAKE_KAT(blake2s, BLAKE2S);
++ MAKE_KEYED_KAT(blake2s, BLAKE2S);
++ MAKE_KAT(blake2b, BLAKE2B);
++ MAKE_KEYED_KAT(blake2b, BLAKE2B);
++ MAKE_KAT(blake2sp, BLAKE2S);
++ MAKE_KEYED_KAT(blake2sp, BLAKE2S);
++ MAKE_KAT(blake2bp, BLAKE2B);
++ MAKE_KEYED_KAT(blake2bp, BLAKE2B);
++ MAKE_XOF_KAT(blake2xs);
++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S);
++ MAKE_XOF_KAT(blake2xb);
++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B);
++ puts("#endif");
++ return 0;
++}
+--- thirdparty/blake2/ref/genkat-json.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/genkat-json.c
+@@ -0,0 +1,154 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "blake2.h"
++
++#define STR_(x) #x
++#define STR(x) STR_(x)
++
++#define LENGTH 256
++
++#define MAKE_KAT(name, size_prefix, first) \
++ do { \
++ for (i = 0; i < LENGTH; ++i) { \
++ printf("%s\n{\n", i == 0 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \"\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++#define MAKE_KEYED_KAT(name, size_prefix, first) \
++ do { \
++ for (i = 0; i < LENGTH; ++i) { \
++ printf("%s\n{\n", i == 0 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \""); \
++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
++ printf("%02x", key[j]); \
++ printf("\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++#define MAKE_XOF_KAT(name, first) \
++ do { \
++ for (i = 1; i <= LENGTH; ++i) { \
++ printf("%s\n{\n", i == 1 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < LENGTH; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \"\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, i, in, LENGTH, NULL, 0); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \
++ do { \
++ for (i = 1; i <= LENGTH; ++i) { \
++ printf("%s\n{\n", i == 1 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < LENGTH; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \""); \
++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
++ printf("%02x", key[j]); \
++ printf("\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++int main() {
++ uint8_t key[64] = {0};
++ uint8_t in[LENGTH] = {0};
++ uint8_t hash[LENGTH] = {0};
++ size_t i, j;
++
++ for (i = 0; i < sizeof(in); ++i)
++ in[i] = i;
++
++ for (i = 0; i < sizeof(key); ++i)
++ key[i] = i;
++
++ printf("[");
++ MAKE_KAT(blake2s, BLAKE2S, 1);
++ MAKE_KEYED_KAT(blake2s, BLAKE2S, 0);
++ MAKE_KAT(blake2b, BLAKE2B, 0);
++ MAKE_KEYED_KAT(blake2b, BLAKE2B, 0);
++ MAKE_KAT(blake2sp, BLAKE2S, 0);
++ MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0);
++ MAKE_KAT(blake2bp, BLAKE2B, 0);
++ MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0);
++ MAKE_XOF_KAT(blake2xs, 0);
++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0);
++ MAKE_XOF_KAT(blake2xb, 0);
++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0);
++ printf("\n]\n");
++ fflush(stdout);
++ return 0;
++}
+--- thirdparty/blake2/ref/makefile.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/ref/makefile
+@@ -0,0 +1,40 @@
++CC=gcc
++CFLAGS=-O2 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long
++BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb
++
++all: $(BLAKEBINS) check
++
++blake2s: blake2s-ref.c
++ $(CC) blake2s-ref.c -o $@ $(CFLAGS) -DBLAKE2S_SELFTEST
++
++blake2b: blake2b-ref.c
++ $(CC) blake2b-ref.c -o $@ $(CFLAGS) -DBLAKE2B_SELFTEST
++
++blake2sp: blake2sp-ref.c blake2s-ref.c
++ $(CC) blake2sp-ref.c blake2s-ref.c -o $@ $(CFLAGS) -DBLAKE2SP_SELFTEST
++
++blake2bp: blake2bp-ref.c blake2b-ref.c
++ $(CC) blake2bp-ref.c blake2b-ref.c -o $@ $(CFLAGS) -DBLAKE2BP_SELFTEST
++
++blake2xs: blake2xs-ref.c blake2s-ref.c
++ $(CC) blake2xs-ref.c blake2s-ref.c -o $@ $(CFLAGS) -DBLAKE2XS_SELFTEST
++
++blake2xb: blake2xb-ref.c blake2b-ref.c
++ $(CC) blake2xb-ref.c blake2b-ref.c -o $@ $(CFLAGS) -DBLAKE2XB_SELFTEST
++
++check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb
++ ./blake2s
++ ./blake2b
++ ./blake2sp
++ ./blake2bp
++ ./blake2xs
++ ./blake2xb
++
++kat:
++ $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c blake2xs-ref.c blake2xb-ref.c
++ $(CC) $(CFLAGS) -o genkat-json genkat-json.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c blake2xs-ref.c blake2xb-ref.c
++ ./genkat-c > blake2-kat.h
++ ./genkat-json > blake2-kat.json
++
++clean:
++ rm -rf *.o genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS)
+--- thirdparty/blake2/sse/blake2-config.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2-config.h
+@@ -0,0 +1,72 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2_CONFIG_H
++#define BLAKE2_CONFIG_H
++
++/* These don't work everywhere */
++#if defined(__SSE2__) || defined(__x86_64__) || defined(__amd64__)
++#define HAVE_SSE2
++#endif
++
++#if defined(__SSSE3__)
++#define HAVE_SSSE3
++#endif
++
++#if defined(__SSE4_1__)
++#define HAVE_SSE41
++#endif
++
++#if defined(__AVX__)
++#define HAVE_AVX
++#endif
++
++#if defined(__XOP__)
++#define HAVE_XOP
++#endif
++
++
++#ifdef HAVE_AVX2
++#ifndef HAVE_AVX
++#define HAVE_AVX
++#endif
++#endif
++
++#ifdef HAVE_XOP
++#ifndef HAVE_AVX
++#define HAVE_AVX
++#endif
++#endif
++
++#ifdef HAVE_AVX
++#ifndef HAVE_SSE41
++#define HAVE_SSE41
++#endif
++#endif
++
++#ifdef HAVE_SSE41
++#ifndef HAVE_SSSE3
++#define HAVE_SSSE3
++#endif
++#endif
++
++#ifdef HAVE_SSSE3
++#define HAVE_SSE2
++#endif
++
++#if !defined(HAVE_SSE2)
++#error "This code requires at least SSE2."
++#endif
++
++#endif
+--- thirdparty/blake2/sse/blake2-impl.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2-impl.h
+@@ -0,0 +1,160 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2_IMPL_H
++#define BLAKE2_IMPL_H
++
++#include <stdint.h>
++#include <string.h>
++
++#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
++ #if defined(_MSC_VER)
++ #define BLAKE2_INLINE __inline
++ #elif defined(__GNUC__)
++ #define BLAKE2_INLINE __inline__
++ #else
++ #define BLAKE2_INLINE
++ #endif
++#else
++ #define BLAKE2_INLINE inline
++#endif
++
++static BLAKE2_INLINE uint32_t load32( const void *src )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ uint32_t w;
++ memcpy(&w, src, sizeof w);
++ return w;
++#else
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint32_t )( p[0] ) << 0) |
++ (( uint32_t )( p[1] ) << 8) |
++ (( uint32_t )( p[2] ) << 16) |
++ (( uint32_t )( p[3] ) << 24) ;
++#endif
++}
++
++static BLAKE2_INLINE uint64_t load64( const void *src )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ uint64_t w;
++ memcpy(&w, src, sizeof w);
++ return w;
++#else
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint64_t )( p[0] ) << 0) |
++ (( uint64_t )( p[1] ) << 8) |
++ (( uint64_t )( p[2] ) << 16) |
++ (( uint64_t )( p[3] ) << 24) |
++ (( uint64_t )( p[4] ) << 32) |
++ (( uint64_t )( p[5] ) << 40) |
++ (( uint64_t )( p[6] ) << 48) |
++ (( uint64_t )( p[7] ) << 56) ;
++#endif
++}
++
++static BLAKE2_INLINE uint16_t load16( const void *src )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ uint16_t w;
++ memcpy(&w, src, sizeof w);
++ return w;
++#else
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint16_t )( p[0] ) << 0) |
++ (( uint16_t )( p[1] ) << 8) ;
++#endif
++}
++
++static BLAKE2_INLINE void store16( void *dst, uint16_t w )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ memcpy(dst, &w, sizeof w);
++#else
++ uint8_t *p = ( uint8_t * )dst;
++ *p++ = ( uint8_t )w; w >>= 8;
++ *p++ = ( uint8_t )w;
++#endif
++}
++
++static BLAKE2_INLINE void store32( void *dst, uint32_t w )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ memcpy(dst, &w, sizeof w);
++#else
++ uint8_t *p = ( uint8_t * )dst;
++ p[0] = (uint8_t)(w >> 0);
++ p[1] = (uint8_t)(w >> 8);
++ p[2] = (uint8_t)(w >> 16);
++ p[3] = (uint8_t)(w >> 24);
++#endif
++}
++
++static BLAKE2_INLINE void store64( void *dst, uint64_t w )
++{
++#if defined(NATIVE_LITTLE_ENDIAN)
++ memcpy(dst, &w, sizeof w);
++#else
++ uint8_t *p = ( uint8_t * )dst;
++ p[0] = (uint8_t)(w >> 0);
++ p[1] = (uint8_t)(w >> 8);
++ p[2] = (uint8_t)(w >> 16);
++ p[3] = (uint8_t)(w >> 24);
++ p[4] = (uint8_t)(w >> 32);
++ p[5] = (uint8_t)(w >> 40);
++ p[6] = (uint8_t)(w >> 48);
++ p[7] = (uint8_t)(w >> 56);
++#endif
++}
++
++static BLAKE2_INLINE uint64_t load48( const void *src )
++{
++ const uint8_t *p = ( const uint8_t * )src;
++ return (( uint64_t )( p[0] ) << 0) |
++ (( uint64_t )( p[1] ) << 8) |
++ (( uint64_t )( p[2] ) << 16) |
++ (( uint64_t )( p[3] ) << 24) |
++ (( uint64_t )( p[4] ) << 32) |
++ (( uint64_t )( p[5] ) << 40) ;
++}
++
++static BLAKE2_INLINE void store48( void *dst, uint64_t w )
++{
++ uint8_t *p = ( uint8_t * )dst;
++ p[0] = (uint8_t)(w >> 0);
++ p[1] = (uint8_t)(w >> 8);
++ p[2] = (uint8_t)(w >> 16);
++ p[3] = (uint8_t)(w >> 24);
++ p[4] = (uint8_t)(w >> 32);
++ p[5] = (uint8_t)(w >> 40);
++}
++
++static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c )
++{
++ return ( w >> c ) | ( w << ( 32 - c ) );
++}
++
++static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c )
++{
++ return ( w >> c ) | ( w << ( 64 - c ) );
++}
++
++/* prevents compiler optimizing out memset() */
++static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n)
++{
++ static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
++ memset_v(v, 0, n);
++}
++
++#endif
+--- thirdparty/blake2/sse/blake2.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2.h
+@@ -0,0 +1,195 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2_H
++#define BLAKE2_H
++
++#include <stddef.h>
++#include <stdint.h>
++
++#if defined(_MSC_VER)
++#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
++#else
++#define BLAKE2_PACKED(x) x __attribute__((packed))
++#endif
++
++#if defined(__cplusplus)
++extern "C" {
++#endif
++
++ enum blake2s_constant
++ {
++ BLAKE2S_BLOCKBYTES = 64,
++ BLAKE2S_OUTBYTES = 32,
++ BLAKE2S_KEYBYTES = 32,
++ BLAKE2S_SALTBYTES = 8,
++ BLAKE2S_PERSONALBYTES = 8
++ };
++
++ enum blake2b_constant
++ {
++ BLAKE2B_BLOCKBYTES = 128,
++ BLAKE2B_OUTBYTES = 64,
++ BLAKE2B_KEYBYTES = 64,
++ BLAKE2B_SALTBYTES = 16,
++ BLAKE2B_PERSONALBYTES = 16
++ };
++
++ typedef struct blake2s_state__
++ {
++ uint32_t h[8];
++ uint32_t t[2];
++ uint32_t f[2];
++ uint8_t buf[BLAKE2S_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ uint8_t last_node;
++ } blake2s_state;
++
++ typedef struct blake2b_state__
++ {
++ uint64_t h[8];
++ uint64_t t[2];
++ uint64_t f[2];
++ uint8_t buf[BLAKE2B_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ uint8_t last_node;
++ } blake2b_state;
++
++ typedef struct blake2sp_state__
++ {
++ blake2s_state S[8][1];
++ blake2s_state R[1];
++ uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ } blake2sp_state;
++
++ typedef struct blake2bp_state__
++ {
++ blake2b_state S[4][1];
++ blake2b_state R[1];
++ uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
++ size_t buflen;
++ size_t outlen;
++ } blake2bp_state;
++
++
++ BLAKE2_PACKED(struct blake2s_param__
++ {
++ uint8_t digest_length; /* 1 */
++ uint8_t key_length; /* 2 */
++ uint8_t fanout; /* 3 */
++ uint8_t depth; /* 4 */
++ uint32_t leaf_length; /* 8 */
++ uint32_t node_offset; /* 12 */
++ uint16_t xof_length; /* 14 */
++ uint8_t node_depth; /* 15 */
++ uint8_t inner_length; /* 16 */
++ /* uint8_t reserved[0]; */
++ uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */
++ uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */
++ });
++
++ typedef struct blake2s_param__ blake2s_param;
++
++ BLAKE2_PACKED(struct blake2b_param__
++ {
++ uint8_t digest_length; /* 1 */
++ uint8_t key_length; /* 2 */
++ uint8_t fanout; /* 3 */
++ uint8_t depth; /* 4 */
++ uint32_t leaf_length; /* 8 */
++ uint32_t node_offset; /* 12 */
++ uint32_t xof_length; /* 16 */
++ uint8_t node_depth; /* 17 */
++ uint8_t inner_length; /* 18 */
++ uint8_t reserved[14]; /* 32 */
++ uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
++ uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
++ });
++
++ typedef struct blake2b_param__ blake2b_param;
++
++ typedef struct blake2xs_state__
++ {
++ blake2s_state S[1];
++ blake2s_param P[1];
++ } blake2xs_state;
++
++ typedef struct blake2xb_state__
++ {
++ blake2b_state S[1];
++ blake2b_param P[1];
++ } blake2xb_state;
++
++ /* Padded structs result in a compile-time error */
++ enum {
++ BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES),
++ BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
++ };
++
++ /* Streaming API */
++ int blake2s_init( blake2s_state *S, size_t outlen );
++ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
++ int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
++ int blake2s_final( blake2s_state *S, void *out, size_t outlen );
++
++ int blake2b_init( blake2b_state *S, size_t outlen );
++ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
++ int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
++ int blake2b_final( blake2b_state *S, void *out, size_t outlen );
++
++ int blake2sp_init( blake2sp_state *S, size_t outlen );
++ int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen );
++ int blake2sp_final( blake2sp_state *S, void *out, size_t outlen );
++
++ int blake2bp_init( blake2bp_state *S, size_t outlen );
++ int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
++ int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen );
++ int blake2bp_final( blake2bp_state *S, void *out, size_t outlen );
++
++ /* Variable output length API */
++ int blake2xs_init( blake2xs_state *S, const size_t outlen );
++ int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen );
++ int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen );
++ int blake2xs_final(blake2xs_state *S, void *out, size_t outlen);
++
++ int blake2xb_init( blake2xb_state *S, const size_t outlen );
++ int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen );
++ int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen );
++ int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
++
++ /* Simple API */
++ int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++ int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++ int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++ int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++ int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++ int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++ /* This is simply an alias for blake2b */
++ int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
++
++#if defined(__cplusplus)
++}
++#endif
++
++#endif
+--- thirdparty/blake2/sse/blake2b-load-sse2.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2b-load-sse2.h
+@@ -0,0 +1,68 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2B_LOAD_SSE2_H
++#define BLAKE2B_LOAD_SSE2_H
++
++#define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4)
++#define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5)
++#define LOAD_MSG_0_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12)
++#define LOAD_MSG_0_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13)
++#define LOAD_MSG_1_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9)
++#define LOAD_MSG_1_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15)
++#define LOAD_MSG_1_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11)
++#define LOAD_MSG_1_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7)
++#define LOAD_MSG_2_1(b0, b1) b0 = _mm_set_epi64x(m12, m11); b1 = _mm_set_epi64x(m15, m5)
++#define LOAD_MSG_2_2(b0, b1) b0 = _mm_set_epi64x(m0, m8); b1 = _mm_set_epi64x(m13, m2)
++#define LOAD_MSG_2_3(b0, b1) b0 = _mm_set_epi64x(m3, m10); b1 = _mm_set_epi64x(m9, m7)
++#define LOAD_MSG_2_4(b0, b1) b0 = _mm_set_epi64x(m6, m14); b1 = _mm_set_epi64x(m4, m1)
++#define LOAD_MSG_3_1(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m13)
++#define LOAD_MSG_3_2(b0, b1) b0 = _mm_set_epi64x(m1, m9); b1 = _mm_set_epi64x(m14, m12)
++#define LOAD_MSG_3_3(b0, b1) b0 = _mm_set_epi64x(m5, m2); b1 = _mm_set_epi64x(m15, m4)
++#define LOAD_MSG_3_4(b0, b1) b0 = _mm_set_epi64x(m10, m6); b1 = _mm_set_epi64x(m8, m0)
++#define LOAD_MSG_4_1(b0, b1) b0 = _mm_set_epi64x(m5, m9); b1 = _mm_set_epi64x(m10, m2)
++#define LOAD_MSG_4_2(b0, b1) b0 = _mm_set_epi64x(m7, m0); b1 = _mm_set_epi64x(m15, m4)
++#define LOAD_MSG_4_3(b0, b1) b0 = _mm_set_epi64x(m11, m14); b1 = _mm_set_epi64x(m3, m6)
++#define LOAD_MSG_4_4(b0, b1) b0 = _mm_set_epi64x(m12, m1); b1 = _mm_set_epi64x(m13, m8)
++#define LOAD_MSG_5_1(b0, b1) b0 = _mm_set_epi64x(m6, m2); b1 = _mm_set_epi64x(m8, m0)
++#define LOAD_MSG_5_2(b0, b1) b0 = _mm_set_epi64x(m10, m12); b1 = _mm_set_epi64x(m3, m11)
++#define LOAD_MSG_5_3(b0, b1) b0 = _mm_set_epi64x(m7, m4); b1 = _mm_set_epi64x(m1, m15)
++#define LOAD_MSG_5_4(b0, b1) b0 = _mm_set_epi64x(m5, m13); b1 = _mm_set_epi64x(m9, m14)
++#define LOAD_MSG_6_1(b0, b1) b0 = _mm_set_epi64x(m1, m12); b1 = _mm_set_epi64x(m4, m14)
++#define LOAD_MSG_6_2(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m10, m13)
++#define LOAD_MSG_6_3(b0, b1) b0 = _mm_set_epi64x(m6, m0); b1 = _mm_set_epi64x(m8, m9)
++#define LOAD_MSG_6_4(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m2)
++#define LOAD_MSG_7_1(b0, b1) b0 = _mm_set_epi64x(m7, m13); b1 = _mm_set_epi64x(m3, m12)
++#define LOAD_MSG_7_2(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m9, m1)
++#define LOAD_MSG_7_3(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m2, m8)
++#define LOAD_MSG_7_4(b0, b1) b0 = _mm_set_epi64x(m4, m0); b1 = _mm_set_epi64x(m10, m6)
++#define LOAD_MSG_8_1(b0, b1) b0 = _mm_set_epi64x(m14, m6); b1 = _mm_set_epi64x(m0, m11)
++#define LOAD_MSG_8_2(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m8, m3)
++#define LOAD_MSG_8_3(b0, b1) b0 = _mm_set_epi64x(m13, m12); b1 = _mm_set_epi64x(m10, m1)
++#define LOAD_MSG_8_4(b0, b1) b0 = _mm_set_epi64x(m7, m2); b1 = _mm_set_epi64x(m5, m4)
++#define LOAD_MSG_9_1(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m1, m7)
++#define LOAD_MSG_9_2(b0, b1) b0 = _mm_set_epi64x(m4, m2); b1 = _mm_set_epi64x(m5, m6)
++#define LOAD_MSG_9_3(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m13, m3)
++#define LOAD_MSG_9_4(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m0, m12)
++#define LOAD_MSG_10_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4)
++#define LOAD_MSG_10_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5)
++#define LOAD_MSG_10_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12)
++#define LOAD_MSG_10_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13)
++#define LOAD_MSG_11_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9)
++#define LOAD_MSG_11_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15)
++#define LOAD_MSG_11_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11)
++#define LOAD_MSG_11_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7)
++
++
++#endif
+--- thirdparty/blake2/sse/blake2b-load-sse41.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2b-load-sse41.h
+@@ -0,0 +1,402 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2B_LOAD_SSE41_H
++#define BLAKE2B_LOAD_SSE41_H
++
++#define LOAD_MSG_0_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m0, m1); \
++b1 = _mm_unpacklo_epi64(m2, m3); \
++} while(0)
++
++
++#define LOAD_MSG_0_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m0, m1); \
++b1 = _mm_unpackhi_epi64(m2, m3); \
++} while(0)
++
++
++#define LOAD_MSG_0_3(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m4, m5); \
++b1 = _mm_unpacklo_epi64(m6, m7); \
++} while(0)
++
++
++#define LOAD_MSG_0_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m4, m5); \
++b1 = _mm_unpackhi_epi64(m6, m7); \
++} while(0)
++
++
++#define LOAD_MSG_1_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m7, m2); \
++b1 = _mm_unpackhi_epi64(m4, m6); \
++} while(0)
++
++
++#define LOAD_MSG_1_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m5, m4); \
++b1 = _mm_alignr_epi8(m3, m7, 8); \
++} while(0)
++
++
++#define LOAD_MSG_1_3(b0, b1) \
++do \
++{ \
++b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \
++b1 = _mm_unpackhi_epi64(m5, m2); \
++} while(0)
++
++
++#define LOAD_MSG_1_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m6, m1); \
++b1 = _mm_unpackhi_epi64(m3, m1); \
++} while(0)
++
++
++#define LOAD_MSG_2_1(b0, b1) \
++do \
++{ \
++b0 = _mm_alignr_epi8(m6, m5, 8); \
++b1 = _mm_unpackhi_epi64(m2, m7); \
++} while(0)
++
++
++#define LOAD_MSG_2_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m4, m0); \
++b1 = _mm_blend_epi16(m1, m6, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_2_3(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m5, m1, 0xF0); \
++b1 = _mm_unpackhi_epi64(m3, m4); \
++} while(0)
++
++
++#define LOAD_MSG_2_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m7, m3); \
++b1 = _mm_alignr_epi8(m2, m0, 8); \
++} while(0)
++
++
++#define LOAD_MSG_3_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m3, m1); \
++b1 = _mm_unpackhi_epi64(m6, m5); \
++} while(0)
++
++
++#define LOAD_MSG_3_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m4, m0); \
++b1 = _mm_unpacklo_epi64(m6, m7); \
++} while(0)
++
++
++#define LOAD_MSG_3_3(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m1, m2, 0xF0); \
++b1 = _mm_blend_epi16(m2, m7, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_3_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m3, m5); \
++b1 = _mm_unpacklo_epi64(m0, m4); \
++} while(0)
++
++
++#define LOAD_MSG_4_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m4, m2); \
++b1 = _mm_unpacklo_epi64(m1, m5); \
++} while(0)
++
++
++#define LOAD_MSG_4_2(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m0, m3, 0xF0); \
++b1 = _mm_blend_epi16(m2, m7, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_4_3(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m7, m5, 0xF0); \
++b1 = _mm_blend_epi16(m3, m1, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_4_4(b0, b1) \
++do \
++{ \
++b0 = _mm_alignr_epi8(m6, m0, 8); \
++b1 = _mm_blend_epi16(m4, m6, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_5_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m1, m3); \
++b1 = _mm_unpacklo_epi64(m0, m4); \
++} while(0)
++
++
++#define LOAD_MSG_5_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m6, m5); \
++b1 = _mm_unpackhi_epi64(m5, m1); \
++} while(0)
++
++
++#define LOAD_MSG_5_3(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m2, m3, 0xF0); \
++b1 = _mm_unpackhi_epi64(m7, m0); \
++} while(0)
++
++
++#define LOAD_MSG_5_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m6, m2); \
++b1 = _mm_blend_epi16(m7, m4, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_6_1(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m6, m0, 0xF0); \
++b1 = _mm_unpacklo_epi64(m7, m2); \
++} while(0)
++
++
++#define LOAD_MSG_6_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m2, m7); \
++b1 = _mm_alignr_epi8(m5, m6, 8); \
++} while(0)
++
++
++#define LOAD_MSG_6_3(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m0, m3); \
++b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \
++} while(0)
++
++
++#define LOAD_MSG_6_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m3, m1); \
++b1 = _mm_blend_epi16(m1, m5, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_7_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m6, m3); \
++b1 = _mm_blend_epi16(m6, m1, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_7_2(b0, b1) \
++do \
++{ \
++b0 = _mm_alignr_epi8(m7, m5, 8); \
++b1 = _mm_unpackhi_epi64(m0, m4); \
++} while(0)
++
++
++#define LOAD_MSG_7_3(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m2, m7); \
++b1 = _mm_unpacklo_epi64(m4, m1); \
++} while(0)
++
++
++#define LOAD_MSG_7_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m0, m2); \
++b1 = _mm_unpacklo_epi64(m3, m5); \
++} while(0)
++
++
++#define LOAD_MSG_8_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m3, m7); \
++b1 = _mm_alignr_epi8(m0, m5, 8); \
++} while(0)
++
++
++#define LOAD_MSG_8_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m7, m4); \
++b1 = _mm_alignr_epi8(m4, m1, 8); \
++} while(0)
++
++
++#define LOAD_MSG_8_3(b0, b1) \
++do \
++{ \
++b0 = m6; \
++b1 = _mm_alignr_epi8(m5, m0, 8); \
++} while(0)
++
++
++#define LOAD_MSG_8_4(b0, b1) \
++do \
++{ \
++b0 = _mm_blend_epi16(m1, m3, 0xF0); \
++b1 = m2; \
++} while(0)
++
++
++#define LOAD_MSG_9_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m5, m4); \
++b1 = _mm_unpackhi_epi64(m3, m0); \
++} while(0)
++
++
++#define LOAD_MSG_9_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m1, m2); \
++b1 = _mm_blend_epi16(m3, m2, 0xF0); \
++} while(0)
++
++
++#define LOAD_MSG_9_3(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m7, m4); \
++b1 = _mm_unpackhi_epi64(m1, m6); \
++} while(0)
++
++
++#define LOAD_MSG_9_4(b0, b1) \
++do \
++{ \
++b0 = _mm_alignr_epi8(m7, m5, 8); \
++b1 = _mm_unpacklo_epi64(m6, m0); \
++} while(0)
++
++
++#define LOAD_MSG_10_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m0, m1); \
++b1 = _mm_unpacklo_epi64(m2, m3); \
++} while(0)
++
++
++#define LOAD_MSG_10_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m0, m1); \
++b1 = _mm_unpackhi_epi64(m2, m3); \
++} while(0)
++
++
++#define LOAD_MSG_10_3(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m4, m5); \
++b1 = _mm_unpacklo_epi64(m6, m7); \
++} while(0)
++
++
++#define LOAD_MSG_10_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpackhi_epi64(m4, m5); \
++b1 = _mm_unpackhi_epi64(m6, m7); \
++} while(0)
++
++
++#define LOAD_MSG_11_1(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m7, m2); \
++b1 = _mm_unpackhi_epi64(m4, m6); \
++} while(0)
++
++
++#define LOAD_MSG_11_2(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m5, m4); \
++b1 = _mm_alignr_epi8(m3, m7, 8); \
++} while(0)
++
++
++#define LOAD_MSG_11_3(b0, b1) \
++do \
++{ \
++b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \
++b1 = _mm_unpackhi_epi64(m5, m2); \
++} while(0)
++
++
++#define LOAD_MSG_11_4(b0, b1) \
++do \
++{ \
++b0 = _mm_unpacklo_epi64(m6, m1); \
++b1 = _mm_unpackhi_epi64(m3, m1); \
++} while(0)
++
++
++#endif
+--- thirdparty/blake2/sse/blake2b-round.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2b-round.h
+@@ -0,0 +1,157 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2B_ROUND_H
++#define BLAKE2B_ROUND_H
++
++#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) )
++#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
++
++#define TOF(reg) _mm_castsi128_ps((reg))
++#define TOI(reg) _mm_castps_si128((reg))
++
++#define LIKELY(x) __builtin_expect((x),1)
++
++
++/* Microarchitecture-specific macros */
++#ifndef HAVE_XOP
++#ifdef HAVE_SSSE3
++#define _mm_roti_epi64(x, c) \
++ (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \
++ : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \
++ : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \
++ : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \
++ : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c))))
++#else
++#define _mm_roti_epi64(r, c) _mm_xor_si128(_mm_srli_epi64( (r), -(c) ),_mm_slli_epi64( (r), 64-(-(c)) ))
++#endif
++#else
++/* ... */
++#endif
++
++
++
++#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
++ row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \
++ row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \
++ \
++ row4l = _mm_xor_si128(row4l, row1l); \
++ row4h = _mm_xor_si128(row4h, row1h); \
++ \
++ row4l = _mm_roti_epi64(row4l, -32); \
++ row4h = _mm_roti_epi64(row4h, -32); \
++ \
++ row3l = _mm_add_epi64(row3l, row4l); \
++ row3h = _mm_add_epi64(row3h, row4h); \
++ \
++ row2l = _mm_xor_si128(row2l, row3l); \
++ row2h = _mm_xor_si128(row2h, row3h); \
++ \
++ row2l = _mm_roti_epi64(row2l, -24); \
++ row2h = _mm_roti_epi64(row2h, -24); \
++
++#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
++ row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \
++ row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \
++ \
++ row4l = _mm_xor_si128(row4l, row1l); \
++ row4h = _mm_xor_si128(row4h, row1h); \
++ \
++ row4l = _mm_roti_epi64(row4l, -16); \
++ row4h = _mm_roti_epi64(row4h, -16); \
++ \
++ row3l = _mm_add_epi64(row3l, row4l); \
++ row3h = _mm_add_epi64(row3h, row4h); \
++ \
++ row2l = _mm_xor_si128(row2l, row3l); \
++ row2h = _mm_xor_si128(row2h, row3h); \
++ \
++ row2l = _mm_roti_epi64(row2l, -63); \
++ row2h = _mm_roti_epi64(row2h, -63); \
++
++#if defined(HAVE_SSSE3)
++#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
++ t0 = _mm_alignr_epi8(row2h, row2l, 8); \
++ t1 = _mm_alignr_epi8(row2l, row2h, 8); \
++ row2l = t0; \
++ row2h = t1; \
++ \
++ t0 = row3l; \
++ row3l = row3h; \
++ row3h = t0; \
++ \
++ t0 = _mm_alignr_epi8(row4h, row4l, 8); \
++ t1 = _mm_alignr_epi8(row4l, row4h, 8); \
++ row4l = t1; \
++ row4h = t0;
++
++#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
++ t0 = _mm_alignr_epi8(row2l, row2h, 8); \
++ t1 = _mm_alignr_epi8(row2h, row2l, 8); \
++ row2l = t0; \
++ row2h = t1; \
++ \
++ t0 = row3l; \
++ row3l = row3h; \
++ row3h = t0; \
++ \
++ t0 = _mm_alignr_epi8(row4l, row4h, 8); \
++ t1 = _mm_alignr_epi8(row4h, row4l, 8); \
++ row4l = t1; \
++ row4h = t0;
++#else
++
++#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
++ t0 = row4l;\
++ t1 = row2l;\
++ row4l = row3l;\
++ row3l = row3h;\
++ row3h = row4l;\
++ row4l = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t0, t0)); \
++ row4h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row4h, row4h)); \
++ row2l = _mm_unpackhi_epi64(row2l, _mm_unpacklo_epi64(row2h, row2h)); \
++ row2h = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(t1, t1))
++
++#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
++ t0 = row3l;\
++ row3l = row3h;\
++ row3h = t0;\
++ t0 = row2l;\
++ t1 = row4l;\
++ row2l = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(row2l, row2l)); \
++ row2h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row2h, row2h)); \
++ row4l = _mm_unpackhi_epi64(row4l, _mm_unpacklo_epi64(row4h, row4h)); \
++ row4h = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t1, t1))
++
++#endif
++
++#if defined(HAVE_SSE41)
++#include "blake2b-load-sse41.h"
++#else
++#include "blake2b-load-sse2.h"
++#endif
++
++#define ROUND(r) \
++ LOAD_MSG_ ##r ##_1(b0, b1); \
++ G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
++ LOAD_MSG_ ##r ##_2(b0, b1); \
++ G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
++ DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
++ LOAD_MSG_ ##r ##_3(b0, b1); \
++ G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
++ LOAD_MSG_ ##r ##_4(b0, b1); \
++ G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
++ UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h);
++
++#endif
+--- thirdparty/blake2/sse/blake2b.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2b.c
+@@ -0,0 +1,373 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++#include "blake2-config.h"
++
++#ifdef _MSC_VER
++#include <intrin.h> /* for _mm_set_epi64x */
++#endif
++#include <emmintrin.h>
++#if defined(HAVE_SSSE3)
++#include <tmmintrin.h>
++#endif
++#if defined(HAVE_SSE41)
++#include <smmintrin.h>
++#endif
++#if defined(HAVE_AVX)
++#include <immintrin.h>
++#endif
++#if defined(HAVE_XOP)
++#include <x86intrin.h>
++#endif
++
++#include "blake2b-round.h"
++
++static const uint64_t blake2b_IV[8] =
++{
++ 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
++ 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
++ 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
++ 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
++};
++
++/* Some helper functions */
++static void blake2b_set_lastnode( blake2b_state *S )
++{
++ S->f[1] = (uint64_t)-1;
++}
++
++static int blake2b_is_lastblock( const blake2b_state *S )
++{
++ return S->f[0] != 0;
++}
++
++static void blake2b_set_lastblock( blake2b_state *S )
++{
++ if( S->last_node ) blake2b_set_lastnode( S );
++
++ S->f[0] = (uint64_t)-1;
++}
++
++static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
++{
++ S->t[0] += inc;
++ S->t[1] += ( S->t[0] < inc );
++}
++
++/* init xors IV with input parameter block */
++int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
++{
++ size_t i;
++ /*blake2b_init0( S ); */
++ const unsigned char * v = ( const unsigned char * )( blake2b_IV );
++ const unsigned char * p = ( const unsigned char * )( P );
++ unsigned char * h = ( unsigned char * )( S->h );
++ /* IV XOR ParamBlock */
++ memset( S, 0, sizeof( blake2b_state ) );
++
++ for( i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
++
++ S->outlen = P->digest_length;
++ return 0;
++}
++
++
++/* Some sort of default parameter block initialization, for sequential blake2b */
++int blake2b_init( blake2b_state *S, size_t outlen )
++{
++ blake2b_param P[1];
++
++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = 0;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store32( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++
++ return blake2b_init_param( S, P );
++}
++
++int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ blake2b_param P[1];
++
++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
++
++ if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store32( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++
++ if( blake2b_init_param( S, P ) < 0 )
++ return 0;
++
++ {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset( block, 0, BLAKE2B_BLOCKBYTES );
++ memcpy( block, key, keylen );
++ blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
++{
++ __m128i row1l, row1h;
++ __m128i row2l, row2h;
++ __m128i row3l, row3h;
++ __m128i row4l, row4h;
++ __m128i b0, b1;
++ __m128i t0, t1;
++#if defined(HAVE_SSSE3) && !defined(HAVE_XOP)
++ const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 );
++ const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 );
++#endif
++#if defined(HAVE_SSE41)
++ const __m128i m0 = LOADU( block + 00 );
++ const __m128i m1 = LOADU( block + 16 );
++ const __m128i m2 = LOADU( block + 32 );
++ const __m128i m3 = LOADU( block + 48 );
++ const __m128i m4 = LOADU( block + 64 );
++ const __m128i m5 = LOADU( block + 80 );
++ const __m128i m6 = LOADU( block + 96 );
++ const __m128i m7 = LOADU( block + 112 );
++#else
++ const uint64_t m0 = load64(block + 0 * sizeof(uint64_t));
++ const uint64_t m1 = load64(block + 1 * sizeof(uint64_t));
++ const uint64_t m2 = load64(block + 2 * sizeof(uint64_t));
++ const uint64_t m3 = load64(block + 3 * sizeof(uint64_t));
++ const uint64_t m4 = load64(block + 4 * sizeof(uint64_t));
++ const uint64_t m5 = load64(block + 5 * sizeof(uint64_t));
++ const uint64_t m6 = load64(block + 6 * sizeof(uint64_t));
++ const uint64_t m7 = load64(block + 7 * sizeof(uint64_t));
++ const uint64_t m8 = load64(block + 8 * sizeof(uint64_t));
++ const uint64_t m9 = load64(block + 9 * sizeof(uint64_t));
++ const uint64_t m10 = load64(block + 10 * sizeof(uint64_t));
++ const uint64_t m11 = load64(block + 11 * sizeof(uint64_t));
++ const uint64_t m12 = load64(block + 12 * sizeof(uint64_t));
++ const uint64_t m13 = load64(block + 13 * sizeof(uint64_t));
++ const uint64_t m14 = load64(block + 14 * sizeof(uint64_t));
++ const uint64_t m15 = load64(block + 15 * sizeof(uint64_t));
++#endif
++ row1l = LOADU( &S->h[0] );
++ row1h = LOADU( &S->h[2] );
++ row2l = LOADU( &S->h[4] );
++ row2h = LOADU( &S->h[6] );
++ row3l = LOADU( &blake2b_IV[0] );
++ row3h = LOADU( &blake2b_IV[2] );
++ row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) );
++ row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) );
++ ROUND( 0 );
++ ROUND( 1 );
++ ROUND( 2 );
++ ROUND( 3 );
++ ROUND( 4 );
++ ROUND( 5 );
++ ROUND( 6 );
++ ROUND( 7 );
++ ROUND( 8 );
++ ROUND( 9 );
++ ROUND( 10 );
++ ROUND( 11 );
++ row1l = _mm_xor_si128( row3l, row1l );
++ row1h = _mm_xor_si128( row3h, row1h );
++ STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) );
++ STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) );
++ row2l = _mm_xor_si128( row4l, row2l );
++ row2h = _mm_xor_si128( row4h, row2h );
++ STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) );
++ STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) );
++}
++
++
++int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ if( inlen > 0 )
++ {
++ size_t left = S->buflen;
++ size_t fill = BLAKE2B_BLOCKBYTES - left;
++ if( inlen > fill )
++ {
++ S->buflen = 0;
++ memcpy( S->buf + left, in, fill ); /* Fill buffer */
++ blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
++ blake2b_compress( S, S->buf ); /* Compress */
++ in += fill; inlen -= fill;
++ while(inlen > BLAKE2B_BLOCKBYTES) {
++ blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
++ blake2b_compress( S, in );
++ in += BLAKE2B_BLOCKBYTES;
++ inlen -= BLAKE2B_BLOCKBYTES;
++ }
++ }
++ memcpy( S->buf + S->buflen, in, inlen );
++ S->buflen += inlen;
++ }
++ return 0;
++}
++
++
++int blake2b_final( blake2b_state *S, void *out, size_t outlen )
++{
++ if( out == NULL || outlen < S->outlen )
++ return -1;
++
++ if( blake2b_is_lastblock( S ) )
++ return -1;
++
++ blake2b_increment_counter( S, S->buflen );
++ blake2b_set_lastblock( S );
++ memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
++ blake2b_compress( S, S->buf );
++
++ memcpy( out, &S->h[0], S->outlen );
++ return 0;
++}
++
++
++int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ blake2b_state S[1];
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if( NULL == key && keylen > 0 ) return -1;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ if( keylen )
++ {
++ if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
++ }
++ else
++ {
++ if( blake2b_init( S, outlen ) < 0 ) return -1;
++ }
++
++ blake2b_update( S, ( const uint8_t * )in, inlen );
++ blake2b_final( S, out, outlen );
++ return 0;
++}
++
++int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
++ return blake2b(out, outlen, in, inlen, key, keylen);
++}
++
++#if defined(SUPERCOP)
++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
++{
++ return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
++}
++#endif
++
++#if defined(BLAKE2B_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2B_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2b_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2b_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2b_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/sse/blake2bp.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2bp.c
+@@ -0,0 +1,361 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <stdint.h>
++
++#if defined(_OPENMP)
++#include <omp.h>
++#endif
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++#define PARALLELISM_DEGREE 4
++
++/*
++ blake2b_init_param defaults to setting the expecting output length
++ from the digest_length parameter block field.
++
++ In some cases, however, we do not want this, as the output length
++ of these instances is given by inner_length instead.
++*/
++static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P )
++{
++ int err = blake2b_init_param(S, P);
++ S->outlen = P->inner_length;
++ return err;
++}
++
++static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset )
++{
++ blake2b_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ P->leaf_length = 0;
++ P->node_offset = offset;
++ P->xof_length = 0;
++ P->node_depth = 0;
++ P->inner_length = BLAKE2B_OUTBYTES;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2bp_init_leaf_param( S, P );
++}
++
++static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
++{
++ blake2b_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ P->leaf_length = 0;
++ P->node_offset = 0;
++ P->xof_length = 0;
++ P->node_depth = 1;
++ P->inner_length = BLAKE2B_OUTBYTES;
++ memset( P->reserved, 0, sizeof( P->reserved ) );
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2b_init_param( S, P );
++}
++
++
++int blake2bp_init( blake2bp_state *S, size_t outlen )
++{
++ size_t i;
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2bp_init_root( S->R, outlen, 0 ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ return 0;
++}
++
++int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2bp_init_root( S->R, outlen, keylen ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset( block, 0, BLAKE2B_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++
++int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ size_t left = S->buflen;
++ size_t fill = sizeof( S->buf ) - left;
++ size_t i;
++
++ if( left && inlen >= fill )
++ {
++ memcpy( S->buf + left, in, fill );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
++
++ in += fill;
++ inlen -= fill;
++ left = 0;
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2B_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
++ {
++ blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ }
++ }
++
++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
++ inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++
++ if( inlen > 0 )
++ memcpy( S->buf + left, in, inlen );
++
++ S->buflen = left + inlen;
++ return 0;
++}
++
++
++
++int blake2bp_final( blake2bp_state *S, void *out, size_t outlen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
++ size_t i;
++
++ if(out == NULL || outlen < S->outlen) {
++ return -1;
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ {
++ if( S->buflen > i * BLAKE2B_BLOCKBYTES )
++ {
++ size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
++
++ if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
++
++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
++ }
++
++ blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
++
++ return blake2b_final( S->R, out, S->outlen );
++}
++
++int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
++ blake2b_state S[PARALLELISM_DEGREE][1];
++ blake2b_state FS[1];
++ size_t i;
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if( NULL == key && keylen > 0 ) return -1;
++
++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2B_KEYBYTES ) return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
++
++ if( keylen > 0 )
++ {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset( block, 0, BLAKE2B_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2B_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
++ {
++ blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
++ }
++
++ if( inlen__ > i * BLAKE2B_BLOCKBYTES )
++ {
++ const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES;
++ const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
++ blake2b_update( S[i], in__, len );
++ }
++
++ blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES );
++ }
++
++ if( blake2bp_init_root( FS, outlen, keylen ) < 0 )
++ return -1;
++
++ FS->last_node = 1; /* Mark as last node */
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
++
++ return blake2b_final( FS, out, outlen );
++}
++
++
++#if defined(BLAKE2BP_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2B_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2B_OUTBYTES];
++ blake2bp_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2bp_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2bp_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/sse/blake2s-load-sse2.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2s-load-sse2.h
+@@ -0,0 +1,60 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2S_LOAD_SSE2_H
++#define BLAKE2S_LOAD_SSE2_H
++
++#define LOAD_MSG_0_1(buf) buf = _mm_set_epi32(m6,m4,m2,m0)
++#define LOAD_MSG_0_2(buf) buf = _mm_set_epi32(m7,m5,m3,m1)
++#define LOAD_MSG_0_3(buf) buf = _mm_set_epi32(m14,m12,m10,m8)
++#define LOAD_MSG_0_4(buf) buf = _mm_set_epi32(m15,m13,m11,m9)
++#define LOAD_MSG_1_1(buf) buf = _mm_set_epi32(m13,m9,m4,m14)
++#define LOAD_MSG_1_2(buf) buf = _mm_set_epi32(m6,m15,m8,m10)
++#define LOAD_MSG_1_3(buf) buf = _mm_set_epi32(m5,m11,m0,m1)
++#define LOAD_MSG_1_4(buf) buf = _mm_set_epi32(m3,m7,m2,m12)
++#define LOAD_MSG_2_1(buf) buf = _mm_set_epi32(m15,m5,m12,m11)
++#define LOAD_MSG_2_2(buf) buf = _mm_set_epi32(m13,m2,m0,m8)
++#define LOAD_MSG_2_3(buf) buf = _mm_set_epi32(m9,m7,m3,m10)
++#define LOAD_MSG_2_4(buf) buf = _mm_set_epi32(m4,m1,m6,m14)
++#define LOAD_MSG_3_1(buf) buf = _mm_set_epi32(m11,m13,m3,m7)
++#define LOAD_MSG_3_2(buf) buf = _mm_set_epi32(m14,m12,m1,m9)
++#define LOAD_MSG_3_3(buf) buf = _mm_set_epi32(m15,m4,m5,m2)
++#define LOAD_MSG_3_4(buf) buf = _mm_set_epi32(m8,m0,m10,m6)
++#define LOAD_MSG_4_1(buf) buf = _mm_set_epi32(m10,m2,m5,m9)
++#define LOAD_MSG_4_2(buf) buf = _mm_set_epi32(m15,m4,m7,m0)
++#define LOAD_MSG_4_3(buf) buf = _mm_set_epi32(m3,m6,m11,m14)
++#define LOAD_MSG_4_4(buf) buf = _mm_set_epi32(m13,m8,m12,m1)
++#define LOAD_MSG_5_1(buf) buf = _mm_set_epi32(m8,m0,m6,m2)
++#define LOAD_MSG_5_2(buf) buf = _mm_set_epi32(m3,m11,m10,m12)
++#define LOAD_MSG_5_3(buf) buf = _mm_set_epi32(m1,m15,m7,m4)
++#define LOAD_MSG_5_4(buf) buf = _mm_set_epi32(m9,m14,m5,m13)
++#define LOAD_MSG_6_1(buf) buf = _mm_set_epi32(m4,m14,m1,m12)
++#define LOAD_MSG_6_2(buf) buf = _mm_set_epi32(m10,m13,m15,m5)
++#define LOAD_MSG_6_3(buf) buf = _mm_set_epi32(m8,m9,m6,m0)
++#define LOAD_MSG_6_4(buf) buf = _mm_set_epi32(m11,m2,m3,m7)
++#define LOAD_MSG_7_1(buf) buf = _mm_set_epi32(m3,m12,m7,m13)
++#define LOAD_MSG_7_2(buf) buf = _mm_set_epi32(m9,m1,m14,m11)
++#define LOAD_MSG_7_3(buf) buf = _mm_set_epi32(m2,m8,m15,m5)
++#define LOAD_MSG_7_4(buf) buf = _mm_set_epi32(m10,m6,m4,m0)
++#define LOAD_MSG_8_1(buf) buf = _mm_set_epi32(m0,m11,m14,m6)
++#define LOAD_MSG_8_2(buf) buf = _mm_set_epi32(m8,m3,m9,m15)
++#define LOAD_MSG_8_3(buf) buf = _mm_set_epi32(m10,m1,m13,m12)
++#define LOAD_MSG_8_4(buf) buf = _mm_set_epi32(m5,m4,m7,m2)
++#define LOAD_MSG_9_1(buf) buf = _mm_set_epi32(m1,m7,m8,m10)
++#define LOAD_MSG_9_2(buf) buf = _mm_set_epi32(m5,m6,m4,m2)
++#define LOAD_MSG_9_3(buf) buf = _mm_set_epi32(m13,m3,m9,m15)
++#define LOAD_MSG_9_4(buf) buf = _mm_set_epi32(m0,m12,m14,m11)
++
++
++#endif
+--- thirdparty/blake2/sse/blake2s-load-sse41.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2s-load-sse41.h
+@@ -0,0 +1,229 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2S_LOAD_SSE41_H
++#define BLAKE2S_LOAD_SSE41_H
++
++#define LOAD_MSG_0_1(buf) \
++buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(2,0,2,0)));
++
++#define LOAD_MSG_0_2(buf) \
++buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(3,1,3,1)));
++
++#define LOAD_MSG_0_3(buf) \
++buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(2,0,2,0)));
++
++#define LOAD_MSG_0_4(buf) \
++buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(3,1,3,1)));
++
++#define LOAD_MSG_1_1(buf) \
++t0 = _mm_blend_epi16(m1, m2, 0x0C); \
++t1 = _mm_slli_si128(m3, 4); \
++t2 = _mm_blend_epi16(t0, t1, 0xF0); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,0,3));
++
++#define LOAD_MSG_1_2(buf) \
++t0 = _mm_shuffle_epi32(m2,_MM_SHUFFLE(0,0,2,0)); \
++t1 = _mm_blend_epi16(m1,m3,0xC0); \
++t2 = _mm_blend_epi16(t0, t1, 0xF0); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
++
++#define LOAD_MSG_1_3(buf) \
++t0 = _mm_slli_si128(m1, 4); \
++t1 = _mm_blend_epi16(m2, t0, 0x30); \
++t2 = _mm_blend_epi16(m0, t1, 0xF0); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
++
++#define LOAD_MSG_1_4(buf) \
++t0 = _mm_unpackhi_epi32(m0,m1); \
++t1 = _mm_slli_si128(m3, 4); \
++t2 = _mm_blend_epi16(t0, t1, 0x0C); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
++
++#define LOAD_MSG_2_1(buf) \
++t0 = _mm_unpackhi_epi32(m2,m3); \
++t1 = _mm_blend_epi16(m3,m1,0x0C); \
++t2 = _mm_blend_epi16(t0, t1, 0x0F); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2));
++
++#define LOAD_MSG_2_2(buf) \
++t0 = _mm_unpacklo_epi32(m2,m0); \
++t1 = _mm_blend_epi16(t0, m0, 0xF0); \
++t2 = _mm_slli_si128(m3, 8); \
++buf = _mm_blend_epi16(t1, t2, 0xC0);
++
++#define LOAD_MSG_2_3(buf) \
++t0 = _mm_blend_epi16(m0, m2, 0x3C); \
++t1 = _mm_srli_si128(m1, 12); \
++t2 = _mm_blend_epi16(t0,t1,0x03); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,3,2));
++
++#define LOAD_MSG_2_4(buf) \
++t0 = _mm_slli_si128(m3, 4); \
++t1 = _mm_blend_epi16(m0, m1, 0x33); \
++t2 = _mm_blend_epi16(t1, t0, 0xC0); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(0,1,2,3));
++
++#define LOAD_MSG_3_1(buf) \
++t0 = _mm_unpackhi_epi32(m0,m1); \
++t1 = _mm_unpackhi_epi32(t0, m2); \
++t2 = _mm_blend_epi16(t1, m3, 0x0C); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2));
++
++#define LOAD_MSG_3_2(buf) \
++t0 = _mm_slli_si128(m2, 8); \
++t1 = _mm_blend_epi16(m3,m0,0x0C); \
++t2 = _mm_blend_epi16(t1, t0, 0xC0); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3));
++
++#define LOAD_MSG_3_3(buf) \
++t0 = _mm_blend_epi16(m0,m1,0x0F); \
++t1 = _mm_blend_epi16(t0, m3, 0xC0); \
++buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2));
++
++#define LOAD_MSG_3_4(buf) \
++t0 = _mm_unpacklo_epi32(m0,m2); \
++t1 = _mm_unpackhi_epi32(m1,m2); \
++buf = _mm_unpacklo_epi64(t1,t0);
++
++#define LOAD_MSG_4_1(buf) \
++t0 = _mm_unpacklo_epi64(m1,m2); \
++t1 = _mm_unpackhi_epi64(m0,m2); \
++t2 = _mm_blend_epi16(t0,t1,0x33); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3));
++
++#define LOAD_MSG_4_2(buf) \
++t0 = _mm_unpackhi_epi64(m1,m3); \
++t1 = _mm_unpacklo_epi64(m0,m1); \
++buf = _mm_blend_epi16(t0,t1,0x33);
++
++#define LOAD_MSG_4_3(buf) \
++t0 = _mm_unpackhi_epi64(m3,m1); \
++t1 = _mm_unpackhi_epi64(m2,m0); \
++buf = _mm_blend_epi16(t1,t0,0x33);
++
++#define LOAD_MSG_4_4(buf) \
++t0 = _mm_blend_epi16(m0,m2,0x03); \
++t1 = _mm_slli_si128(t0, 8); \
++t2 = _mm_blend_epi16(t1,m3,0x0F); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,0,3));
++
++#define LOAD_MSG_5_1(buf) \
++t0 = _mm_unpackhi_epi32(m0,m1); \
++t1 = _mm_unpacklo_epi32(m0,m2); \
++buf = _mm_unpacklo_epi64(t0,t1);
++
++#define LOAD_MSG_5_2(buf) \
++t0 = _mm_srli_si128(m2, 4); \
++t1 = _mm_blend_epi16(m0,m3,0x03); \
++buf = _mm_blend_epi16(t1,t0,0x3C);
++
++#define LOAD_MSG_5_3(buf) \
++t0 = _mm_blend_epi16(m1,m0,0x0C); \
++t1 = _mm_srli_si128(m3, 4); \
++t2 = _mm_blend_epi16(t0,t1,0x30); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,3,0));
++
++#define LOAD_MSG_5_4(buf) \
++t0 = _mm_unpacklo_epi64(m1,m2); \
++t1= _mm_shuffle_epi32(m3, _MM_SHUFFLE(0,2,0,1)); \
++buf = _mm_blend_epi16(t0,t1,0x33);
++
++#define LOAD_MSG_6_1(buf) \
++t0 = _mm_slli_si128(m1, 12); \
++t1 = _mm_blend_epi16(m0,m3,0x33); \
++buf = _mm_blend_epi16(t1,t0,0xC0);
++
++#define LOAD_MSG_6_2(buf) \
++t0 = _mm_blend_epi16(m3,m2,0x30); \
++t1 = _mm_srli_si128(m1, 4); \
++t2 = _mm_blend_epi16(t0,t1,0x03); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,3,0));
++
++#define LOAD_MSG_6_3(buf) \
++t0 = _mm_unpacklo_epi64(m0,m2); \
++t1 = _mm_srli_si128(m1, 4); \
++buf = _mm_shuffle_epi32(_mm_blend_epi16(t0,t1,0x0C), _MM_SHUFFLE(2,3,1,0));
++
++#define LOAD_MSG_6_4(buf) \
++t0 = _mm_unpackhi_epi32(m1,m2); \
++t1 = _mm_unpackhi_epi64(m0,t0); \
++buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2));
++
++#define LOAD_MSG_7_1(buf) \
++t0 = _mm_unpackhi_epi32(m0,m1); \
++t1 = _mm_blend_epi16(t0,m3,0x0F); \
++buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(2,0,3,1));
++
++#define LOAD_MSG_7_2(buf) \
++t0 = _mm_blend_epi16(m2,m3,0x30); \
++t1 = _mm_srli_si128(m0,4); \
++t2 = _mm_blend_epi16(t0,t1,0x03); \
++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,2,3));
++
++#define LOAD_MSG_7_3(buf) \
++t0 = _mm_unpackhi_epi64(m0,m3); \
++t1 = _mm_unpacklo_epi64(m1,m2); \
++t2 = _mm_blend_epi16(t0,t1,0x3C); \
++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,2,3,1));
++
++#define LOAD_MSG_7_4(buf) \
++t0 = _mm_unpacklo_epi32(m0,m1); \
++t1 = _mm_unpackhi_epi32(m1,m2); \
++buf = _mm_unpacklo_epi64(t0,t1);
++
++#define LOAD_MSG_8_1(buf) \
++t0 = _mm_unpackhi_epi32(m1,m3); \
++t1 = _mm_unpacklo_epi64(t0,m0); \
++t2 = _mm_blend_epi16(t1,m2,0xC0); \
++buf = _mm_shufflehi_epi16(t2,_MM_SHUFFLE(1,0,3,2));
++
++#define LOAD_MSG_8_2(buf) \
++t0 = _mm_unpackhi_epi32(m0,m3); \
++t1 = _mm_blend_epi16(m2,t0,0xF0); \
++buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(0,2,1,3));
++
++#define LOAD_MSG_8_3(buf) \
++t0 = _mm_blend_epi16(m2,m0,0x0C); \
++t1 = _mm_slli_si128(t0,4); \
++buf = _mm_blend_epi16(t1,m3,0x0F);
++
++#define LOAD_MSG_8_4(buf) \
++t0 = _mm_blend_epi16(m1,m0,0x30); \
++buf = _mm_shuffle_epi32(t0,_MM_SHUFFLE(1,0,3,2));
++
++#define LOAD_MSG_9_1(buf) \
++t0 = _mm_blend_epi16(m0,m2,0x03); \
++t1 = _mm_blend_epi16(m1,m2,0x30); \
++t2 = _mm_blend_epi16(t1,t0,0x0F); \
++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(1,3,0,2));
++
++#define LOAD_MSG_9_2(buf) \
++t0 = _mm_slli_si128(m0,4); \
++t1 = _mm_blend_epi16(m1,t0,0xC0); \
++buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(1,2,0,3));
++
++#define LOAD_MSG_9_3(buf) \
++t0 = _mm_unpackhi_epi32(m0,m3); \
++t1 = _mm_unpacklo_epi32(m2,m3); \
++t2 = _mm_unpackhi_epi64(t0,t1); \
++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(3,0,2,1));
++
++#define LOAD_MSG_9_4(buf) \
++t0 = _mm_blend_epi16(m3,m2,0xC0); \
++t1 = _mm_unpacklo_epi32(m0,m3); \
++t2 = _mm_blend_epi16(t0,t1,0x0F); \
++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,1,2,3));
++
++#endif
+--- thirdparty/blake2/sse/blake2s-load-xop.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2s-load-xop.h
+@@ -0,0 +1,191 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2S_LOAD_XOP_H
++#define BLAKE2S_LOAD_XOP_H
++
++#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */
++
++#if 0
++/* Basic VPPERM emulation, for testing purposes */
++static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel)
++{
++ const __m128i sixteen = _mm_set1_epi8(16);
++ const __m128i t0 = _mm_shuffle_epi8(src1, sel);
++ const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen));
++ const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen),
++ _mm_cmpgt_epi8(sel, sixteen)); /* (>=16) = 0xff : 00 */
++ return _mm_blendv_epi8(t0, s1, mask);
++}
++#endif
++
++#define LOAD_MSG_0_1(buf) \
++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
++
++#define LOAD_MSG_0_2(buf) \
++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) );
++
++#define LOAD_MSG_0_3(buf) \
++buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
++
++#define LOAD_MSG_0_4(buf) \
++buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) );
++
++#define LOAD_MSG_1_1(buf) \
++t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(5),TOB(0),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) );
++
++#define LOAD_MSG_1_2(buf) \
++t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(2),TOB(0),TOB(4),TOB(6)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_1_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(0),TOB(0),TOB(1)) ); \
++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_1_4(buf) \
++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(7),TOB(2),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) );
++
++#define LOAD_MSG_2_1(buf) \
++t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(1),TOB(0),TOB(7)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(4),TOB(0)) );
++
++#define LOAD_MSG_2_2(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(2),TOB(0),TOB(4)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_2_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(7),TOB(3),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) );
++
++#define LOAD_MSG_2_4(buf) \
++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(1),TOB(6),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) );
++
++#define LOAD_MSG_3_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(3),TOB(7)) ); \
++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_3_2(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(1),TOB(5)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_3_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(5),TOB(2)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_3_4(buf) \
++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \
++buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(6),TOB(0)) );
++
++#define LOAD_MSG_4_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(5),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(5)) );
++
++#define LOAD_MSG_4_2(buf) \
++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(7),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_4_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(6),TOB(0),TOB(0)) ); \
++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) );
++
++#define LOAD_MSG_4_4(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(4),TOB(0),TOB(1)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(4),TOB(0)) );
++
++#define LOAD_MSG_5_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(2)) ); \
++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_5_2(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(6),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) );
++
++#define LOAD_MSG_5_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(0),TOB(7),TOB(4)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_5_4(buf) \
++t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(5),TOB(0),TOB(1),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(5)) );
++
++#define LOAD_MSG_6_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(0),TOB(1),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(4)) );
++
++#define LOAD_MSG_6_2(buf) \
++t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(6),TOB(0),TOB(0),TOB(1)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(7),TOB(0)) );
++
++#define LOAD_MSG_6_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(5),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_6_4(buf) \
++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(3),TOB(7)) ); \
++buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_7_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(0),TOB(7),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(5)) );
++
++#define LOAD_MSG_7_2(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(5),TOB(1),TOB(0),TOB(7)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) );
++
++#define LOAD_MSG_7_3(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(2),TOB(0),TOB(0),TOB(5)) ); \
++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) );
++
++#define LOAD_MSG_7_4(buf) \
++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(6),TOB(4),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(0)) );
++
++#define LOAD_MSG_8_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \
++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) );
++
++#define LOAD_MSG_8_2(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(4),TOB(3),TOB(5),TOB(0)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(7)) );
++
++#define LOAD_MSG_8_3(buf) \
++t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(6),TOB(1),TOB(0),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(5),TOB(4)) ); \
++
++#define LOAD_MSG_8_4(buf) \
++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(4),TOB(7),TOB(2)) );
++
++#define LOAD_MSG_9_1(buf) \
++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(7),TOB(0),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(4),TOB(6)) );
++
++#define LOAD_MSG_9_2(buf) \
++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(6),TOB(4),TOB(2)) );
++
++#define LOAD_MSG_9_3(buf) \
++t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(3),TOB(5),TOB(0)) ); \
++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(7)) );
++
++#define LOAD_MSG_9_4(buf) \
++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(7)) ); \
++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(6),TOB(0)) );
++
++#endif
+--- thirdparty/blake2/sse/blake2s-round.h.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2s-round.h
+@@ -0,0 +1,88 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++#ifndef BLAKE2S_ROUND_H
++#define BLAKE2S_ROUND_H
++
++#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) )
++#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
++
++#define TOF(reg) _mm_castsi128_ps((reg))
++#define TOI(reg) _mm_castps_si128((reg))
++
++#define LIKELY(x) __builtin_expect((x),1)
++
++
++/* Microarchitecture-specific macros */
++#ifndef HAVE_XOP
++#ifdef HAVE_SSSE3
++#define _mm_roti_epi32(r, c) ( \
++ (8==-(c)) ? _mm_shuffle_epi8(r,r8) \
++ : (16==-(c)) ? _mm_shuffle_epi8(r,r16) \
++ : _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) )
++#else
++#define _mm_roti_epi32(r, c) _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) ))
++#endif
++#else
++/* ... */
++#endif
++
++
++#define G1(row1,row2,row3,row4,buf) \
++ row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \
++ row4 = _mm_xor_si128( row4, row1 ); \
++ row4 = _mm_roti_epi32(row4, -16); \
++ row3 = _mm_add_epi32( row3, row4 ); \
++ row2 = _mm_xor_si128( row2, row3 ); \
++ row2 = _mm_roti_epi32(row2, -12);
++
++#define G2(row1,row2,row3,row4,buf) \
++ row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \
++ row4 = _mm_xor_si128( row4, row1 ); \
++ row4 = _mm_roti_epi32(row4, -8); \
++ row3 = _mm_add_epi32( row3, row4 ); \
++ row2 = _mm_xor_si128( row2, row3 ); \
++ row2 = _mm_roti_epi32(row2, -7);
++
++#define DIAGONALIZE(row1,row2,row3,row4) \
++ row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(2,1,0,3) ); \
++ row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \
++ row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(0,3,2,1) );
++
++#define UNDIAGONALIZE(row1,row2,row3,row4) \
++ row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(0,3,2,1) ); \
++ row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \
++ row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(2,1,0,3) );
++
++#if defined(HAVE_XOP)
++#include "blake2s-load-xop.h"
++#elif defined(HAVE_SSE41)
++#include "blake2s-load-sse41.h"
++#else
++#include "blake2s-load-sse2.h"
++#endif
++
++#define ROUND(r) \
++ LOAD_MSG_ ##r ##_1(buf1); \
++ G1(row1,row2,row3,row4,buf1); \
++ LOAD_MSG_ ##r ##_2(buf2); \
++ G2(row1,row2,row3,row4,buf2); \
++ DIAGONALIZE(row1,row2,row3,row4); \
++ LOAD_MSG_ ##r ##_3(buf3); \
++ G1(row1,row2,row3,row4,buf3); \
++ LOAD_MSG_ ##r ##_4(buf4); \
++ G2(row1,row2,row3,row4,buf4); \
++ UNDIAGONALIZE(row1,row2,row3,row4); \
++
++#endif
+--- thirdparty/blake2/sse/blake2s.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2s.c
+@@ -0,0 +1,363 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++#include "blake2-config.h"
++
++
++#include <emmintrin.h>
++#if defined(HAVE_SSSE3)
++#include <tmmintrin.h>
++#endif
++#if defined(HAVE_SSE41)
++#include <smmintrin.h>
++#endif
++#if defined(HAVE_AVX)
++#include <immintrin.h>
++#endif
++#if defined(HAVE_XOP)
++#include <x86intrin.h>
++#endif
++
++#include "blake2s-round.h"
++
++static const uint32_t blake2s_IV[8] =
++{
++ 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
++ 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
++};
++
++/* Some helper functions */
++static void blake2s_set_lastnode( blake2s_state *S )
++{
++ S->f[1] = (uint32_t)-1;
++}
++
++static int blake2s_is_lastblock( const blake2s_state *S )
++{
++ return S->f[0] != 0;
++}
++
++static void blake2s_set_lastblock( blake2s_state *S )
++{
++ if( S->last_node ) blake2s_set_lastnode( S );
++
++ S->f[0] = (uint32_t)-1;
++}
++
++static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
++{
++ uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0];
++ t += inc;
++ S->t[0] = ( uint32_t )( t >> 0 );
++ S->t[1] = ( uint32_t )( t >> 32 );
++}
++
++/* init2 xors IV with input parameter block */
++int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
++{
++ size_t i;
++ /*blake2s_init0( S ); */
++ const uint8_t * v = ( const uint8_t * )( blake2s_IV );
++ const uint8_t * p = ( const uint8_t * )( P );
++ uint8_t * h = ( uint8_t * )( S->h );
++ /* IV XOR ParamBlock */
++ memset( S, 0, sizeof( blake2s_state ) );
++
++ for( i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
++
++ S->outlen = P->digest_length;
++ return 0;
++}
++
++
++/* Some sort of default parameter block initialization, for sequential blake2s */
++int blake2s_init( blake2s_state *S, size_t outlen )
++{
++ blake2s_param P[1];
++
++ /* Move interval verification here? */
++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = 0;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store16( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++
++ return blake2s_init_param( S, P );
++}
++
++
++int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ blake2s_param P[1];
++
++ /* Move interval verification here? */
++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
++
++ if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = 1;
++ P->depth = 1;
++ store32( &P->leaf_length, 0 );
++ store32( &P->node_offset, 0 );
++ store16( &P->xof_length, 0 );
++ P->node_depth = 0;
++ P->inner_length = 0;
++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++
++ if( blake2s_init_param( S, P ) < 0 )
++ return -1;
++
++ {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset( block, 0, BLAKE2S_BLOCKBYTES );
++ memcpy( block, key, keylen );
++ blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++
++static void blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] )
++{
++ __m128i row1, row2, row3, row4;
++ __m128i buf1, buf2, buf3, buf4;
++#if defined(HAVE_SSE41)
++ __m128i t0, t1;
++#if !defined(HAVE_XOP)
++ __m128i t2;
++#endif
++#endif
++ __m128i ff0, ff1;
++#if defined(HAVE_SSSE3) && !defined(HAVE_XOP)
++ const __m128i r8 = _mm_set_epi8( 12, 15, 14, 13, 8, 11, 10, 9, 4, 7, 6, 5, 0, 3, 2, 1 );
++ const __m128i r16 = _mm_set_epi8( 13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2 );
++#endif
++#if defined(HAVE_SSE41)
++ const __m128i m0 = LOADU( block + 00 );
++ const __m128i m1 = LOADU( block + 16 );
++ const __m128i m2 = LOADU( block + 32 );
++ const __m128i m3 = LOADU( block + 48 );
++#else
++ const uint32_t m0 = load32(block + 0 * sizeof(uint32_t));
++ const uint32_t m1 = load32(block + 1 * sizeof(uint32_t));
++ const uint32_t m2 = load32(block + 2 * sizeof(uint32_t));
++ const uint32_t m3 = load32(block + 3 * sizeof(uint32_t));
++ const uint32_t m4 = load32(block + 4 * sizeof(uint32_t));
++ const uint32_t m5 = load32(block + 5 * sizeof(uint32_t));
++ const uint32_t m6 = load32(block + 6 * sizeof(uint32_t));
++ const uint32_t m7 = load32(block + 7 * sizeof(uint32_t));
++ const uint32_t m8 = load32(block + 8 * sizeof(uint32_t));
++ const uint32_t m9 = load32(block + 9 * sizeof(uint32_t));
++ const uint32_t m10 = load32(block + 10 * sizeof(uint32_t));
++ const uint32_t m11 = load32(block + 11 * sizeof(uint32_t));
++ const uint32_t m12 = load32(block + 12 * sizeof(uint32_t));
++ const uint32_t m13 = load32(block + 13 * sizeof(uint32_t));
++ const uint32_t m14 = load32(block + 14 * sizeof(uint32_t));
++ const uint32_t m15 = load32(block + 15 * sizeof(uint32_t));
++#endif
++ row1 = ff0 = LOADU( &S->h[0] );
++ row2 = ff1 = LOADU( &S->h[4] );
++ row3 = _mm_loadu_si128( (__m128i const *)&blake2s_IV[0] );
++ row4 = _mm_xor_si128( _mm_loadu_si128( (__m128i const *)&blake2s_IV[4] ), LOADU( &S->t[0] ) );
++ ROUND( 0 );
++ ROUND( 1 );
++ ROUND( 2 );
++ ROUND( 3 );
++ ROUND( 4 );
++ ROUND( 5 );
++ ROUND( 6 );
++ ROUND( 7 );
++ ROUND( 8 );
++ ROUND( 9 );
++ STOREU( &S->h[0], _mm_xor_si128( ff0, _mm_xor_si128( row1, row3 ) ) );
++ STOREU( &S->h[4], _mm_xor_si128( ff1, _mm_xor_si128( row2, row4 ) ) );
++}
++
++int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ if( inlen > 0 )
++ {
++ size_t left = S->buflen;
++ size_t fill = BLAKE2S_BLOCKBYTES - left;
++ if( inlen > fill )
++ {
++ S->buflen = 0;
++ memcpy( S->buf + left, in, fill ); /* Fill buffer */
++ blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
++ blake2s_compress( S, S->buf ); /* Compress */
++ in += fill; inlen -= fill;
++ while(inlen > BLAKE2S_BLOCKBYTES) {
++ blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
++ blake2s_compress( S, in );
++ in += BLAKE2S_BLOCKBYTES;
++ inlen -= BLAKE2S_BLOCKBYTES;
++ }
++ }
++ memcpy( S->buf + S->buflen, in, inlen );
++ S->buflen += inlen;
++ }
++ return 0;
++}
++
++int blake2s_final( blake2s_state *S, void *out, size_t outlen )
++{
++ uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
++ size_t i;
++
++ if( out == NULL || outlen < S->outlen )
++ return -1;
++
++ if( blake2s_is_lastblock( S ) )
++ return -1;
++
++ blake2s_increment_counter( S, (uint32_t)S->buflen );
++ blake2s_set_lastblock( S );
++ memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
++ blake2s_compress( S, S->buf );
++
++ for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
++ store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
++
++ memcpy( out, buffer, S->outlen );
++ secure_zero_memory( buffer, sizeof(buffer) );
++ return 0;
++}
++
++/* inlen, at least, should be uint64_t. Others can be size_t. */
++int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ blake2s_state S[1];
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if ( NULL == key && keylen > 0) return -1;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ if( keylen > 0 )
++ {
++ if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
++ }
++ else
++ {
++ if( blake2s_init( S, outlen ) < 0 ) return -1;
++ }
++
++ blake2s_update( S, ( const uint8_t * )in, inlen );
++ blake2s_final( S, out, outlen );
++ return 0;
++}
++
++#if defined(SUPERCOP)
++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
++{
++ return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
++}
++#endif
++
++#if defined(BLAKE2S_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2S_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2s_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2s_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2s_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/sse/blake2sp.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2sp.c
+@@ -0,0 +1,358 @@
++/*
++ BLAKE2 reference source code package - optimized C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdlib.h>
++#include <string.h>
++#include <stdio.h>
++
++#if defined(_OPENMP)
++#include <omp.h>
++#endif
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++#define PARALLELISM_DEGREE 8
++
++/*
++ blake2sp_init_param defaults to setting the expecting output length
++ from the digest_length parameter block field.
++
++ In some cases, however, we do not want this, as the output length
++ of these instances is given by inner_length instead.
++*/
++static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P )
++{
++ int err = blake2s_init_param(S, P);
++ S->outlen = P->inner_length;
++ return err;
++}
++
++static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset )
++{
++ blake2s_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ P->leaf_length = 0;
++ P->node_offset = offset;
++ P->xof_length = 0;
++ P->node_depth = 0;
++ P->inner_length = BLAKE2S_OUTBYTES;
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2sp_init_leaf_param( S, P );
++}
++
++static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
++{
++ blake2s_param P[1];
++ P->digest_length = (uint8_t)outlen;
++ P->key_length = (uint8_t)keylen;
++ P->fanout = PARALLELISM_DEGREE;
++ P->depth = 2;
++ P->leaf_length = 0;
++ P->node_offset = 0;
++ P->xof_length = 0;
++ P->node_depth = 1;
++ P->inner_length = BLAKE2S_OUTBYTES;
++ memset( P->salt, 0, sizeof( P->salt ) );
++ memset( P->personal, 0, sizeof( P->personal ) );
++ return blake2s_init_param( S, P );
++}
++
++
++int blake2sp_init( blake2sp_state *S, size_t outlen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2sp_init_root( S->R, outlen, 0 ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ return 0;
++}
++
++int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
++{
++ size_t i;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ memset( S->buf, 0, sizeof( S->buf ) );
++ S->buflen = 0;
++ S->outlen = outlen;
++
++ if( blake2sp_init_root( S->R, outlen, keylen ) < 0 )
++ return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S->R->last_node = 1;
++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
++ {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset( block, 0, BLAKE2S_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
++ }
++ return 0;
++}
++
++
++int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen )
++{
++ const unsigned char * in = (const unsigned char *)pin;
++ size_t left = S->buflen;
++ size_t fill = sizeof( S->buf ) - left;
++ size_t i;
++
++ if( left && inlen >= fill )
++ {
++ memcpy( S->buf + left, in, fill );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
++
++ in += fill;
++ inlen -= fill;
++ left = 0;
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2S_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
++ {
++ blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ }
++ }
++
++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
++ inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++
++ if( inlen > 0 )
++ memcpy( S->buf + left, in, inlen );
++
++ S->buflen = left + inlen;
++ return 0;
++}
++
++
++int blake2sp_final( blake2sp_state *S, void *out, size_t outlen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
++ size_t i;
++
++ if(out == NULL || outlen < S->outlen) {
++ return -1;
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ {
++ if( S->buflen > i * BLAKE2S_BLOCKBYTES )
++ {
++ size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
++
++ if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
++
++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
++ }
++
++ blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
++ }
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
++
++ return blake2s_final( S->R, out, S->outlen );
++}
++
++
++int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
++{
++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
++ blake2s_state S[PARALLELISM_DEGREE][1];
++ blake2s_state FS[1];
++ size_t i;
++
++ /* Verify parameters */
++ if ( NULL == in && inlen > 0 ) return -1;
++
++ if ( NULL == out ) return -1;
++
++ if ( NULL == key && keylen > 0) return -1;
++
++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
++
++ if( keylen > BLAKE2S_KEYBYTES ) return -1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
++
++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
++
++ if( keylen > 0 )
++ {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset( block, 0, BLAKE2S_BLOCKBYTES );
++ memcpy( block, key, keylen );
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
++
++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
++ }
++
++#if defined(_OPENMP)
++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
++#else
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++#endif
++ {
++#if defined(_OPENMP)
++ size_t i = omp_get_thread_num();
++#endif
++ size_t inlen__ = inlen;
++ const unsigned char *in__ = ( const unsigned char * )in;
++ in__ += i * BLAKE2S_BLOCKBYTES;
++
++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
++ {
++ blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES );
++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
++ }
++
++ if( inlen__ > i * BLAKE2S_BLOCKBYTES )
++ {
++ const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES;
++ const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
++ blake2s_update( S[i], in__, len );
++ }
++
++ blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES );
++ }
++
++ if( blake2sp_init_root( FS, outlen, keylen ) < 0 )
++ return -1;
++
++ FS->last_node = 1;
++
++ for( i = 0; i < PARALLELISM_DEGREE; ++i )
++ blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
++
++ return blake2s_final( FS, out, outlen );
++}
++
++#if defined(BLAKE2SP_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2S_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step;
++
++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
++ key[i] = ( uint8_t )i;
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ buf[i] = ( uint8_t )i;
++
++ /* Test simple API */
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
++ {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
++
++ if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
++ uint8_t hash[BLAKE2S_OUTBYTES];
++ blake2sp_state S;
++ uint8_t * p = buf;
++ size_t mlen = i;
++ int err = 0;
++
++ if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2sp_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2sp_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/sse/blake2xb.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2xb.c
+@@ -0,0 +1,241 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>.
++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>.
++
++ You may use this under the terms of the CC0, the OpenSSL Licence, or
++ the Apache Public License 2.0, at your option. The terms of these
++ licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++int blake2xb_init( blake2xb_state *S, const size_t outlen ) {
++ return blake2xb_init_key(S, outlen, NULL, 0);
++}
++
++int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen)
++{
++ if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) {
++ return -1;
++ }
++
++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
++ return -1;
++ }
++
++ if (NULL == key && keylen > 0) {
++ return -1;
++ }
++
++ /* Initialize parameter block */
++ S->P->digest_length = BLAKE2B_OUTBYTES;
++ S->P->key_length = keylen;
++ S->P->fanout = 1;
++ S->P->depth = 1;
++ store32( &S->P->leaf_length, 0 );
++ store32( &S->P->node_offset, 0 );
++ store32( &S->P->xof_length, outlen );
++ S->P->node_depth = 0;
++ S->P->inner_length = 0;
++ memset( S->P->reserved, 0, sizeof( S->P->reserved ) );
++ memset( S->P->salt, 0, sizeof( S->P->salt ) );
++ memset( S->P->personal, 0, sizeof( S->P->personal ) );
++
++ if( blake2b_init_param( S->S, S->P ) < 0 ) {
++ return -1;
++ }
++
++ if (keylen > 0) {
++ uint8_t block[BLAKE2B_BLOCKBYTES];
++ memset(block, 0, BLAKE2B_BLOCKBYTES);
++ memcpy(block, key, keylen);
++ blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES);
++ secure_zero_memory(block, BLAKE2B_BLOCKBYTES);
++ }
++ return 0;
++}
++
++int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) {
++ return blake2b_update( S->S, in, inlen );
++}
++
++int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) {
++
++ blake2b_state C[1];
++ blake2b_param P[1];
++ uint32_t xof_length = load32(&S->P->xof_length);
++ uint8_t root[BLAKE2B_BLOCKBYTES];
++ size_t i;
++
++ if (NULL == out) {
++ return -1;
++ }
++
++ /* outlen must match the output size defined in xof_length, */
++ /* unless it was -1, in which case anything goes except 0. */
++ if(xof_length == 0xFFFFFFFFUL) {
++ if(outlen == 0) {
++ return -1;
++ }
++ } else {
++ if(outlen != xof_length) {
++ return -1;
++ }
++ }
++
++ /* Finalize the root hash */
++ if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) {
++ return -1;
++ }
++
++ /* Set common block structure values */
++ /* Copy values from parent instance, and only change the ones below */
++ memcpy(P, S->P, sizeof(blake2b_param));
++ P->key_length = 0;
++ P->fanout = 0;
++ P->depth = 0;
++ store32(&P->leaf_length, BLAKE2B_OUTBYTES);
++ P->inner_length = BLAKE2B_OUTBYTES;
++ P->node_depth = 0;
++
++ for (i = 0; outlen > 0; ++i) {
++ const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
++ /* Initialize state */
++ P->digest_length = block_size;
++ store32(&P->node_offset, i);
++ blake2b_init_param(C, P);
++ /* Process key if needed */
++ blake2b_update(C, root, BLAKE2B_OUTBYTES);
++ if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) {
++ return -1;
++ }
++ outlen -= block_size;
++ }
++ secure_zero_memory(root, sizeof(root));
++ secure_zero_memory(P, sizeof(P));
++ secure_zero_memory(C, sizeof(C));
++ /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */
++ return 0;
++
++}
++
++int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
++{
++ blake2xb_state S[1];
++
++ /* Verify parameters */
++ if (NULL == in && inlen > 0)
++ return -1;
++
++ if (NULL == out)
++ return -1;
++
++ if (NULL == key && keylen > 0)
++ return -1;
++
++ if (keylen > BLAKE2B_KEYBYTES)
++ return -1;
++
++ if (outlen == 0)
++ return -1;
++
++ /* Initialize the root block structure */
++ if (blake2xb_init_key(S, outlen, key, keylen) < 0) {
++ return -1;
++ }
++
++ /* Absorb the input message */
++ blake2xb_update(S, in, inlen);
++
++ /* Compute the root node of the tree and the final hash using the counter construction */
++ return blake2xb_final(S, out, outlen);
++}
++
++#if defined(BLAKE2XB_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2B_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step, outlen;
++
++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) {
++ key[i] = ( uint8_t )i;
++ }
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
++ buf[i] = ( uint8_t )i;
++ }
++
++ /* Testing length of ouputs rather than inputs */
++ /* (Test of input lengths mostly covered by blake2s tests) */
++
++ /* Test simple API */
++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
++ {
++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
++ if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) {
++ goto fail;
++ }
++
++ if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
++ uint8_t hash[BLAKE2_KAT_LENGTH];
++ blake2xb_state S;
++ uint8_t * p = buf;
++ size_t mlen = BLAKE2_KAT_LENGTH;
++ int err = 0;
++
++ if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2xb_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2xb_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2xb_final(&S, hash, outlen)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/sse/blake2xs.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/blake2xs.c
+@@ -0,0 +1,239 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>.
++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>.
++
++ You may use this under the terms of the CC0, the OpenSSL Licence, or
++ the Apache Public License 2.0, at your option. The terms of these
++ licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <string.h>
++#include <stdio.h>
++
++#include "blake2.h"
++#include "blake2-impl.h"
++
++int blake2xs_init( blake2xs_state *S, const size_t outlen ) {
++ return blake2xs_init_key(S, outlen, NULL, 0);
++}
++
++int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen )
++{
++ if ( outlen == 0 || outlen > 0xFFFFUL ) {
++ return -1;
++ }
++
++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
++ return -1;
++ }
++
++ if (NULL == key && keylen > 0) {
++ return -1;
++ }
++
++ /* Initialize parameter block */
++ S->P->digest_length = BLAKE2S_OUTBYTES;
++ S->P->key_length = keylen;
++ S->P->fanout = 1;
++ S->P->depth = 1;
++ store32( &S->P->leaf_length, 0 );
++ store32( &S->P->node_offset, 0 );
++ store16( &S->P->xof_length, outlen );
++ S->P->node_depth = 0;
++ S->P->inner_length = 0;
++ memset( S->P->salt, 0, sizeof( S->P->salt ) );
++ memset( S->P->personal, 0, sizeof( S->P->personal ) );
++
++ if( blake2s_init_param( S->S, S->P ) < 0 ) {
++ return -1;
++ }
++
++ if (keylen > 0) {
++ uint8_t block[BLAKE2S_BLOCKBYTES];
++ memset(block, 0, BLAKE2S_BLOCKBYTES);
++ memcpy(block, key, keylen);
++ blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES);
++ secure_zero_memory(block, BLAKE2S_BLOCKBYTES);
++ }
++ return 0;
++}
++
++int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) {
++ return blake2s_update( S->S, in, inlen );
++}
++
++int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) {
++
++ blake2s_state C[1];
++ blake2s_param P[1];
++ uint16_t xof_length = load16(&S->P->xof_length);
++ uint8_t root[BLAKE2S_BLOCKBYTES];
++ size_t i;
++
++ if (NULL == out) {
++ return -1;
++ }
++
++ /* outlen must match the output size defined in xof_length, */
++ /* unless it was -1, in which case anything goes except 0. */
++ if(xof_length == 0xFFFFUL) {
++ if(outlen == 0) {
++ return -1;
++ }
++ } else {
++ if(outlen != xof_length) {
++ return -1;
++ }
++ }
++
++ /* Finalize the root hash */
++ if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) {
++ return -1;
++ }
++
++ /* Set common block structure values */
++ /* Copy values from parent instance, and only change the ones below */
++ memcpy(P, S->P, sizeof(blake2s_param));
++ P->key_length = 0;
++ P->fanout = 0;
++ P->depth = 0;
++ store32(&P->leaf_length, BLAKE2S_OUTBYTES);
++ P->inner_length = BLAKE2S_OUTBYTES;
++ P->node_depth = 0;
++
++ for (i = 0; outlen > 0; ++i) {
++ const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
++ /* Initialize state */
++ P->digest_length = block_size;
++ store32(&P->node_offset, i);
++ blake2s_init_param(C, P);
++ /* Process key if needed */
++ blake2s_update(C, root, BLAKE2S_OUTBYTES);
++ if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) {
++ return -1;
++ }
++ outlen -= block_size;
++ }
++ secure_zero_memory(root, sizeof(root));
++ secure_zero_memory(P, sizeof(P));
++ secure_zero_memory(C, sizeof(C));
++ /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */
++ return 0;
++}
++
++int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
++{
++ blake2xs_state S[1];
++
++ /* Verify parameters */
++ if (NULL == in && inlen > 0)
++ return -1;
++
++ if (NULL == out)
++ return -1;
++
++ if (NULL == key && keylen > 0)
++ return -1;
++
++ if (keylen > BLAKE2S_KEYBYTES)
++ return -1;
++
++ if (outlen == 0)
++ return -1;
++
++ /* Initialize the root block structure */
++ if (blake2xs_init_key(S, outlen, key, keylen) < 0) {
++ return -1;
++ }
++
++ /* Absorb the input message */
++ blake2xs_update(S, in, inlen);
++
++ /* Compute the root node of the tree and the final hash using the counter construction */
++ return blake2xs_final(S, out, outlen);
++}
++
++#if defined(BLAKE2XS_SELFTEST)
++#include <string.h>
++#include "blake2-kat.h"
++int main( void )
++{
++ uint8_t key[BLAKE2S_KEYBYTES];
++ uint8_t buf[BLAKE2_KAT_LENGTH];
++ size_t i, step, outlen;
++
++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) {
++ key[i] = ( uint8_t )i;
++ }
++
++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
++ buf[i] = ( uint8_t )i;
++ }
++
++ /* Testing length of ouputs rather than inputs */
++ /* (Test of input lengths mostly covered by blake2s tests) */
++
++ /* Test simple API */
++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
++ {
++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
++ if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) {
++ goto fail;
++ }
++
++ if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) )
++ {
++ goto fail;
++ }
++ }
++
++ /* Test streaming API */
++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
++ uint8_t hash[BLAKE2_KAT_LENGTH];
++ blake2xs_state S;
++ uint8_t * p = buf;
++ size_t mlen = BLAKE2_KAT_LENGTH;
++ int err = 0;
++
++ if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) {
++ goto fail;
++ }
++
++ while (mlen >= step) {
++ if ( (err = blake2xs_update(&S, p, step)) < 0 ) {
++ goto fail;
++ }
++ mlen -= step;
++ p += step;
++ }
++ if ( (err = blake2xs_update(&S, p, mlen)) < 0) {
++ goto fail;
++ }
++ if ( (err = blake2xs_final(&S, hash, outlen)) < 0) {
++ goto fail;
++ }
++
++ if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) {
++ goto fail;
++ }
++ }
++ }
++
++ puts( "ok" );
++ return 0;
++fail:
++ puts("error");
++ return -1;
++}
++#endif
+--- thirdparty/blake2/sse/genkat-c.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/genkat-c.c
+@@ -0,0 +1,139 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "blake2.h"
++
++#define STR_(x) #x
++#define STR(x) STR_(x)
++
++#define LENGTH 256
++
++#define MAKE_KAT(name, size_prefix) \
++ do { \
++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
++ "_OUTBYTES] = \n{\n"); \
++ \
++ for (i = 0; i < LENGTH; ++i) { \
++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++#define MAKE_KEYED_KAT(name, size_prefix) \
++ do { \
++ printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
++ "_OUTBYTES] = \n{\n"); \
++ \
++ for (i = 0; i < LENGTH; ++i) { \
++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++#define MAKE_XOF_KAT(name) \
++ do { \
++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
++ \
++ for (i = 1; i <= LENGTH; ++i) { \
++ name(hash, i, in, LENGTH, NULL, 0); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ for (j = i; j < LENGTH; ++j) \
++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++#define MAKE_XOF_KEYED_KAT(name, size_prefix) \
++ do { \
++ printf("static const uint8_t " #name \
++ "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
++ \
++ for (i = 1; i <= LENGTH; ++i) { \
++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
++ printf("\t{\n\t\t"); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("0x%02X%s", hash[j], \
++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ for (j = i; j < LENGTH; ++j) \
++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
++ \
++ printf("\t},\n"); \
++ } \
++ \
++ printf("};\n\n\n\n\n"); \
++ } while (0)
++
++int main() {
++ uint8_t key[64] = {0};
++ uint8_t in[LENGTH] = {0};
++ uint8_t hash[LENGTH] = {0};
++ size_t i, j;
++
++ for (i = 0; i < sizeof(in); ++i)
++ in[i] = i;
++
++ for (i = 0; i < sizeof(key); ++i)
++ key[i] = i;
++
++ puts("#ifndef BLAKE2_KAT_H\n"
++ "#define BLAKE2_KAT_H\n\n\n"
++ "#include <stdint.h>\n\n"
++ "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n");
++ MAKE_KAT(blake2s, BLAKE2S);
++ MAKE_KEYED_KAT(blake2s, BLAKE2S);
++ MAKE_KAT(blake2b, BLAKE2B);
++ MAKE_KEYED_KAT(blake2b, BLAKE2B);
++ MAKE_KAT(blake2sp, BLAKE2S);
++ MAKE_KEYED_KAT(blake2sp, BLAKE2S);
++ MAKE_KAT(blake2bp, BLAKE2B);
++ MAKE_KEYED_KAT(blake2bp, BLAKE2B);
++ MAKE_XOF_KAT(blake2xs);
++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S);
++ MAKE_XOF_KAT(blake2xb);
++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B);
++ puts("#endif");
++ return 0;
++}
+--- thirdparty/blake2/sse/genkat-json.c.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/genkat-json.c
+@@ -0,0 +1,154 @@
++/*
++ BLAKE2 reference source code package - reference C implementations
++
++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
++ your option. The terms of these licenses can be found at:
++
++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
++ - OpenSSL license : https://www.openssl.org/source/license.html
++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
++
++ More information about the BLAKE2 hash function can be found at
++ https://blake2.net.
++*/
++
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "blake2.h"
++
++#define STR_(x) #x
++#define STR(x) STR_(x)
++
++#define LENGTH 256
++
++#define MAKE_KAT(name, size_prefix, first) \
++ do { \
++ for (i = 0; i < LENGTH; ++i) { \
++ printf("%s\n{\n", i == 0 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \"\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++#define MAKE_KEYED_KAT(name, size_prefix, first) \
++ do { \
++ for (i = 0; i < LENGTH; ++i) { \
++ printf("%s\n{\n", i == 0 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \""); \
++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
++ printf("%02x", key[j]); \
++ printf("\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
++ \
++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++#define MAKE_XOF_KAT(name, first) \
++ do { \
++ for (i = 1; i <= LENGTH; ++i) { \
++ printf("%s\n{\n", i == 1 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < LENGTH; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \"\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, i, in, LENGTH, NULL, 0); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \
++ do { \
++ for (i = 1; i <= LENGTH; ++i) { \
++ printf("%s\n{\n", i == 1 && first ? "" : ","); \
++ \
++ printf(" \"hash\": \"" #name "\",\n"); \
++ printf(" \"in\": \""); \
++ for (j = 0; j < LENGTH; ++j) \
++ printf("%02x", in[j]); \
++ \
++ printf("\",\n"); \
++ printf(" \"key\": \""); \
++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
++ printf("%02x", key[j]); \
++ printf("\",\n"); \
++ printf(" \"out\": \""); \
++ \
++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
++ \
++ for (j = 0; j < i; ++j) \
++ printf("%02x", hash[j]); \
++ printf("\"\n"); \
++ printf("}"); \
++ } \
++ } while (0)
++
++int main() {
++ uint8_t key[64] = {0};
++ uint8_t in[LENGTH] = {0};
++ uint8_t hash[LENGTH] = {0};
++ size_t i, j;
++
++ for (i = 0; i < sizeof(in); ++i)
++ in[i] = i;
++
++ for (i = 0; i < sizeof(key); ++i)
++ key[i] = i;
++
++ printf("[");
++ MAKE_KAT(blake2s, BLAKE2S, 1);
++ MAKE_KEYED_KAT(blake2s, BLAKE2S, 0);
++ MAKE_KAT(blake2b, BLAKE2B, 0);
++ MAKE_KEYED_KAT(blake2b, BLAKE2B, 0);
++ MAKE_KAT(blake2sp, BLAKE2S, 0);
++ MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0);
++ MAKE_KAT(blake2bp, BLAKE2B, 0);
++ MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0);
++ MAKE_XOF_KAT(blake2xs, 0);
++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0);
++ MAKE_XOF_KAT(blake2xb, 0);
++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0);
++ printf("\n]\n");
++ fflush(stdout);
++ return 0;
++}
+--- thirdparty/blake2/sse/makefile.orig 2025-09-03 12:27:32 UTC
++++ thirdparty/blake2/sse/makefile
+@@ -0,0 +1,40 @@
++CC=gcc
++CFLAGS=-O3 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long
++BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb
++
++all: $(BLAKEBINS) check
++
++blake2s: blake2s.c
++ $(CC) blake2s.c -o $@ $(CFLAGS) -DBLAKE2S_SELFTEST
++
++blake2b: blake2b.c
++ $(CC) blake2b.c -o $@ $(CFLAGS) -DBLAKE2B_SELFTEST
++
++blake2sp: blake2sp.c blake2s.c
++ $(CC) blake2sp.c blake2s.c -o $@ $(CFLAGS) -DBLAKE2SP_SELFTEST
++
++blake2bp: blake2bp.c blake2b.c
++ $(CC) blake2bp.c blake2b.c -o $@ $(CFLAGS) -DBLAKE2BP_SELFTEST
++
++blake2xs: blake2xs.c blake2s.c
++ $(CC) blake2xs.c blake2s.c -o $@ $(CFLAGS) -DBLAKE2XS_SELFTEST
++
++blake2xb: blake2xb.c blake2b.c
++ $(CC) blake2xb.c blake2b.c -o $@ $(CFLAGS) -DBLAKE2XB_SELFTEST
++
++check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb
++ ./blake2s
++ ./blake2b
++ ./blake2sp
++ ./blake2bp
++ ./blake2xs
++ ./blake2xb
++
++kat:
++ $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
++ $(CC) $(CFLAGS) -g -o genkat-json genkat-json.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
++ ./genkat-c > blake2-kat.h
++ ./genkat-json > blake2-kat.json
++
++clean:
++ rm -rf *.o genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS)
diff --git a/games/palomino/Makefile b/games/palomino/Makefile
deleted file mode 100644
index bfb7415f4539..000000000000
--- a/games/palomino/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-PORTNAME= palomino
-PORTVERSION= 20131231
-PORTREVISION= 10
-CATEGORIES= games
-MASTER_SITES= SF/palomino-sim
-DISTFILES= ${PORTNAME}_src_${PORTVERSION}.txz \
- ${PORTNAME}_data_misc_${MISC_VER}${EXTRACT_SUFX} \
- ${PORTNAME}_data_models_${MODELS_VER}${EXTRACT_SUFX} \
- ${PORTNAME}_data_sounds_${SOUNDS_VER}${EXTRACT_SUFX} \
- ${PORTNAME}_data_terrain_${TERRAIN_VER}${EXTRACT_SUFX}
-
-MAINTAINER= ports@FreeBSD.org
-COMMENT= Action flight simulation computer program using OSG
-WWW= https://www.palomino3d.org/
-
-LICENSE= GPLv2
-LICENSE_FILE= ${WRKSRC}/LICENSE_GNU_GPL_2.txt
-
-DEPRECATED= Obsolete and abandoneed, last release in 2013, not playable
-EXPIRATION_DATE=2025-09-10
-
-LIB_DEPENDS= libosg.so:graphics/osg34
-
-USES= alias compiler:c++11-lang cmake:insource,noninja gl lua:51 tar:xz
-USE_CXXSTD= gnu++98
-USE_GL= gl glu
-
-DESKTOP_ENTRIES= "Palomino" "" "${PORTNAME}" \
- "${PORTNAME}" "Game;ArcadeGame;" ""
-
-WRKSRC= ${WRKDIR}/${PORTNAME}
-
-PORTDOCS= *
-
-OPTIONS_DEFINE= DOCS GUI PLIB SDL
-OPTIONS_DEFAULT=GUI SDL
-OPTIONS_SUB= yes
-
-GUI_DESC= Enable FLTK GUI
-PLIB_DESC= Enable sound support through plib
-
-GUI_LIB_DEPENDS= libfltk.so:x11-toolkits/fltk
-PLIB_BUILD_DEPENDS= ${LOCALBASE}/lib/libplibsl.a:x11-toolkits/plib
-SDL_USES= sdl
-SDL_USE= SDL=sdl,mixer
-
-MISC_VER= 20091027
-MODELS_VER= 20090615
-SOUNDS_VER= 20080704
-TERRAIN_VER= 20080206
-
-post-patch:
- @${FIND} ${WRKSRC}/CMakeModules -type f -print0 | ${XARGS} -0 \
- ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g'
- @${REINPLACE_CMD} -e '/ rt / d' ${WRKSRC}/CMakeModules/libraries.cmake
- @${REINPLACE_CMD} -e '/COMMAND/ s|lua|${LUA_CMD}|' \
- ${WRKSRC}/build/lua_bind/CMakeLists.txt
- @${REINPLACE_CMD} -e '/FIND_PACKAGE(/ s|)| REQUIRED)|' \
- ${WRKSRC}/CMakeModules/libraries.cmake
- @${REINPLACE_CMD} -e '/COMPILE_WITH_OSSIM/ d' ${WRKSRC}/CMakeLists.txt
-
-# Please see MOVED entry devel/linux-js||2013-06-04
- @${REINPLACE_CMD} -e '/COMPILE_WITH_LINUX_JOYSTICK/ d' ${WRKSRC}/CMakeLists.txt
-
- @${REINPLACE_CMD} -e 's|string sDataDir|&="${DATADIR}/data/"|'\
- ${WRKSRC}/src/base/conf.cc
- @${REINPLACE_CMD} -e '/LUABIND_SCRIPTS_DIR/ s|scripts|${DATADIR}/&|' \
- ${WRKSRC}/src/lua_bind/defs.hh
- @${REINPLACE_CMD} -e 's|doc/html/|${DOCSDIR}/|' ${WRKSRC}/src/gui/gui.cc
-
- @${REINPLACE_CMD} -e 's/computeBound/computeBoundingBox/g' \
- ${WRKSRC}/src/object/object.cc \
- ${WRKSRC}/src/fx/partsys_medium.cc
-
- @${REINPLACE_CMD} -e 's/CameraNode/Camera/g' \
- ${WRKSRC}/src/hud/hud.cc \
- ${WRKSRC}/src/hud/hud.hh \
- ${WRKSRC}/src/hud/hud_text.cc
-
- @${REINPLACE_CMD} -e '/std::make_pair/ s,<.*>,,' \
- ${WRKSRC}/src/collision/collision.cc \
- ${WRKSRC}/src/fx/image_cache.cc \
- ${WRKSRC}/src/graph/model_cache.cc \
- ${WRKSRC}/src/hud/font.cc \
- ${WRKSRC}/src/lua_bind/lua.cc \
- ${WRKSRC}/src/object/dyna.cc \
- ${WRKSRC}/src/sky/sky.cc \
- ${WRKSRC}/src/sky/sky_dome.cc \
- ${WRKSRC}/src/sky/sky_dome.hh \
- ${WRKSRC}/src/sky/sun.hh \
- ${WRKSRC}/src/sound/sound_base.cc
-
-post-patch-SDL-off:
- @${REINPLACE_CMD} -e '/COMPILE_WITH_SDL/ d' ${WRKSRC}/CMakeLists.txt
-
-post-patch-PLIB-off:
- @${REINPLACE_CMD} -e '/COMPILE_WITH_PLIB/ d' ${WRKSRC}/CMakeLists.txt
-
-post-patch-GUI-off:
- @${REINPLACE_CMD} -e '/COMPILE_WITH_FLTK/ d' ${WRKSRC}/CMakeLists.txt
-
-post-install:
- @${MKDIR} ${STAGEDIR}${DATADIR}
- @(cd ${WRKSRC} && ${COPYTREE_SHARE} "data scripts" ${STAGEDIR}${DATADIR})
-# DOCS are used from within the game, so this is unconditional
- @${MKDIR} ${STAGEDIR}${DOCSDIR}
- @(cd ${WRKSRC}/doc/html && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
-
- ${LN} -sf ../../${DOCSDIR_REL}/images/palominoLogo.png \
- ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.png
-
-.include <bsd.port.mk>
diff --git a/games/palomino/distinfo b/games/palomino/distinfo
deleted file mode 100644
index 752cb47c1f07..000000000000
--- a/games/palomino/distinfo
+++ /dev/null
@@ -1,10 +0,0 @@
-SHA256 (palomino_src_20131231.txz) = 9dfa62f3a340637518e346824643e75fa8f320fe0dee951e028df6b64b9d1e2c
-SIZE (palomino_src_20131231.txz) = 572412
-SHA256 (palomino_data_misc_20091027.tar.xz) = 63bee11652e227c0e37b08bf82b395ef7d2a50671ec4b8803242ba2415a6418d
-SIZE (palomino_data_misc_20091027.tar.xz) = 616848
-SHA256 (palomino_data_models_20090615.tar.xz) = 9a7915ce64df46a780ce4b869665b10e3071d0b4499a46b03f3bf08613402894
-SIZE (palomino_data_models_20090615.tar.xz) = 28110056
-SHA256 (palomino_data_sounds_20080704.tar.xz) = 3ca093744cf3056f3ea2b5eebf62127c30e57e8c233c9e17af4fed4f33b61bae
-SIZE (palomino_data_sounds_20080704.tar.xz) = 488576
-SHA256 (palomino_data_terrain_20080206.tar.xz) = b2818e3a56fcedfdcf8dde4de106b04b5cf696db09a1fb743f6b5f4c7e4a496c
-SIZE (palomino_data_terrain_20080206.tar.xz) = 35801076
diff --git a/games/palomino/files/patch-src_input_device__keyboard__osg.cc b/games/palomino/files/patch-src_input_device__keyboard__osg.cc
deleted file mode 100644
index ffdbbc17b941..000000000000
--- a/games/palomino/files/patch-src_input_device__keyboard__osg.cc
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/input/device_keyboard_osg.cc.orig 2012-10-26 01:35:57 UTC
-+++ src/input/device_keyboard_osg.cc
-@@ -105,12 +105,6 @@ KeyboardDeviceOSG::HandlerOSG::handle( c
- }
- }
-
--void
--KeyboardDeviceOSG::HandlerOSG::accept( osgGA::GUIEventHandlerVisitor& v )
--{
-- v.visit( *this );
--}
--
- } // namespace input
-
- #endif // COMPILE_OSG
diff --git a/games/palomino/files/patch-src_input_device__keyboard__osg.hh b/games/palomino/files/patch-src_input_device__keyboard__osg.hh
deleted file mode 100644
index 2d9e18b13ff8..000000000000
--- a/games/palomino/files/patch-src_input_device__keyboard__osg.hh
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/input/device_keyboard_osg.hh.orig 2009-11-22 23:05:48 UTC
-+++ src/input/device_keyboard_osg.hh
-@@ -57,7 +57,6 @@ private:
- HandlerOSG( void ) { }
- virtual ~HandlerOSG() { }
- virtual bool handle( const osgGA::GUIEventAdapter& event, osgGA::GUIActionAdapter& action );
-- virtual void accept( osgGA::GUIEventHandlerVisitor& visitor );
- };
- };
-
diff --git a/games/palomino/files/patch-src_input_device__mouse__osg.cc b/games/palomino/files/patch-src_input_device__mouse__osg.cc
deleted file mode 100644
index 18c0ce5f3fa3..000000000000
--- a/games/palomino/files/patch-src_input_device__mouse__osg.cc
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/input/device_mouse_osg.cc.orig 2012-10-26 01:35:57 UTC
-+++ src/input/device_mouse_osg.cc
-@@ -145,12 +145,6 @@ MouseDeviceOSG::HandlerOSG::handle( cons
- }
- }
-
--void
--MouseDeviceOSG::HandlerOSG::accept( osgGA::GUIEventHandlerVisitor& v )
--{
-- v.visit( *this );
--}
--
- } // namespace input
-
- #endif // COMPILE_OSG
diff --git a/games/palomino/files/patch-src_input_device__mouse__osg.hh b/games/palomino/files/patch-src_input_device__mouse__osg.hh
deleted file mode 100644
index aa7b51ed381e..000000000000
--- a/games/palomino/files/patch-src_input_device__mouse__osg.hh
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/input/device_mouse_osg.hh.orig 2011-12-14 01:56:48 UTC
-+++ src/input/device_mouse_osg.hh
-@@ -41,7 +41,6 @@ private:
- HandlerOSG( void ) { }
- virtual ~HandlerOSG() { }
- virtual bool handle( const osgGA::GUIEventAdapter& event, osgGA::GUIActionAdapter& action );
-- virtual void accept( osgGA::GUIEventHandlerVisitor& visitor );
- };
- };
-
diff --git a/games/palomino/pkg-descr b/games/palomino/pkg-descr
deleted file mode 100644
index 1732e3a11b30..000000000000
--- a/games/palomino/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-Palomino is a flight simulation computer program. Version 3 renders using
-OpenSceneGraph. OSG provides the ability to render satellite imagery.
diff --git a/games/palomino/pkg-plist b/games/palomino/pkg-plist
deleted file mode 100644
index 1a0a36884aa8..000000000000
--- a/games/palomino/pkg-plist
+++ /dev/null
@@ -1,442 +0,0 @@
-bin/palomino
-%%DATADIR%%/data/fonts/README.txt
-%%DATADIR%%/data/fonts/arial.ttf
-%%DATADIR%%/data/fonts/masque.ttf
-%%DATADIR%%/data/joystick.conf
-%%DATADIR%%/data/models/README.txt
-%%DATADIR%%/data/models/a4/README.txt
-%%DATADIR%%/data/models/a4/a4-blue-0.png
-%%DATADIR%%/data/models/a4/a4-blue-1.png
-%%DATADIR%%/data/models/a4/a4-blue-2.png
-%%DATADIR%%/data/models/a4/a4-blue-3.png
-%%DATADIR%%/data/models/a4/a4-blue-4.png
-%%DATADIR%%/data/models/a4/a4-blue-5.png
-%%DATADIR%%/data/models/a4/a4-blue-6.png
-%%DATADIR%%/data/models/a4/a4-blue-7.png
-%%DATADIR%%/data/models/a4/a4.ac.gz
-%%DATADIR%%/data/models/corsair/README.txt
-%%DATADIR%%/data/models/corsair/alt.ac
-%%DATADIR%%/data/models/corsair/asi.ac
-%%DATADIR%%/data/models/corsair/blackout.ac
-%%DATADIR%%/data/models/corsair/blaze.ac
-%%DATADIR%%/data/models/corsair/blaze.png
-%%DATADIR%%/data/models/corsair/clock.ac
-%%DATADIR%%/data/models/corsair/corsair.ac.gz
-%%DATADIR%%/data/models/corsair/crosshair.png
-%%DATADIR%%/data/models/corsair/f4u-1.png
-%%DATADIR%%/data/models/corsair/f4u-2.png
-%%DATADIR%%/data/models/corsair/f4u-3.png
-%%DATADIR%%/data/models/corsair/f4u-4.png
-%%DATADIR%%/data/models/corsair/fastpdisk.png
-%%DATADIR%%/data/models/corsair/gunsight.ac
-%%DATADIR%%/data/models/corsair/hunter-asi.png
-%%DATADIR%%/data/models/corsair/hunter-large-bezel.png
-%%DATADIR%%/data/models/corsair/logo.png
-%%DATADIR%%/data/models/corsair/logo1.png
-%%DATADIR%%/data/models/corsair/logos.ac
-%%DATADIR%%/data/models/corsair/man.ac
-%%DATADIR%%/data/models/corsair/number.png
-%%DATADIR%%/data/models/corsair/pdisk.ac
-%%DATADIR%%/data/models/corsair/pilot-b.ac
-%%DATADIR%%/data/models/corsair/pilot1.png
-%%DATADIR%%/data/models/corsair/puff.ac
-%%DATADIR%%/data/models/corsair/puff.png
-%%DATADIR%%/data/models/corsair/remote.ac
-%%DATADIR%%/data/models/corsair/slowpdisk.png
-%%DATADIR%%/data/models/corsair/tach.ac
-%%DATADIR%%/data/models/corsair/temp.ac
-%%DATADIR%%/data/models/corsair/tracer.ac
-%%DATADIR%%/data/models/corsair/transparent.ac
-%%DATADIR%%/data/models/corsair/turn.ac
-%%DATADIR%%/data/models/corsair/vac.ac
-%%DATADIR%%/data/models/corsair/vsi.ac
-%%DATADIR%%/data/models/f14/README.txt
-%%DATADIR%%/data/models/f14/common.png
-%%DATADIR%%/data/models/f14/common2.png
-%%DATADIR%%/data/models/f14/f14b.osg.gz
-%%DATADIR%%/data/models/f14/grip.png
-%%DATADIR%%/data/models/f14/pilot-handle.png
-%%DATADIR%%/data/models/f14/side1.png
-%%DATADIR%%/data/models/f14/side2.png
-%%DATADIR%%/data/models/f14/topbottom1.png
-%%DATADIR%%/data/models/f14/topbottom2.png
-%%DATADIR%%/data/models/f15/F15CCockpit.png
-%%DATADIR%%/data/models/f15/F15CNose.png
-%%DATADIR%%/data/models/f15/F15CRudder.png
-%%DATADIR%%/data/models/f15/F15CSide.png
-%%DATADIR%%/data/models/f15/f15c.osg.gz
-%%DATADIR%%/data/models/f16/README.txt
-%%DATADIR%%/data/models/f16/f16.osg.gz
-%%DATADIR%%/data/models/f16/f16.png
-%%DATADIR%%/data/models/f16/f16trans.png
-%%DATADIR%%/data/models/f16/sidewinder.ac
-%%DATADIR%%/data/models/f18/f18.osg.gz
-%%DATADIR%%/data/models/f18/f18cockpit.png
-%%DATADIR%%/data/models/f18/f18tail.png
-%%DATADIR%%/data/models/f18/f18top.png
-%%DATADIR%%/data/models/f86/README.txt
-%%DATADIR%%/data/models/f86/blackout.ac
-%%DATADIR%%/data/models/f86/droptank.ac
-%%DATADIR%%/data/models/f86/f86f.ac.gz
-%%DATADIR%%/data/models/f86/pylon.ac
-%%DATADIR%%/data/models/f86/sabre-1.png
-%%DATADIR%%/data/models/f86/sabre-3.png
-%%DATADIR%%/data/models/f86/transparent.ac
-%%DATADIR%%/data/models/kc135/kc135.ac.gz
-%%DATADIR%%/data/models/kc135/kc135.png
-%%DATADIR%%/data/models/mirage2000/mirage2000.osg.gz
-%%DATADIR%%/data/models/mirage2000/mirage2000.png
-%%DATADIR%%/data/models/mirage2000/mirage2000bottom.png
-%%DATADIR%%/data/models/misc/aim9.ac.gz
-%%DATADIR%%/data/models/misc/aim9.png
-%%DATADIR%%/data/models/misc/crashTruck.ac.gz
-%%DATADIR%%/data/models/misc/lighthouse.ac.gz
-%%DATADIR%%/data/models/misc/lighthouse.png
-%%DATADIR%%/data/models/misc/missileLauncher.osg.gz
-%%DATADIR%%/data/models/misc/observatory.ac.gz
-%%DATADIR%%/data/models/misc/observatory.png
-%%DATADIR%%/data/models/misc/parachute.osg.gz
-%%DATADIR%%/data/models/misc/parachute.png
-%%DATADIR%%/data/models/misc/radar.ac.gz
-%%DATADIR%%/data/models/misc/radome.ac.gz
-%%DATADIR%%/data/models/misc/radome.png
-%%DATADIR%%/data/models/misc/sailboat.ac.gz
-%%DATADIR%%/data/models/misc/sailboat.png
-%%DATADIR%%/data/models/misc/trailerLauncher.osg.gz
-%%DATADIR%%/data/models/misc/ufo.ac.gz
-%%DATADIR%%/data/models/misc/warehouse.ac.gz
-%%DATADIR%%/data/models/misc/warehouse.png
-%%DATADIR%%/data/models/nimitz/catapult.png
-%%DATADIR%%/data/models/nimitz/crew_1.png
-%%DATADIR%%/data/models/nimitz/crew_2.png
-%%DATADIR%%/data/models/nimitz/crew_3.png
-%%DATADIR%%/data/models/nimitz/deck-stripe.png
-%%DATADIR%%/data/models/nimitz/deck_1.png
-%%DATADIR%%/data/models/nimitz/flag.png
-%%DATADIR%%/data/models/nimitz/holdback_marking.png
-%%DATADIR%%/data/models/nimitz/hull_left.png
-%%DATADIR%%/data/models/nimitz/hull_left1.png
-%%DATADIR%%/data/models/nimitz/hullright.png
-%%DATADIR%%/data/models/nimitz/hullright2.png
-%%DATADIR%%/data/models/nimitz/island1.png
-%%DATADIR%%/data/models/nimitz/island2_lm.png
-%%DATADIR%%/data/models/nimitz/island3.png
-%%DATADIR%%/data/models/nimitz/island_68.png
-%%DATADIR%%/data/models/nimitz/island_69.png
-%%DATADIR%%/data/models/nimitz/nimitz.osg.gz
-%%DATADIR%%/data/models/nimitz/rainbow_10.png
-%%DATADIR%%/data/models/nimitz/rainbow_11.png
-%%DATADIR%%/data/models/nimitz/rainbow_2.png
-%%DATADIR%%/data/models/nimitz/rainbow_21.png
-%%DATADIR%%/data/models/nimitz/rainbow_31.png
-%%DATADIR%%/data/models/nimitz/rainbow_4.png
-%%DATADIR%%/data/models/nimitz/rainbow_41.png
-%%DATADIR%%/data/models/nimitz/rainbow_5.png
-%%DATADIR%%/data/models/nimitz/rainbow_6.png
-%%DATADIR%%/data/models/nimitz/rainbow_61.png
-%%DATADIR%%/data/models/nimitz/rainbow_7.png
-%%DATADIR%%/data/models/nimitz/rainbow_71.png
-%%DATADIR%%/data/models/nimitz/rainbow_8.png
-%%DATADIR%%/data/models/nimitz/rainbow_81.png
-%%DATADIR%%/data/models/nimitz/rainbow_9.png
-%%DATADIR%%/data/models/nimitz/saratoga.png
-%%DATADIR%%/data/models/p51/README.txt
-%%DATADIR%%/data/models/p51/f82-jw-05.png
-%%DATADIR%%/data/models/p51/f82.ac.gz
-%%DATADIR%%/data/models/p51/hotspotgrid.png
-%%DATADIR%%/data/models/p51/metal.png
-%%DATADIR%%/data/models/p51/p51d-jw-01.png
-%%DATADIR%%/data/models/p51/p51d-jw-02.png
-%%DATADIR%%/data/models/p51/p51d-jw-03.png
-%%DATADIR%%/data/models/p51/p51d-jw-05.png
-%%DATADIR%%/data/models/p51/p51d-jw-acc.ac
-%%DATADIR%%/data/models/p51/p51d-jw-acc.png
-%%DATADIR%%/data/models/p51/p51d-jw-alt.ac
-%%DATADIR%%/data/models/p51/p51d-jw-alt.png
-%%DATADIR%%/data/models/p51/p51d-jw-altpress.png
-%%DATADIR%%/data/models/p51/p51d-jw-arrows.png
-%%DATADIR%%/data/models/p51/p51d-jw-asi.ac
-%%DATADIR%%/data/models/p51/p51d-jw-asi.png
-%%DATADIR%%/data/models/p51/p51d-jw-attitude-bezel.png
-%%DATADIR%%/data/models/p51/p51d-jw-attitude.ac
-%%DATADIR%%/data/models/p51/p51d-jw-attitude.png
-%%DATADIR%%/data/models/p51/p51d-jw-clock.ac
-%%DATADIR%%/data/models/p51/p51d-jw-clock.png
-%%DATADIR%%/data/models/p51/p51d-jw-compass-bezel.png
-%%DATADIR%%/data/models/p51/p51d-jw-compass.ac
-%%DATADIR%%/data/models/p51/p51d-jw-compass.png
-%%DATADIR%%/data/models/p51/p51d-jw-engine.ac
-%%DATADIR%%/data/models/p51/p51d-jw-engine.png
-%%DATADIR%%/data/models/p51/p51d-jw-gearwarn.ac
-%%DATADIR%%/data/models/p51/p51d-jw-gearwarn.png
-%%DATADIR%%/data/models/p51/p51d-jw-gunsight.ac
-%%DATADIR%%/data/models/p51/p51d-jw-gunsight.png
-%%DATADIR%%/data/models/p51/p51d-jw-ignition.ac
-%%DATADIR%%/data/models/p51/p51d-jw-ignition.png
-%%DATADIR%%/data/models/p51/p51d-jw-large-bezel.png
-%%DATADIR%%/data/models/p51/p51d-jw-magcompass.ac
-%%DATADIR%%/data/models/p51/p51d-jw-magcompass.png
-%%DATADIR%%/data/models/p51/p51d-jw-man.ac
-%%DATADIR%%/data/models/p51/p51d-jw-man.png
-%%DATADIR%%/data/models/p51/p51d-jw-med-bezel.png
-%%DATADIR%%/data/models/p51/p51d-jw-remote.ac
-%%DATADIR%%/data/models/p51/p51d-jw-remote.png
-%%DATADIR%%/data/models/p51/p51d-jw-remotearrow.png
-%%DATADIR%%/data/models/p51/p51d-jw-tach.ac
-%%DATADIR%%/data/models/p51/p51d-jw-tach.png
-%%DATADIR%%/data/models/p51/p51d-jw-temp.ac
-%%DATADIR%%/data/models/p51/p51d-jw-temp.png
-%%DATADIR%%/data/models/p51/p51d-jw-throttle.ac
-%%DATADIR%%/data/models/p51/p51d-jw-throttle.png
-%%DATADIR%%/data/models/p51/p51d-jw-trimknob.png
-%%DATADIR%%/data/models/p51/p51d-jw-trimknobaileron.ac
-%%DATADIR%%/data/models/p51/p51d-jw-trimknobrudder.ac
-%%DATADIR%%/data/models/p51/p51d-jw-trimwheel.png
-%%DATADIR%%/data/models/p51/p51d-jw-trimwheelelevator.ac
-%%DATADIR%%/data/models/p51/p51d-jw-turn.ac
-%%DATADIR%%/data/models/p51/p51d-jw-turn.png
-%%DATADIR%%/data/models/p51/p51d-jw-vac.ac
-%%DATADIR%%/data/models/p51/p51d-jw-vac.png
-%%DATADIR%%/data/models/p51/p51d-jw-vsi.ac
-%%DATADIR%%/data/models/p51/p51d-jw-vsi.png
-%%DATADIR%%/data/models/p51/p51d-jw.ac.gz
-%%DATADIR%%/data/models/p51/transparent-bg.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge.osg.gz
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_redLight.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_road3.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_struct.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_struct2.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_susp.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_wall.png
-%%DATADIR%%/data/models/scenery/GoldenGateBridge_yellowLight.png
-%%DATADIR%%/data/models/scenery/alcatraz.ac.gz
-%%DATADIR%%/data/models/scenery/alcatraz.jpg
-%%DATADIR%%/data/models/sikorsky76/S76livery.png
-%%DATADIR%%/data/models/sikorsky76/blur.png
-%%DATADIR%%/data/models/sikorsky76/chrome1.png
-%%DATADIR%%/data/models/sikorsky76/panel.png
-%%DATADIR%%/data/models/sikorsky76/s76c.ac.gz
-%%DATADIR%%/data/models/spaceShuttle/NASA_images_permission.txt
-%%DATADIR%%/data/models/spaceShuttle/SpaceShuttle.osg.gz
-%%DATADIR%%/data/models/spaceShuttle/spstob_1.png
-%%DATADIR%%/data/models/spaceShuttle/spstob_2.png
-%%DATADIR%%/data/models/spaceShuttle/spstob_3.png
-%%DATADIR%%/data/models/spaceShuttle/spstob_4.png
-%%DATADIR%%/data/models/spaceShuttle/spstob_e.png
-%%DATADIR%%/data/models/spitfire/Pilot_1.png
-%%DATADIR%%/data/models/spitfire/Pilot_2.png
-%%DATADIR%%/data/models/spitfire/Pilot_2n.png
-%%DATADIR%%/data/models/spitfire/UC-up-down.png
-%%DATADIR%%/data/models/spitfire/altimeter.ac
-%%DATADIR%%/data/models/spitfire/asi.ac
-%%DATADIR%%/data/models/spitfire/attitude-bezel.png
-%%DATADIR%%/data/models/spitfire/attitude.ac
-%%DATADIR%%/data/models/spitfire/attitude.png
-%%DATADIR%%/data/models/spitfire/blackout.ac
-%%DATADIR%%/data/models/spitfire/boost.ac
-%%DATADIR%%/data/models/spitfire/clock.ac
-%%DATADIR%%/data/models/spitfire/clock.png
-%%DATADIR%%/data/models/spitfire/compass-bezel.png
-%%DATADIR%%/data/models/spitfire/compass.ac
-%%DATADIR%%/data/models/spitfire/compass.png
-%%DATADIR%%/data/models/spitfire/control-stick.ac
-%%DATADIR%%/data/models/spitfire/cut-off.ac
-%%DATADIR%%/data/models/spitfire/dimmer.ac
-%%DATADIR%%/data/models/spitfire/dimmer.png
-%%DATADIR%%/data/models/spitfire/engine-start.png
-%%DATADIR%%/data/models/spitfire/flaps.ac
-%%DATADIR%%/data/models/spitfire/flaps.png
-%%DATADIR%%/data/models/spitfire/fuel-cocks.ac
-%%DATADIR%%/data/models/spitfire/fuel-pressure.ac
-%%DATADIR%%/data/models/spitfire/fuel-pressure.png
-%%DATADIR%%/data/models/spitfire/fuel.ac
-%%DATADIR%%/data/models/spitfire/fuel.png
-%%DATADIR%%/data/models/spitfire/green.png
-%%DATADIR%%/data/models/spitfire/hotspotgrid.png
-%%DATADIR%%/data/models/spitfire/hunter-alt.png
-%%DATADIR%%/data/models/spitfire/hunter-altpress.png
-%%DATADIR%%/data/models/spitfire/hunter-turn-face.png
-%%DATADIR%%/data/models/spitfire/hunter-turn.png
-%%DATADIR%%/data/models/spitfire/hunter-vsi.png
-%%DATADIR%%/data/models/spitfire/hunter__a.png
-%%DATADIR%%/data/models/spitfire/hurricane-starter.png
-%%DATADIR%%/data/models/spitfire/hurricane-turn-a.png
-%%DATADIR%%/data/models/spitfire/large-bezel.png
-%%DATADIR%%/data/models/spitfire/light-green-flare.ac
-%%DATADIR%%/data/models/spitfire/light-red-flare.ac
-%%DATADIR%%/data/models/spitfire/light-white-flare.ac
-%%DATADIR%%/data/models/spitfire/magcompass.png
-%%DATADIR%%/data/models/spitfire/magneto.ac
-%%DATADIR%%/data/models/spitfire/magneto.png
-%%DATADIR%%/data/models/spitfire/nav-light-switch.ac
-%%DATADIR%%/data/models/spitfire/navigation-lights-switch.png
-%%DATADIR%%/data/models/spitfire/oil-pressure.ac
-%%DATADIR%%/data/models/spitfire/oil-pressure.png
-%%DATADIR%%/data/models/spitfire/primer.ac
-%%DATADIR%%/data/models/spitfire/puff-new.png
-%%DATADIR%%/data/models/spitfire/puff.ac
-%%DATADIR%%/data/models/spitfire/puff.png
-%%DATADIR%%/data/models/spitfire/red.png
-%%DATADIR%%/data/models/spitfire/reflector_gun_sight-01.png
-%%DATADIR%%/data/models/spitfire/reflector_gun_sight.png
-%%DATADIR%%/data/models/spitfire/rgs-dimmer-switch.ac
-%%DATADIR%%/data/models/spitfire/rgs-dimmer-switch.png
-%%DATADIR%%/data/models/spitfire/rgs-main-switch.ac
-%%DATADIR%%/data/models/spitfire/rgs-main-switch.png
-%%DATADIR%%/data/models/spitfire/rgs.ac
-%%DATADIR%%/data/models/spitfire/ring-pull.ac
-%%DATADIR%%/data/models/spitfire/rpm.ac
-%%DATADIR%%/data/models/spitfire/seafire-boost.ac
-%%DATADIR%%/data/models/spitfire/seafire-boost.png
-%%DATADIR%%/data/models/spitfire/seafire-tx-00.png
-%%DATADIR%%/data/models/spitfire/seafire-tx-01.png
-%%DATADIR%%/data/models/spitfire/seafire-tx-02.png
-%%DATADIR%%/data/models/spitfire/seafire-tx-03.png
-%%DATADIR%%/data/models/spitfire/seafire-tx-04.png
-%%DATADIR%%/data/models/spitfire/seafire-tx-05.png
-%%DATADIR%%/data/models/spitfire/seafireIIIc.osg.gz
-%%DATADIR%%/data/models/spitfire/spitfire-asi.png
-%%DATADIR%%/data/models/spitfire/spitfire-attitude.png
-%%DATADIR%%/data/models/spitfire/spitfire-boost.png
-%%DATADIR%%/data/models/spitfire/spitfire-rpm.png
-%%DATADIR%%/data/models/spitfire/spitfire-trim.png
-%%DATADIR%%/data/models/spitfire/spitfire-triple.png
-%%DATADIR%%/data/models/spitfire/spitfire-turn.png
-%%DATADIR%%/data/models/spitfire/spitfire-tx-00.png
-%%DATADIR%%/data/models/spitfire/spitfire-tx-01.png
-%%DATADIR%%/data/models/spitfire/spitfire-tx-02.png
-%%DATADIR%%/data/models/spitfire/spitfire-tx-03.png
-%%DATADIR%%/data/models/spitfire/spitfire-tx-04.png
-%%DATADIR%%/data/models/spitfire/spitfire-tx-05.png
-%%DATADIR%%/data/models/spitfire/spitfire-vsi.png
-%%DATADIR%%/data/models/spitfire/starter.ac
-%%DATADIR%%/data/models/spitfire/switch.png
-%%DATADIR%%/data/models/spitfire/throttle.ac
-%%DATADIR%%/data/models/spitfire/transparent-bg.png
-%%DATADIR%%/data/models/spitfire/trim-knob-rudder.ac
-%%DATADIR%%/data/models/spitfire/trim-knob.png
-%%DATADIR%%/data/models/spitfire/trim-wheel-elev.ac
-%%DATADIR%%/data/models/spitfire/trim.ac
-%%DATADIR%%/data/models/spitfire/triple.ac
-%%DATADIR%%/data/models/spitfire/turn.ac
-%%DATADIR%%/data/models/spitfire/undercarriage-up-down.ac
-%%DATADIR%%/data/models/spitfire/vsi.ac
-%%DATADIR%%/data/models/spitfire/white.png
-%%DATADIR%%/data/models/sr71/Halos.png
-%%DATADIR%%/data/models/sr71/RedLight1.ac
-%%DATADIR%%/data/models/sr71/colors.png
-%%DATADIR%%/data/models/sr71/fire.png
-%%DATADIR%%/data/models/sr71/glass.png
-%%DATADIR%%/data/models/sr71/grey-blue-flood.png
-%%DATADIR%%/data/models/sr71/parachut.png
-%%DATADIR%%/data/models/sr71/sr71.osg.gz
-%%DATADIR%%/data/models/sr71/wheels.png
-%%DATADIR%%/data/models/su37/SU-37-Intake-Screen.png
-%%DATADIR%%/data/models/su37/SU-37-Petal.png
-%%DATADIR%%/data/models/su37/SU-37-reheat.png
-%%DATADIR%%/data/models/su37/SU-37-top.png
-%%DATADIR%%/data/models/su37/Trajectory-Marker.ac
-%%DATADIR%%/data/models/su37/su37.osg.gz
-%%DATADIR%%/data/ossim.kwl
-%%DATADIR%%/data/palomino.conf
-%%DATADIR%%/data/physics_a4.conf
-%%DATADIR%%/data/physics_corsair.conf
-%%DATADIR%%/data/physics_f14.conf
-%%DATADIR%%/data/physics_f15.conf
-%%DATADIR%%/data/physics_f16.conf
-%%DATADIR%%/data/physics_f18.conf
-%%DATADIR%%/data/physics_f82.conf
-%%DATADIR%%/data/physics_f86.conf
-%%DATADIR%%/data/physics_mirage2000.conf
-%%DATADIR%%/data/physics_p51.conf
-%%DATADIR%%/data/physics_sikorsky.conf
-%%DATADIR%%/data/physics_spaceShuttle.conf
-%%DATADIR%%/data/physics_spitfire.conf
-%%DATADIR%%/data/physics_sr71.conf
-%%DATADIR%%/data/physics_su37.conf
-%%DATADIR%%/data/replays/replayTakeoffFrontSlot.dat.gz
-%%DATADIR%%/data/replays/replayTakeoffRearSlot.dat.gz
-%%DATADIR%%/data/shaders/aircraft_frag.glsl
-%%DATADIR%%/data/shaders/aircraft_highSpecular_frag.glsl
-%%DATADIR%%/data/shaders/aircraft_highSpecular_vert.glsl
-%%DATADIR%%/data/shaders/aircraft_lowSpecular_frag.glsl
-%%DATADIR%%/data/shaders/aircraft_lowSpecular_vert.glsl
-%%DATADIR%%/data/shaders/aircraft_sr71_frag.glsl
-%%DATADIR%%/data/shaders/aircraft_sr71_vert.glsl
-%%DATADIR%%/data/shaders/aircraft_vert.glsl
-%%DATADIR%%/data/shaders/color_frag.glsl
-%%DATADIR%%/data/shaders/color_vert.glsl
-%%DATADIR%%/data/shaders/default_frag.glsl
-%%DATADIR%%/data/shaders/default_vert.glsl
-%%DATADIR%%/data/shaders/inc_ComputeDiffuseSpecular_vert.glsl
-%%DATADIR%%/data/shaders/inc_aircraft_frag.glsl
-%%DATADIR%%/data/shaders/inc_brightness_frag.glsl
-%%DATADIR%%/data/shaders/inc_color_vert.glsl
-%%DATADIR%%/data/shaders/inc_fog_frag.glsl
-%%DATADIR%%/data/shaders/inc_fog_vert.glsl
-%%DATADIR%%/data/shaders/inc_frag.glsl
-%%DATADIR%%/data/shaders/inc_shadow_frag.glsl
-%%DATADIR%%/data/shaders/inc_shadow_vert.glsl
-%%DATADIR%%/data/shaders/inc_vert.glsl
-%%DATADIR%%/data/shaders/module.txt
-%%DATADIR%%/data/shaders/nop_frag.glsl
-%%DATADIR%%/data/shaders/nop_vert.glsl
-%%DATADIR%%/data/shaders/reference/inc_DirectionalLight_vert.glsl
-%%DATADIR%%/data/shaders/reference/inc_PointLight_vert.glsl
-%%DATADIR%%/data/shaders/reference/inc_SpotLight_vert.glsl
-%%DATADIR%%/data/shaders/reference/inc_color_vert.glsl
-%%DATADIR%%/data/sounds/README.txt
-%%DATADIR%%/data/sounds/beep1.wav.gz
-%%DATADIR%%/data/sounds/beep2.wav.gz
-%%DATADIR%%/data/sounds/crash.wav.gz
-%%DATADIR%%/data/sounds/gear.wav.gz
-%%DATADIR%%/data/sounds/hit.wav.gz
-%%DATADIR%%/data/sounds/jet.wav.gz
-%%DATADIR%%/data/sounds/jet_whine.wav.gz
-%%DATADIR%%/data/sounds/laser.wav.gz
-%%DATADIR%%/data/sounds/missile.wav.gz
-%%DATADIR%%/data/sounds/piston.wav.gz
-%%DATADIR%%/data/sounds/piston_cough.wav.gz
-%%DATADIR%%/data/sounds/rotor.wav.gz
-%%DATADIR%%/data/sounds/rumble.wav.gz
-%%DATADIR%%/data/sounds/stall.wav.gz
-%%DATADIR%%/data/sounds/thunder.wav.gz
-%%DATADIR%%/data/sounds/turboprop1.wav.gz
-%%DATADIR%%/data/terrain/GoldenGate.osga
-%%DATADIR%%/data/textures/README.txt
-%%DATADIR%%/data/textures/cloud0.png
-%%DATADIR%%/data/textures/cloud1.png
-%%DATADIR%%/data/textures/cloud2.png
-%%DATADIR%%/data/textures/cloud3.png
-%%DATADIR%%/data/textures/cloudRain0.png
-%%DATADIR%%/data/textures/moon.png
-%%DATADIR%%/data/textures/smoke.png
-%%DATADIR%%/scripts/actors.lua
-%%DATADIR%%/scripts/cmd.lua
-%%DATADIR%%/scripts/defs.lua
-%%DATADIR%%/scripts/events.lua
-%%DATADIR%%/scripts/game.lua
-%%DATADIR%%/scripts/gfx.lua
-%%DATADIR%%/scripts/hud.lua
-%%DATADIR%%/scripts/joystick.lua
-%%DATADIR%%/scripts/keyboard.lua
-%%DATADIR%%/scripts/keyboard_defs.lua
-%%DATADIR%%/scripts/lib.lua
-%%DATADIR%%/scripts/manipulator_mode.lua
-%%DATADIR%%/scripts/mission.lua
-%%DATADIR%%/scripts/mission_carrier.lua
-%%DATADIR%%/scripts/mission_ossim.lua
-%%DATADIR%%/scripts/module.txt
-%%DATADIR%%/scripts/module_lua_coding.txt
-%%DATADIR%%/scripts/replay.lua
-%%DATADIR%%/scripts/scene.lua
-%%DATADIR%%/scripts/scene_GoldenGate.lua
-%%DATADIR%%/scripts/sim_generic.lua
-%%DATADIR%%/scripts/sim_specific.lua
-%%DATADIR%%/scripts/sound.lua
-%%DATADIR%%/scripts/startup.lua
-%%DATADIR%%/scripts/tick.lua
-%%DATADIR%%/scripts/timer.lua
-%%DATADIR%%/scripts/views.lua
-%%DATADIR%%/scripts/weapons.lua
-share/pixmaps/palomino.png
diff --git a/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile
index 4b3642d8d259..c7c4e2e226c3 100644
--- a/games/veloren-weekly/Makefile
+++ b/games/veloren-weekly/Makefile
@@ -1,5 +1,5 @@
PORTNAME= veloren
-PORTVERSION= s20250903
+PORTVERSION= s20250910
CATEGORIES= games wayland
PKGNAMESUFFIX= -weekly
@@ -24,7 +24,7 @@ RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-pl
USES= cargo xorg
USE_XORG= xcb
USE_GITLAB= yes
-GL_TAGNAME= v0.17.0-1018-g15f3d6725e # git describe --match='v[0-9]*' weekly
+GL_TAGNAME= v0.17.0-1107-g188d737f06 # git describe --match='v[0-9]*' weekly
CARGO_ENV= VELOREN_USERDATA_STRATEGY=system SHADERC_LIB_DIR="${LOCALBASE}/lib"
PLIST_FILES= bin/${PORTNAME}-server-cli \
bin/${PORTNAME}-voxygen \
@@ -43,10 +43,6 @@ CARGO_ENV+= RUSTC_BOOTSTRAP=1
# XXX https://github.com/rust-lang/cargo/issues/4101
CARGO_INSTALL_PATH= server-cli voxygen
-# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289016
-CARGO_BUILDDEP= no
-BUILD_DEPENDS+= rust188>0:lang/rust188
-
post-patch:
# .git/ directory is missing, so don't abort if git binary is also missing
@${REINPLACE_CMD} -e 's/"git"/"${TRUE}"/' \
diff --git a/games/veloren-weekly/Makefile.crates b/games/veloren-weekly/Makefile.crates
index 9c6510d82c7c..f757af1a098e 100644
--- a/games/veloren-weekly/Makefile.crates
+++ b/games/veloren-weekly/Makefile.crates
@@ -1,7 +1,8 @@
-CARGO_CRATES= ab_glyph-0.2.29 \
- ab_glyph_rasterizer-0.1.8 \
+CARGO_CRATES= ab_glyph-0.2.31 \
+ ab_glyph_rasterizer-0.1.10 \
addr2line-0.24.2 \
- adler2-2.0.0 \
+ addr2line-0.25.0 \
+ adler2-2.0.1 \
adler32-1.2.0 \
ahash-0.4.8 \
ahash-0.8.12 \
@@ -12,21 +13,20 @@ CARGO_CRATES= ab_glyph-0.2.29 \
ambient-authority-0.0.2 \
android-activity-0.6.0 \
android-properties-0.2.2 \
- android-tzdata-0.1.1 \
android_system_properties-0.1.5 \
anes-0.1.6 \
- anstream-0.6.18 \
- anstyle-1.0.10 \
- anstyle-parse-0.2.6 \
- anstyle-query-1.1.2 \
- anstyle-wincon-3.0.7 \
- anyhow-1.0.98 \
+ anstream-0.6.20 \
+ anstyle-1.0.11 \
+ anstyle-parse-0.2.7 \
+ anstyle-query-1.1.4 \
+ anstyle-wincon-3.0.10 \
+ anyhow-1.0.99 \
anymap2-0.13.0 \
app_dirs2-2.5.5 \
approx-0.3.2 \
approx-0.4.0 \
approx-0.5.1 \
- arbitrary-1.4.1 \
+ arbitrary-1.4.2 \
arr_macro-0.2.1 \
arr_macro_impl-0.2.1 \
arrayref-0.3.9 \
@@ -34,35 +34,36 @@ CARGO_CRATES= ab_glyph-0.2.29 \
as-raw-xcb-connection-1.0.1 \
ascii-1.1.0 \
ash-0.38.0+1.3.281 \
- assets_manager-0.12.5 \
- async-channel-2.3.1 \
- async-trait-0.1.88 \
+ assets_manager-0.13.2 \
+ async-channel-2.5.0 \
+ async-trait-0.1.89 \
atomic-arena-0.1.2 \
atomic-waker-1.1.2 \
atomic_refcell-0.1.13 \
atomicwrites-0.4.4 \
- autocfg-1.4.0 \
+ autocfg-1.5.0 \
axum-0.8.4 \
axum-core-0.5.2 \
az-1.2.1 \
- backtrace-0.3.74 \
+ backtrace-0.3.75 \
base64-0.21.7 \
base64-0.22.1 \
- bincode-1.3.3 \
- bindgen-0.70.1 \
+ bincode-2.0.1 \
+ bincode_derive-2.0.1 \
+ bindgen-0.72.1 \
bit-set-0.8.0 \
bit-vec-0.8.0 \
bitflags-1.3.2 \
- bitflags-2.9.0 \
+ bitflags-2.9.4 \
bitvec-1.0.1 \
blake2b_simd-1.0.3 \
block-0.1.6 \
block-buffer-0.10.4 \
block2-0.5.1 \
block2-0.6.1 \
- bumpalo-3.17.0 \
- bytemuck-1.23.0 \
- bytemuck_derive-1.9.3 \
+ bumpalo-3.19.0 \
+ bytemuck-1.23.2 \
+ bytemuck_derive-1.10.1 \
byteorder-1.5.0 \
byteorder-lite-0.1.0 \
bytes-1.10.1 \
@@ -77,66 +78,69 @@ CARGO_CRATES= ab_glyph-0.2.29 \
cap-time-ext-3.4.4 \
cassowary-0.3.0 \
cast-0.3.0 \
- castaway-0.2.3 \
- cc-1.2.21 \
+ castaway-0.2.4 \
+ cc-1.2.36 \
censor-0.3.0 \
cesu8-1.1.0 \
cexpr-0.6.0 \
cfg-if-0.1.10 \
- cfg-if-1.0.0 \
+ cfg-if-1.0.3 \
cfg_aliases-0.2.1 \
- chrono-0.4.41 \
- chrono-tz-0.10.3 \
- chrono-tz-build-0.4.1 \
- chumsky-0.9.3 \
+ chrono-0.4.42 \
+ chrono-tz-0.10.4 \
+ chumsky-0.10.1 \
ciborium-0.2.2 \
ciborium-io-0.2.2 \
ciborium-ll-0.2.2 \
clang-sys-1.8.1 \
- clap-4.5.37 \
- clap_builder-4.5.37 \
- clap_derive-4.5.32 \
- clap_lex-0.7.4 \
+ clap-4.5.47 \
+ clap_builder-4.5.47 \
+ clap_derive-4.5.47 \
+ clap_lex-0.7.5 \
clipboard-win-3.1.1 \
- clipboard-win-5.4.0 \
+ clipboard-win-5.4.1 \
clipboard_macos-0.1.1 \
clipboard_wayland-0.2.2 \
clipboard_x11-0.4.2 \
cmake-0.1.54 \
- cobs-0.2.3 \
+ cobs-0.3.0 \
codespan-reporting-0.12.0 \
- colorchoice-1.0.3 \
+ colorchoice-1.0.4 \
combine-4.6.7 \
compact_str-0.8.1 \
concurrent-queue-2.5.0 \
- console-0.15.11 \
+ console-0.16.1 \
console_error_panic_hook-0.1.7 \
constant_time_eq-0.3.1 \
+ convert_case-0.7.1 \
copypasta-0.8.2 \
core-foundation-0.9.4 \
- core-foundation-0.10.0 \
+ core-foundation-0.10.1 \
core-foundation-sys-0.8.7 \
core-graphics-0.23.2 \
core-graphics-types-0.1.3 \
core-graphics-types-0.2.0 \
coreaudio-rs-0.11.3 \
- coreaudio-sys-0.2.16 \
+ coreaudio-sys-0.2.17 \
cpal-0.15.3 \
cpp_demangle-0.4.4 \
cpufeatures-0.2.17 \
- cranelift-bforest-0.116.1 \
- cranelift-bitset-0.116.1 \
- cranelift-codegen-0.116.1 \
- cranelift-codegen-meta-0.116.1 \
- cranelift-codegen-shared-0.116.1 \
- cranelift-control-0.116.1 \
- cranelift-entity-0.116.1 \
- cranelift-frontend-0.116.1 \
- cranelift-isle-0.116.1 \
- cranelift-native-0.116.1 \
- crc32fast-1.4.2 \
- criterion-0.5.1 \
- criterion-plot-0.5.0 \
+ cranelift-assembler-x64-0.123.2 \
+ cranelift-assembler-x64-meta-0.123.2 \
+ cranelift-bforest-0.123.2 \
+ cranelift-bitset-0.123.2 \
+ cranelift-codegen-0.123.2 \
+ cranelift-codegen-meta-0.123.2 \
+ cranelift-codegen-shared-0.123.2 \
+ cranelift-control-0.123.2 \
+ cranelift-entity-0.123.2 \
+ cranelift-frontend-0.123.2 \
+ cranelift-isle-0.123.2 \
+ cranelift-native-0.123.2 \
+ cranelift-srcgen-0.123.2 \
+ crc32fast-1.5.0 \
+ criterion-0.7.0 \
+ criterion-plot-0.6.0 \
critical-section-1.2.0 \
crossbeam-channel-0.5.15 \
crossbeam-deque-0.7.4 \
@@ -147,29 +151,33 @@ CARGO_CRATES= ab_glyph-0.2.29 \
crossbeam-utils-0.7.2 \
crossbeam-utils-0.8.21 \
crossterm-0.28.1 \
+ crossterm-0.29.0 \
crossterm_winapi-0.9.1 \
- crunchy-0.2.3 \
+ crunchy-0.2.4 \
crypto-common-0.1.6 \
csv-1.3.1 \
csv-core-0.1.12 \
culpa-1.0.2 \
culpa-macros-1.0.2 \
- cursor-icon-1.1.0 \
+ cursor-icon-1.2.0 \
daggy-0.5.0 \
darling-0.20.11 \
+ darling-0.21.3 \
darling_core-0.20.11 \
+ darling_core-0.21.3 \
darling_macro-0.20.11 \
+ darling_macro-0.21.3 \
dasp_sample-0.11.0 \
data-encoding-2.9.0 \
debugid-0.8.0 \
deflate-1.0.0 \
delaunator-1.0.2 \
- deranged-0.4.0 \
+ deranged-0.5.3 \
+ derive_more-2.0.1 \
+ derive_more-impl-2.0.1 \
digest-0.10.7 \
directories-next-2.0.0 \
- dirs-4.0.0 \
dirs-6.0.0 \
- dirs-sys-0.3.7 \
dirs-sys-0.5.0 \
dirs-sys-next-0.1.2 \
discord-sdk-0.4.0 \
@@ -184,14 +192,15 @@ CARGO_CRATES= ab_glyph-0.2.29 \
downcast-rs-1.2.1 \
dpi-0.1.2 \
drop_guard-0.3.0 \
- ecolor-0.32.1 \
- egui-0.32.1 \
+ dyn-clone-1.0.20 \
+ ecolor-0.32.2 \
+ egui-0.32.2 \
egui_plot-0.33.0 \
egui_wgpu_backend-0.35.0 \
egui_winit_platform-0.27.0 \
either-1.15.0 \
elapsed-0.1.2 \
- emath-0.32.1 \
+ emath-0.32.2 \
embedded-io-0.4.0 \
embedded-io-0.6.1 \
encode_unicode-1.0.0 \
@@ -200,41 +209,44 @@ CARGO_CRATES= ab_glyph-0.2.29 \
enum-as-inner-0.6.1 \
enum-map-2.7.3 \
enum-map-derive-0.17.0 \
- enumset-1.1.6 \
- enumset_derive-0.11.0 \
+ enumset-1.1.10 \
+ enumset_derive-0.14.0 \
env_home-0.1.0 \
- epaint-0.32.1 \
- epaint_default_fonts-0.32.1 \
+ epaint-0.32.2 \
+ epaint_default_fonts-0.32.2 \
equivalent-1.0.2 \
- errno-0.3.11 \
+ errno-0.3.14 \
error-chain-0.12.4 \
- error-code-3.3.1 \
+ error-code-3.3.2 \
euc-0.5.3 \
euclid-0.22.11 \
- event-listener-5.4.0 \
+ event-listener-5.4.1 \
event-listener-strategy-0.5.4 \
fallible-iterator-0.3.0 \
fallible-streaming-iterator-0.1.9 \
+ fastbloom-0.14.0 \
fastrand-2.3.0 \
fd-lock-4.0.4 \
fdeflate-0.3.7 \
- filetime-0.2.25 \
+ filetime-0.2.26 \
+ find-msvc-tools-0.1.1 \
find_folder-0.3.0 \
fixed-1.29.0 \
fixedbitset-0.1.9 \
fixedbitset-0.5.7 \
- flate2-1.1.1 \
+ flate2-1.1.2 \
float-cmp-0.10.0 \
- fluent-0.16.1 \
- fluent-bundle-0.15.3 \
+ fluent-0.17.0 \
+ fluent-bundle-0.16.0 \
fluent-langneg-0.13.0 \
- fluent-syntax-0.11.1 \
+ fluent-syntax-0.12.0 \
fnv-1.0.7 \
foldhash-0.1.5 \
+ foldhash-0.2.0 \
foreign-types-0.5.0 \
foreign-types-macros-0.2.3 \
foreign-types-shared-0.3.1 \
- form_urlencoded-1.2.1 \
+ form_urlencoded-1.2.2 \
formatx-0.2.4 \
fs-set-times-0.20.3 \
fsevent-sys-4.1.0 \
@@ -251,18 +263,19 @@ CARGO_CRATES= ab_glyph-0.2.29 \
fxhash-0.2.1 \
fxprof-processed-profile-0.6.0 \
generator-0.7.5 \
- generator-0.8.4 \
+ generator-0.8.7 \
generic-array-0.14.7 \
gethostname-0.2.3 \
- gethostname-0.4.3 \
+ gethostname-1.0.2 \
getrandom-0.2.16 \
- getrandom-0.3.2 \
+ getrandom-0.3.3 \
gilrs-0.10.2 \
gilrs-core-0.5.7 \
gimli-0.31.1 \
+ gimli-0.32.2 \
gl_generator-0.14.0 \
- glam-0.30.3 \
- glob-0.3.2 \
+ glam-0.30.5 \
+ glob-0.3.3 \
glow-0.16.0 \
glutin_wgl_sys-0.6.1 \
glyph_brush-0.7.12 \
@@ -280,12 +293,12 @@ CARGO_CRATES= ab_glyph-0.2.29 \
hashbrown-0.12.3 \
hashbrown-0.13.2 \
hashbrown-0.14.5 \
- hashbrown-0.15.3 \
+ hashbrown-0.15.5 \
+ hashbrown-0.16.0 \
hashlink-0.9.1 \
heapless-0.8.0 \
heck-0.5.0 \
- hermit-abi-0.4.0 \
- hermit-abi-0.5.0 \
+ hermit-abi-0.5.2 \
hex-0.4.3 \
hexf-parse-0.2.1 \
hibitset-0.6.4 \
@@ -298,50 +311,45 @@ CARGO_CRATES= ab_glyph-0.2.29 \
httparse-1.10.1 \
httpdate-1.0.3 \
humantime-2.2.0 \
- hyper-1.6.0 \
- hyper-rustls-0.27.5 \
- hyper-util-0.1.11 \
+ hyper-1.7.0 \
+ hyper-rustls-0.27.7 \
+ hyper-util-0.1.16 \
iana-time-zone-0.1.63 \
iana-time-zone-haiku-0.1.2 \
- icu_collections-1.5.0 \
- icu_locid-1.5.0 \
- icu_locid_transform-1.5.0 \
- icu_locid_transform_data-1.5.1 \
- icu_normalizer-1.5.0 \
- icu_normalizer_data-1.5.1 \
- icu_properties-1.5.1 \
- icu_properties_data-1.5.1 \
- icu_provider-1.5.0 \
- icu_provider_macros-1.5.0 \
+ icu_collections-2.0.0 \
+ icu_locale_core-2.0.0 \
+ icu_normalizer-2.0.0 \
+ icu_normalizer_data-2.0.0 \
+ icu_properties-2.0.1 \
+ icu_properties_data-2.0.1 \
+ icu_provider-2.0.0 \
id-arena-2.2.1 \
ident_case-1.0.1 \
- idna-1.0.3 \
- idna_adapter-1.2.0 \
- image-0.25.6 \
+ idna-1.1.0 \
+ idna_adapter-1.2.1 \
+ image-0.25.8 \
indexmap-1.9.3 \
- indexmap-2.9.0 \
- indicatif-0.17.11 \
+ indexmap-2.11.1 \
+ indicatif-0.18.0 \
indoc-2.0.6 \
init_with-1.1.0 \
inline_tweak-1.2.2 \
inline_tweak_derive-4.0.0 \
- inotify-0.9.6 \
inotify-0.11.0 \
inotify-sys-0.1.5 \
- instability-0.3.7 \
+ instability-0.3.9 \
instant-0.1.13 \
- intl-memoizer-0.5.2 \
+ intl-memoizer-0.5.3 \
intl_pluralrules-7.0.2 \
io-extras-0.18.4 \
io-kit-sys-0.3.0 \
io-lifetimes-2.0.4 \
+ io-uring-0.7.10 \
ipconfig-0.3.2 \
ipnet-2.11.0 \
is-docker-0.2.0 \
- is-terminal-0.4.16 \
is-wsl-0.4.0 \
is_terminal_polyfill-1.70.1 \
- itertools-0.10.5 \
itertools-0.12.1 \
itertools-0.13.0 \
itertools-0.14.0 \
@@ -350,47 +358,48 @@ CARGO_CRATES= ab_glyph-0.2.29 \
ittapi-sys-0.4.0 \
jni-0.21.1 \
jni-sys-0.3.0 \
- jobserver-0.1.33 \
- js-sys-0.3.77 \
+ jobserver-0.1.34 \
+ js-sys-0.3.78 \
khronos-egl-6.0.0 \
khronos_api-3.1.0 \
kiddo-4.2.0 \
- kqueue-1.0.8 \
+ kqueue-1.1.1 \
kqueue-sys-1.0.4 \
lazy-bytes-cast-5.0.1 \
lazy_static-1.5.0 \
leb128-0.2.5 \
leb128fmt-0.1.0 \
levenshtein-1.0.5 \
- libc-0.2.172 \
- libloading-0.8.6 \
- libm-0.2.14 \
+ libc-0.2.175 \
+ libloading-0.8.8 \
+ libm-0.2.15 \
libmimalloc-sys-0.1.39 \
- libredox-0.1.3 \
+ libredox-0.1.9 \
libsqlite3-sys-0.28.0 \
libudev-sys-0.1.4 \
linked-hash-map-0.5.6 \
linux-raw-sys-0.4.15 \
- linux-raw-sys-0.9.4 \
- litemap-0.7.5 \
+ linux-raw-sys-0.11.0 \
+ litemap-0.8.0 \
litrs-0.4.2 \
- lock_api-0.4.12 \
- log-0.4.27 \
+ lock_api-0.4.13 \
+ log-0.4.28 \
loom-0.7.2 \
lru-0.12.5 \
+ lru-slab-0.1.2 \
lz-fear-0.2.0 \
- mach2-0.4.2 \
+ mach2-0.4.3 \
macro_rules_attribute-0.1.3 \
macro_rules_attribute-proc_macro-0.1.3 \
malloc_buf-0.0.6 \
- matchers-0.1.0 \
+ matchers-0.2.0 \
matchit-0.8.4 \
maybe-owned-0.3.4 \
maybe-uninit-2.0.0 \
- memchr-2.7.4 \
- memfd-0.6.4 \
+ memchr-2.7.5 \
+ memfd-0.6.5 \
memmap2-0.5.10 \
- memmap2-0.9.5 \
+ memmap2-0.9.8 \
memoffset-0.5.6 \
memoffset-0.6.5 \
metal-0.32.0 \
@@ -398,11 +407,11 @@ CARGO_CRATES= ab_glyph-0.2.29 \
mime-0.3.17 \
minifb-0.28.0 \
minimal-lexical-0.2.1 \
- miniz_oxide-0.8.8 \
+ miniz_oxide-0.8.9 \
mint-0.5.9 \
- mio-0.8.11 \
- mio-1.0.3 \
+ mio-1.0.4 \
moka-0.12.10 \
+ moxcms-0.7.5 \
mumble-link-0.2.0 \
naga-26.0.0 \
native-dialog-0.9.0 \
@@ -414,17 +423,16 @@ CARGO_CRATES= ab_glyph-0.2.29 \
nibble_vec-0.1.0 \
nix-0.24.3 \
nix-0.26.4 \
- nix-0.29.0 \
+ nix-0.30.1 \
nohash-hasher-0.2.0 \
noise-0.9.0 \
nom-7.1.3 \
nom-8.0.0 \
- notify-6.1.1 \
- notify-8.0.0 \
+ notify-8.2.0 \
notify-types-2.0.0 \
nougat-0.2.4 \
nougat-proc_macros-0.2.4 \
- nu-ansi-term-0.46.0 \
+ nu-ansi-term-0.50.1 \
num-0.2.1 \
num-0.4.3 \
num-bigint-0.2.6 \
@@ -439,14 +447,13 @@ CARGO_CRATES= ab_glyph-0.2.29 \
num-rational-0.4.2 \
num-traits-0.2.19 \
num_cpus-1.17.0 \
- num_enum-0.7.3 \
- num_enum_derive-0.7.3 \
- number_prefix-0.4.0 \
+ num_enum-0.7.4 \
+ num_enum_derive-0.7.4 \
objc-0.2.7 \
objc-foundation-0.1.1 \
objc-sys-0.3.5 \
objc2-0.5.2 \
- objc2-0.6.1 \
+ objc2-0.6.2 \
objc2-app-kit-0.2.2 \
objc2-app-kit-0.3.1 \
objc2-cloud-kit-0.2.2 \
@@ -474,9 +481,11 @@ CARGO_CRATES= ab_glyph-0.2.29 \
objc2-user-notifications-0.2.2 \
objc_id-0.1.1 \
object-0.36.7 \
+ object-0.37.3 \
oboe-0.6.1 \
oboe-sys-0.6.1 \
once_cell-1.21.3 \
+ once_cell_polyfill-1.70.1 \
oorandom-11.1.5 \
open-5.3.2 \
openssl-probe-0.1.6 \
@@ -485,22 +494,18 @@ CARGO_CRATES= ab_glyph-0.2.29 \
ordered-float-1.1.1 \
ordered-float-4.6.0 \
ordered-float-5.0.0 \
- overload-0.1.1 \
- owned_ttf_parser-0.25.0 \
+ owned_ttf_parser-0.25.1 \
parking-2.2.1 \
- parking_lot-0.12.3 \
- parking_lot_core-0.9.10 \
- parse-zoneinfo-0.3.1 \
+ parking_lot-0.12.4 \
+ parking_lot_core-0.9.11 \
paste-1.0.15 \
pathdiff-0.2.3 \
pem-3.0.5 \
- percent-encoding-2.3.1 \
+ percent-encoding-2.3.2 \
petgraph-0.4.13 \
- petgraph-0.8.1 \
- phf-0.11.3 \
- phf_codegen-0.11.3 \
- phf_generator-0.11.3 \
- phf_shared-0.11.3 \
+ petgraph-0.8.2 \
+ phf-0.12.1 \
+ phf_shared-0.12.1 \
pin-project-1.1.10 \
pin-project-internal-1.1.10 \
pin-project-lite-0.2.16 \
@@ -510,10 +515,12 @@ CARGO_CRATES= ab_glyph-0.2.29 \
pistoncore-input-0.24.0 \
pkg-config-0.3.32 \
png-0.17.16 \
- polling-3.7.4 \
- portable-atomic-1.11.0 \
+ png-0.18.0 \
+ polling-3.10.0 \
+ portable-atomic-1.11.1 \
portable-atomic-util-0.2.4 \
- postcard-1.1.1 \
+ postcard-1.1.3 \
+ potential_utf-0.1.3 \
powerfmt-0.2.0 \
pp-rs-0.2.1 \
ppv-lite86-0.2.21 \
@@ -522,26 +529,28 @@ CARGO_CRATES= ab_glyph-0.2.29 \
proc-macro-hack-0.5.20+deprecated \
proc-macro-nested-0.1.7 \
proc-macro2-0.4.30 \
- proc-macro2-1.0.95 \
- profiling-1.0.16 \
- profiling-procmacros-1.0.16 \
+ proc-macro2-1.0.101 \
+ profiling-1.0.17 \
+ profiling-procmacros-1.0.17 \
prometheus-0.14.0 \
prometheus-hyper-0.2.1 \
protocol-3.4.0 \
protocol-derive-3.4.0 \
psm-0.1.26 \
- pulley-interpreter-29.0.1 \
+ pulley-interpreter-36.0.2 \
+ pulley-macros-36.0.2 \
+ pxfm-0.1.23 \
quick-xml-0.37.5 \
- quinn-0.11.7 \
- quinn-proto-0.11.11 \
- quinn-udp-0.5.12 \
+ quinn-0.11.9 \
+ quinn-proto-0.11.13 \
+ quinn-udp-0.5.14 \
quote-0.6.13 \
quote-1.0.40 \
- r-efi-5.2.0 \
+ r-efi-5.3.0 \
radium-0.7.0 \
radix_trie-0.2.1 \
rand-0.8.5 \
- rand-0.9.1 \
+ rand-0.9.2 \
rand_chacha-0.3.1 \
rand_chacha-0.9.0 \
rand_core-0.6.4 \
@@ -550,66 +559,69 @@ CARGO_CRATES= ab_glyph-0.2.29 \
range-alloc-0.1.4 \
ratatui-0.29.0 \
raw-window-handle-0.6.2 \
- rayon-1.10.0 \
- rayon-core-1.12.1 \
- rcgen-0.13.2 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
+ rcgen-0.14.3 \
redox_syscall-0.4.1 \
- redox_syscall-0.5.12 \
+ redox_syscall-0.5.17 \
redox_users-0.4.6 \
- redox_users-0.5.0 \
+ redox_users-0.5.2 \
+ ref-cast-1.0.24 \
+ ref-cast-impl-1.0.24 \
refinery-0.8.16 \
refinery-core-0.8.16 \
refinery-macros-0.8.16 \
- regalloc2-0.11.2 \
- regex-1.11.1 \
- regex-automata-0.1.10 \
- regex-automata-0.4.9 \
- regex-syntax-0.6.29 \
- regex-syntax-0.8.5 \
+ regalloc2-0.12.2 \
+ regex-1.11.2 \
+ regex-automata-0.3.9 \
+ regex-automata-0.4.10 \
+ regex-syntax-0.7.5 \
+ regex-syntax-0.8.6 \
renderdoc-sys-1.1.0 \
- resolv-conf-0.7.3 \
+ resolv-conf-0.7.4 \
ring-0.17.14 \
rmp-0.8.14 \
rmp-serde-1.3.0 \
robust-0.2.3 \
- ron-0.8.1 \
+ ron-0.11.0 \
roots-0.0.8 \
roxmltree-0.14.1 \
rstar-0.12.2 \
rtrb-0.3.2 \
rusqlite-0.31.0 \
rust-argon2-2.1.0 \
- rustc-demangle-0.1.24 \
+ rustc-demangle-0.1.26 \
rustc-hash-1.1.0 \
rustc-hash-2.1.1 \
rustc_version-0.2.3 \
rustc_version-0.4.1 \
rustix-0.38.44 \
- rustix-1.0.7 \
+ rustix-1.1.2 \
rustix-linux-procfs-0.1.1 \
- rustls-0.23.26 \
+ rustls-0.23.31 \
rustls-native-certs-0.8.1 \
rustls-pemfile-2.2.0 \
- rustls-pki-types-1.11.0 \
- rustls-platform-verifier-0.5.2 \
+ rustls-pki-types-1.12.0 \
+ rustls-platform-verifier-0.6.1 \
rustls-platform-verifier-android-0.1.1 \
- rustls-webpki-0.103.1 \
+ rustls-webpki-0.103.4 \
rusttype-0.7.9 \
rusttype-0.8.3 \
- rustversion-1.0.20 \
- rustyline-15.0.0 \
+ rustversion-1.0.22 \
+ rustyline-17.0.1 \
ryu-1.0.20 \
same-file-1.0.6 \
- schannel-0.1.27 \
+ schannel-0.1.28 \
+ schemars-0.9.0 \
+ schemars-1.0.4 \
schnellru-0.2.4 \
scoped-tls-1.0.1 \
scopeguard-1.2.0 \
sctk-adwaita-0.10.1 \
sdl2-0.35.2 \
sdl2-sys-0.35.2 \
- security-framework-3.2.0 \
- security-framework-sys-2.14.0 \
- self_cell-0.10.3 \
+ security-framework-3.4.0 \
+ security-framework-sys-2.15.0 \
self_cell-1.2.0 \
semver-0.9.0 \
semver-1.0.26 \
@@ -617,42 +629,42 @@ CARGO_CRATES= ab_glyph-0.2.29 \
send_wrapper-0.6.0 \
serde-1.0.219 \
serde_derive-1.0.219 \
- serde_json-1.0.140 \
+ serde_json-1.0.143 \
serde_path_to_error-0.1.17 \
serde_repr-0.1.20 \
- serde_spanned-0.6.8 \
+ serde_spanned-0.6.9 \
+ serde_spanned-1.0.0 \
serde_urlencoded-0.7.1 \
- serde_with-3.12.0 \
- serde_with_macros-3.12.0 \
+ serde_with-3.14.0 \
+ serde_with_macros-3.14.0 \
sha2-0.10.9 \
shaderc-0.8.3 \
shaderc-sys-0.8.3 \
sharded-slab-0.1.7 \
shell-words-1.1.0 \
- shellexpand-2.1.2 \
shellexpand-3.1.1 \
shlex-1.3.0 \
shred-0.16.1 \
shred-derive-0.7.0 \
shrev-1.1.3 \
- signal-hook-0.3.17 \
+ signal-hook-0.3.18 \
signal-hook-mio-0.2.4 \
- signal-hook-registry-1.4.5 \
+ signal-hook-registry-1.4.6 \
simd-adler32-0.3.7 \
siphasher-1.0.1 \
- slab-0.4.9 \
+ slab-0.4.11 \
slotmap-1.0.7 \
- smallvec-1.15.0 \
+ smallvec-1.15.1 \
smithay-client-toolkit-0.16.1 \
smithay-client-toolkit-0.19.2 \
smithay-clipboard-0.6.6 \
smithay-clipboard-0.7.2 \
smol_str-0.2.2 \
- socket2-0.5.9 \
- sorted-vec-0.8.6 \
- spin_sleep-1.3.1 \
+ socket2-0.5.10 \
+ socket2-0.6.0 \
+ sorted-vec-0.8.10 \
+ spin_sleep-1.3.3 \
spirv-0.3.0+sdk-1.3.268.0 \
- sptr-0.3.2 \
stable_deref_trait-1.2.0 \
stacker-0.1.21 \
static_assertions-1.1.0 \
@@ -660,7 +672,9 @@ CARGO_CRATES= ab_glyph-0.2.29 \
strict-num-0.1.1 \
strsim-0.11.1 \
strum-0.26.3 \
+ strum-0.27.2 \
strum_macros-0.26.4 \
+ strum_macros-0.27.2 \
subtle-2.6.1 \
sum_type-0.2.0 \
svg_fmt-0.4.5 \
@@ -672,68 +686,71 @@ CARGO_CRATES= ab_glyph-0.2.29 \
symphonia-utils-xiph-0.5.4 \
syn-0.15.44 \
syn-1.0.109 \
- syn-2.0.101 \
- sync_file-0.2.9 \
+ syn-2.0.106 \
+ sync_file-0.3.0 \
sync_wrapper-1.0.2 \
synstructure-0.13.2 \
system-interface-0.27.3 \
tagptr-0.2.0 \
- take-once-0.1.2 \
+ take-once-0.1.3 \
tap-1.0.1 \
tar-0.4.44 \
- target-lexicon-0.13.2 \
- tempfile-3.19.1 \
+ target-lexicon-0.13.3 \
+ tempfile-3.22.0 \
termcolor-1.4.1 \
thiserror-1.0.69 \
- thiserror-2.0.12 \
+ thiserror-2.0.16 \
thiserror-impl-1.0.69 \
- thiserror-impl-2.0.12 \
- thread_local-1.1.8 \
- time-0.3.41 \
- time-core-0.1.4 \
- time-macros-0.2.22 \
- timer-queue-0.1.0 \
+ thiserror-impl-2.0.16 \
+ thread_local-1.1.9 \
+ time-0.3.43 \
+ time-core-0.1.6 \
+ time-macros-0.2.24 \
+ timer-queue-0.1.1 \
tiny-skia-0.11.4 \
tiny-skia-path-0.11.4 \
- tinystr-0.7.6 \
+ tinystr-0.8.1 \
tinytemplate-1.2.1 \
- tinyvec-1.9.0 \
+ tinyvec-1.10.0 \
tinyvec_macros-0.1.1 \
- tokio-1.44.2 \
+ tokio-1.47.1 \
tokio-macros-2.5.0 \
tokio-rustls-0.26.2 \
tokio-stream-0.1.17 \
toml-0.5.11 \
- toml-0.8.22 \
- toml_datetime-0.6.9 \
- toml_edit-0.22.26 \
- toml_write-0.1.1 \
+ toml-0.8.23 \
+ toml-0.9.5 \
+ toml_datetime-0.6.11 \
+ toml_datetime-0.7.0 \
+ toml_edit-0.22.27 \
+ toml_parser-1.0.2 \
+ toml_write-0.1.2 \
+ toml_writer-1.0.2 \
tower-0.5.2 \
tower-layer-0.3.3 \
tower-service-0.3.3 \
tracing-0.1.41 \
tracing-appender-0.2.3 \
- tracing-attributes-0.1.28 \
- tracing-core-0.1.33 \
+ tracing-attributes-0.1.30 \
+ tracing-core-0.1.34 \
tracing-log-0.2.0 \
- tracing-subscriber-0.3.19 \
- tracing-tracy-0.11.3 \
- tracy-client-0.17.6 \
- tracy-client-sys-0.24.3 \
- trait-variant-0.1.2 \
+ tracing-subscriber-0.3.20 \
+ tracing-tracy-0.11.4 \
+ tracy-client-0.18.2 \
+ tracy-client-sys-0.26.1 \
treeculler-0.4.0 \
triple_buffer-8.1.1 \
try-lock-0.2.5 \
ttf-parser-0.25.1 \
tuple_utils-0.4.0 \
twox-hash-1.6.3 \
- twox-hash-2.1.0 \
+ twox-hash-2.1.2 \
tynm-0.1.10 \
- type-map-0.5.0 \
+ type-map-0.5.1 \
typenum-1.18.0 \
ubyte-0.10.4 \
- unic-langid-0.9.5 \
- unic-langid-impl-0.9.5 \
+ unic-langid-0.9.6 \
+ unic-langid-impl-0.9.6 \
unicode-ident-1.0.18 \
unicode-segmentation-1.12.0 \
unicode-truncate-1.1.0 \
@@ -741,12 +758,13 @@ CARGO_CRATES= ab_glyph-0.2.29 \
unicode-width-0.2.0 \
unicode-xid-0.1.0 \
unicode-xid-0.2.6 \
+ unit-prefix-0.5.1 \
untrusted-0.9.0 \
- url-2.5.4 \
- utf16_iter-1.0.5 \
+ unty-0.0.4 \
+ url-2.5.7 \
utf8_iter-1.0.4 \
utf8parse-0.2.2 \
- uuid-1.16.0 \
+ uuid-1.18.1 \
valuable-0.1.1 \
vcpkg-0.2.15 \
vec_map-0.8.2 \
@@ -755,59 +773,63 @@ CARGO_CRATES= ab_glyph-0.2.29 \
version-compare-0.1.1 \
version_check-0.9.5 \
versions-7.0.0 \
+ virtue-0.0.18 \
walkdir-2.5.0 \
want-0.3.1 \
- wasi-0.11.0+wasi-snapshot-preview1 \
- wasi-0.14.2+wasi-0.2.4 \
- wasm-bindgen-0.2.100 \
- wasm-bindgen-backend-0.2.100 \
- wasm-bindgen-futures-0.4.45 \
- wasm-bindgen-macro-0.2.100 \
- wasm-bindgen-macro-support-0.2.100 \
- wasm-bindgen-shared-0.2.100 \
- wasm-encoder-0.221.3 \
- wasm-encoder-0.229.0 \
- wasmparser-0.221.3 \
- wasmparser-0.229.0 \
- wasmprinter-0.221.3 \
- wasmtime-29.0.1 \
- wasmtime-asm-macros-29.0.1 \
- wasmtime-cache-29.0.1 \
- wasmtime-component-macro-29.0.1 \
- wasmtime-component-util-29.0.1 \
- wasmtime-cranelift-29.0.1 \
- wasmtime-environ-29.0.1 \
- wasmtime-fiber-29.0.1 \
- wasmtime-jit-debug-29.0.1 \
- wasmtime-jit-icache-coherence-29.0.1 \
- wasmtime-math-29.0.1 \
- wasmtime-slab-29.0.1 \
- wasmtime-versioned-export-macros-29.0.1 \
- wasmtime-wasi-29.0.1 \
- wasmtime-winch-29.0.1 \
- wasmtime-wit-bindgen-29.0.1 \
+ wasi-0.11.1+wasi-snapshot-preview1 \
+ wasi-0.14.5+wasi-0.2.4 \
+ wasip2-1.0.0+wasi-0.2.4 \
+ wasm-bindgen-0.2.101 \
+ wasm-bindgen-backend-0.2.101 \
+ wasm-bindgen-futures-0.4.51 \
+ wasm-bindgen-macro-0.2.101 \
+ wasm-bindgen-macro-support-0.2.101 \
+ wasm-bindgen-shared-0.2.101 \
+ wasm-encoder-0.236.1 \
+ wasm-encoder-0.239.0 \
+ wasmparser-0.236.1 \
+ wasmparser-0.239.0 \
+ wasmprinter-0.236.1 \
+ wasmtime-36.0.2 \
+ wasmtime-environ-36.0.2 \
+ wasmtime-internal-asm-macros-36.0.2 \
+ wasmtime-internal-cache-36.0.2 \
+ wasmtime-internal-component-macro-36.0.2 \
+ wasmtime-internal-component-util-36.0.2 \
+ wasmtime-internal-cranelift-36.0.2 \
+ wasmtime-internal-fiber-36.0.2 \
+ wasmtime-internal-jit-debug-36.0.2 \
+ wasmtime-internal-jit-icache-coherence-36.0.2 \
+ wasmtime-internal-math-36.0.2 \
+ wasmtime-internal-slab-36.0.2 \
+ wasmtime-internal-unwinder-36.0.2 \
+ wasmtime-internal-versioned-export-macros-36.0.2 \
+ wasmtime-internal-winch-36.0.2 \
+ wasmtime-internal-wit-bindgen-36.0.2 \
+ wasmtime-wasi-36.0.2 \
+ wasmtime-wasi-io-36.0.2 \
wast-35.0.2 \
- wast-229.0.0 \
- wat-1.229.0 \
+ wast-239.0.0 \
+ wat-1.239.0 \
wavefront-0.2.3 \
- wayland-backend-0.3.10 \
+ wayland-backend-0.3.11 \
wayland-client-0.29.5 \
- wayland-client-0.31.10 \
+ wayland-client-0.31.11 \
wayland-commons-0.29.5 \
wayland-csd-frame-0.3.0 \
wayland-cursor-0.29.5 \
- wayland-cursor-0.31.10 \
+ wayland-cursor-0.31.11 \
wayland-protocols-0.29.5 \
- wayland-protocols-0.32.8 \
- wayland-protocols-plasma-0.3.8 \
- wayland-protocols-wlr-0.3.8 \
+ wayland-protocols-0.32.9 \
+ wayland-protocols-plasma-0.3.9 \
+ wayland-protocols-wlr-0.3.9 \
wayland-scanner-0.29.5 \
- wayland-scanner-0.31.6 \
+ wayland-scanner-0.31.7 \
wayland-sys-0.29.5 \
- wayland-sys-0.31.6 \
- web-sys-0.3.77 \
+ wayland-sys-0.31.7 \
+ web-sys-0.3.78 \
web-time-1.1.0 \
- webpki-root-certs-0.26.10 \
+ webpki-root-certs-1.0.2 \
wfd-0.1.7 \
wgpu-26.0.1 \
wgpu-core-26.0.1 \
@@ -819,103 +841,120 @@ CARGO_CRATES= ab_glyph-0.2.29 \
wgpu-types-26.0.0 \
which-7.0.3 \
widestring-1.2.0 \
- wiggle-29.0.1 \
- wiggle-generate-29.0.1 \
- wiggle-macro-29.0.1 \
+ wiggle-36.0.2 \
+ wiggle-generate-36.0.2 \
+ wiggle-macro-36.0.2 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.9 \
+ winapi-util-0.1.11 \
winapi-wsapoll-0.1.2 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
- winch-codegen-29.0.1 \
+ winch-codegen-36.0.2 \
window_clipboard-0.4.1 \
windows-0.48.0 \
windows-0.54.0 \
windows-0.58.0 \
+ windows-0.61.3 \
+ windows-collections-0.2.0 \
windows-core-0.54.0 \
windows-core-0.58.0 \
- windows-core-0.61.0 \
+ windows-core-0.61.2 \
+ windows-future-0.2.1 \
windows-implement-0.58.0 \
windows-implement-0.60.0 \
windows-interface-0.58.0 \
windows-interface-0.59.1 \
- windows-link-0.1.1 \
+ windows-link-0.1.3 \
+ windows-link-0.2.0 \
+ windows-numerics-0.2.0 \
windows-result-0.1.2 \
windows-result-0.2.0 \
- windows-result-0.3.2 \
+ windows-result-0.3.4 \
windows-strings-0.1.0 \
- windows-strings-0.4.0 \
+ windows-strings-0.4.2 \
windows-sys-0.45.0 \
windows-sys-0.48.0 \
windows-sys-0.52.0 \
windows-sys-0.59.0 \
+ windows-sys-0.60.2 \
+ windows-sys-0.61.0 \
windows-targets-0.42.2 \
windows-targets-0.48.5 \
windows-targets-0.52.6 \
+ windows-targets-0.53.3 \
+ windows-threading-0.1.0 \
windows_aarch64_gnullvm-0.42.2 \
windows_aarch64_gnullvm-0.48.5 \
windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_gnullvm-0.53.0 \
windows_aarch64_msvc-0.42.2 \
windows_aarch64_msvc-0.48.5 \
windows_aarch64_msvc-0.52.6 \
+ windows_aarch64_msvc-0.53.0 \
windows_i686_gnu-0.42.2 \
windows_i686_gnu-0.48.5 \
windows_i686_gnu-0.52.6 \
+ windows_i686_gnu-0.53.0 \
windows_i686_gnullvm-0.52.6 \
+ windows_i686_gnullvm-0.53.0 \
windows_i686_msvc-0.42.2 \
windows_i686_msvc-0.48.5 \
windows_i686_msvc-0.52.6 \
+ windows_i686_msvc-0.53.0 \
windows_x86_64_gnu-0.42.2 \
windows_x86_64_gnu-0.48.5 \
windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnu-0.53.0 \
windows_x86_64_gnullvm-0.42.2 \
windows_x86_64_gnullvm-0.48.5 \
windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_gnullvm-0.53.0 \
windows_x86_64_msvc-0.42.2 \
windows_x86_64_msvc-0.48.5 \
windows_x86_64_msvc-0.52.6 \
+ windows_x86_64_msvc-0.53.0 \
winit-0.30.12 \
- winnow-0.7.9 \
+ winnow-0.7.13 \
winreg-0.50.0 \
winreg-0.52.0 \
winres-0.1.12 \
winsafe-0.0.19 \
winx-0.36.4 \
- wit-bindgen-rt-0.39.0 \
- wit-parser-0.221.3 \
+ wit-bindgen-0.45.1 \
+ wit-parser-0.236.1 \
witx-0.9.1 \
- write16-1.0.0 \
- writeable-0.5.5 \
+ writeable-0.6.1 \
wyz-0.5.1 \
x11-clipboard-0.7.1 \
x11-dl-2.21.0 \
x11rb-0.10.1 \
- x11rb-0.13.1 \
+ x11rb-0.13.2 \
x11rb-protocol-0.10.0 \
- x11rb-protocol-0.13.1 \
- xattr-1.5.0 \
- xcursor-0.3.8 \
+ x11rb-protocol-0.13.2 \
+ xattr-1.5.1 \
+ xcursor-0.3.10 \
xdg-2.5.2 \
xi-unicode-0.3.0 \
xkbcommon-dl-0.4.2 \
xkeysym-0.2.1 \
- xml-rs-0.8.26 \
+ xml-rs-0.8.27 \
xmlparser-0.13.6 \
yasna-0.5.2 \
- yoke-0.7.5 \
- yoke-derive-0.7.5 \
- zerocopy-0.8.25 \
- zerocopy-derive-0.8.25 \
+ yoke-0.8.0 \
+ yoke-derive-0.8.0 \
+ zerocopy-0.8.27 \
+ zerocopy-derive-0.8.27 \
zerofrom-0.1.6 \
zerofrom-derive-0.1.6 \
zeroize-1.8.1 \
- zerovec-0.10.4 \
- zerovec-derive-0.10.3 \
+ zerotrie-0.2.2 \
+ zerovec-0.11.4 \
+ zerovec-derive-0.11.1 \
zstd-0.13.3 \
zstd-safe-7.2.4 \
- zstd-sys-2.0.15+zstd.1.5.7 \
+ zstd-sys-2.0.16+zstd.1.5.7 \
zune-core-0.4.12 \
- zune-jpeg-0.4.14 \
+ zune-jpeg-0.4.21 \
specs,specs-derive@git+https://github.com/amethyst/specs.git?rev=4e2da1df29ee840baa9b936593c45592b7c9ae27\#4e2da1df29ee840baa9b936593c45592b7c9ae27 \
auth-common,authc@git+https://gitlab.com/veloren/auth.git?rev=ae0e16783a9f9041951296885f082308e155db79\#ae0e16783a9f9041951296885f082308e155db79 \
iced_core,iced_futures,iced_native@git+https://github.com/Imberflur/iced?tag=veloren-winit-0.28\#47243c257c8b8dd6c506b060804cb00b618aa0aa \
diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo
index b14522a498f5..9d0f967e977a 100644
--- a/games/veloren-weekly/distinfo
+++ b/games/veloren-weekly/distinfo
@@ -1,12 +1,14 @@
-TIMESTAMP = 1756940516
-SHA256 (rust/crates/ab_glyph-0.2.29.crate) = ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0
-SIZE (rust/crates/ab_glyph-0.2.29.crate) = 20011
-SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046
-SIZE (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = 11010
+TIMESTAMP = 1757497798
+SHA256 (rust/crates/ab_glyph-0.2.31.crate) = e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d
+SIZE (rust/crates/ab_glyph-0.2.31.crate) = 20909
+SHA256 (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618
+SIZE (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 11206
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
-SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
-SIZE (rust/crates/adler2-2.0.0.crate) = 13529
+SHA256 (rust/crates/addr2line-0.25.0.crate) = 9acbfca36652500c911ddb767ed433e3ed99b032b5d935be73c6923662db1d43
+SIZE (rust/crates/addr2line-0.25.0.crate) = 41982
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234
SIZE (rust/crates/adler32-1.2.0.crate) = 6411
SHA256 (rust/crates/ahash-0.4.8.crate) = 0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289
@@ -27,24 +29,22 @@ SHA256 (rust/crates/android-activity-0.6.0.crate) = ef6978589202a00cd7e118380c44
SIZE (rust/crates/android-activity-0.6.0.crate) = 258597
SHA256 (rust/crates/android-properties-0.2.2.crate) = fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04
SIZE (rust/crates/android-properties-0.2.2.crate) = 4563
-SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
-SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
SHA256 (rust/crates/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299
SIZE (rust/crates/anes-0.1.6.crate) = 23857
-SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b
-SIZE (rust/crates/anstream-0.6.18.crate) = 29681
-SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9
-SIZE (rust/crates/anstyle-1.0.10.crate) = 15725
-SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9
-SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343
-SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c
-SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969
-SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e
-SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400
-SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487
-SIZE (rust/crates/anyhow-1.0.98.crate) = 53334
+SHA256 (rust/crates/anstream-0.6.20.crate) = 3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192
+SIZE (rust/crates/anstream-0.6.20.crate) = 28797
+SHA256 (rust/crates/anstyle-1.0.11.crate) = 862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd
+SIZE (rust/crates/anstyle-1.0.11.crate) = 15880
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2
+SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192
+SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a
+SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558
+SHA256 (rust/crates/anyhow-1.0.99.crate) = b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100
+SIZE (rust/crates/anyhow-1.0.99.crate) = 53809
SHA256 (rust/crates/anymap2-0.13.0.crate) = d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c
SIZE (rust/crates/anymap2-0.13.0.crate) = 17337
SHA256 (rust/crates/app_dirs2-2.5.5.crate) = a7e7b35733e3a8c1ccb90385088dd5b6eaa61325cb4d1ad56e683b5224ff352e
@@ -55,8 +55,8 @@ SHA256 (rust/crates/approx-0.4.0.crate) = 3f2a05fd1bd10b2527e20a2cd32d8873d115b8
SIZE (rust/crates/approx-0.4.0.crate) = 14280
SHA256 (rust/crates/approx-0.5.1.crate) = cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6
SIZE (rust/crates/approx-0.5.1.crate) = 15100
-SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223
-SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816
+SHA256 (rust/crates/arbitrary-1.4.2.crate) = c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1
+SIZE (rust/crates/arbitrary-1.4.2.crate) = 38307
SHA256 (rust/crates/arr_macro-0.2.1.crate) = c49336e062fa2ae8aca17a2f99c34d9c1a5d30827e8aff1cb4c294f253afe992
SIZE (rust/crates/arr_macro-0.2.1.crate) = 6504
SHA256 (rust/crates/arr_macro_impl-0.2.1.crate) = 9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e
@@ -71,12 +71,12 @@ SHA256 (rust/crates/ascii-1.1.0.crate) = d92bec98840b8f03a5ff5413de5293bfcd8bf96
SIZE (rust/crates/ascii-1.1.0.crate) = 36075
SHA256 (rust/crates/ash-0.38.0+1.3.281.crate) = 0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f
SIZE (rust/crates/ash-0.38.0+1.3.281.crate) = 457775
-SHA256 (rust/crates/assets_manager-0.12.5.crate) = 017916aa0241c9944e5e7483d74e9d053edea690a77a36f3bf342c75ad23f7cb
-SIZE (rust/crates/assets_manager-0.12.5.crate) = 68736
-SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a
-SIZE (rust/crates/async-channel-2.3.1.crate) = 14576
-SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5
-SIZE (rust/crates/async-trait-0.1.88.crate) = 32084
+SHA256 (rust/crates/assets_manager-0.13.2.crate) = 88efd382e54d403ac4bdf5841d8028f85ef207c8492a19f8427b72be6c3cfc94
+SIZE (rust/crates/assets_manager-0.13.2.crate) = 64678
+SHA256 (rust/crates/async-channel-2.5.0.crate) = 924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2
+SIZE (rust/crates/async-channel-2.5.0.crate) = 18624
+SHA256 (rust/crates/async-trait-0.1.89.crate) = 9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb
+SIZE (rust/crates/async-trait-0.1.89.crate) = 32171
SHA256 (rust/crates/atomic-arena-0.1.2.crate) = 73e8ed45f88ed32e6827a96b62d8fd4086d72defc754c5c6bd08470c1aaf648e
SIZE (rust/crates/atomic-arena-0.1.2.crate) = 12495
SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
@@ -85,32 +85,34 @@ SHA256 (rust/crates/atomic_refcell-0.1.13.crate) = 41e67cd8309bbd06cd603a9e693a7
SIZE (rust/crates/atomic_refcell-0.1.13.crate) = 11760
SHA256 (rust/crates/atomicwrites-0.4.4.crate) = 3ef1bb8d1b645fe38d51dfc331d720fb5fc2c94b440c76cc79c80ff265ca33e3
SIZE (rust/crates/atomicwrites-0.4.4.crate) = 6598
-SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
-SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
SHA256 (rust/crates/axum-0.8.4.crate) = 021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5
SIZE (rust/crates/axum-0.8.4.crate) = 175159
SHA256 (rust/crates/axum-core-0.5.2.crate) = 68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6
SIZE (rust/crates/axum-core-0.5.2.crate) = 26212
SHA256 (rust/crates/az-1.2.1.crate) = 7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973
SIZE (rust/crates/az-1.2.1.crate) = 27842
-SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a
-SIZE (rust/crates/backtrace-0.3.74.crate) = 88516
+SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002
+SIZE (rust/crates/backtrace-0.3.75.crate) = 92665
SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
SIZE (rust/crates/base64-0.21.7.crate) = 82576
SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
SIZE (rust/crates/base64-0.22.1.crate) = 81597
-SHA256 (rust/crates/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad
-SIZE (rust/crates/bincode-1.3.3.crate) = 28958
-SHA256 (rust/crates/bindgen-0.70.1.crate) = f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f
-SIZE (rust/crates/bindgen-0.70.1.crate) = 226363
+SHA256 (rust/crates/bincode-2.0.1.crate) = 36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740
+SIZE (rust/crates/bincode-2.0.1.crate) = 70469
+SHA256 (rust/crates/bincode_derive-2.0.1.crate) = bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09
+SIZE (rust/crates/bincode_derive-2.0.1.crate) = 7404
+SHA256 (rust/crates/bindgen-0.72.1.crate) = 993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895
+SIZE (rust/crates/bindgen-0.72.1.crate) = 246071
SHA256 (rust/crates/bit-set-0.8.0.crate) = 08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3
SIZE (rust/crates/bit-set-0.8.0.crate) = 16289
SHA256 (rust/crates/bit-vec-0.8.0.crate) = 5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7
SIZE (rust/crates/bit-vec-0.8.0.crate) = 24132
SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd
-SIZE (rust/crates/bitflags-2.9.0.crate) = 47654
+SHA256 (rust/crates/bitflags-2.9.4.crate) = 2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394
+SIZE (rust/crates/bitflags-2.9.4.crate) = 47950
SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c
SIZE (rust/crates/bitvec-1.0.1.crate) = 224375
SHA256 (rust/crates/blake2b_simd-1.0.3.crate) = 06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99
@@ -123,12 +125,12 @@ SHA256 (rust/crates/block2-0.5.1.crate) = 2c132eebf10f5cad5289222520a4a058514204
SIZE (rust/crates/block2-0.5.1.crate) = 24191
SHA256 (rust/crates/block2-0.6.1.crate) = 340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2
SIZE (rust/crates/block2-0.6.1.crate) = 34311
-SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf
-SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975
-SHA256 (rust/crates/bytemuck-1.23.0.crate) = 9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c
-SIZE (rust/crates/bytemuck-1.23.0.crate) = 52534
-SHA256 (rust/crates/bytemuck_derive-1.9.3.crate) = 7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1
-SIZE (rust/crates/bytemuck_derive-1.9.3.crate) = 23555
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
+SHA256 (rust/crates/bytemuck-1.23.2.crate) = 3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677
+SIZE (rust/crates/bytemuck-1.23.2.crate) = 53021
+SHA256 (rust/crates/bytemuck_derive-1.10.1.crate) = 4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29
+SIZE (rust/crates/bytemuck_derive-1.10.1.crate) = 25122
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495
@@ -157,10 +159,10 @@ SHA256 (rust/crates/cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40
SIZE (rust/crates/cassowary-0.3.0.crate) = 22876
SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5
SIZE (rust/crates/cast-0.3.0.crate) = 11452
-SHA256 (rust/crates/castaway-0.2.3.crate) = 0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5
-SIZE (rust/crates/castaway-0.2.3.crate) = 11509
-SHA256 (rust/crates/cc-1.2.21.crate) = 8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0
-SIZE (rust/crates/cc-1.2.21.crate) = 106117
+SHA256 (rust/crates/castaway-0.2.4.crate) = dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a
+SIZE (rust/crates/castaway-0.2.4.crate) = 12546
+SHA256 (rust/crates/cc-1.2.36.crate) = 5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54
+SIZE (rust/crates/cc-1.2.36.crate) = 90198
SHA256 (rust/crates/censor-0.3.0.crate) = d41e3b9fdbb9b3edc10dc66a06dc255822f699c432e19403fb966e6d60e0dec4
SIZE (rust/crates/censor-0.3.0.crate) = 5627
SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c
@@ -169,18 +171,16 @@ SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb62990
SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822
SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933
-SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
-SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
-SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d
-SIZE (rust/crates/chrono-0.4.41.crate) = 234621
-SHA256 (rust/crates/chrono-tz-0.10.3.crate) = efdce149c370f133a071ca8ef6ea340b7b88748ab0810097a9e2976eaa34b4f3
-SIZE (rust/crates/chrono-tz-0.10.3.crate) = 380709
-SHA256 (rust/crates/chrono-tz-build-0.4.1.crate) = 8f10f8c9340e31fc120ff885fcdb54a0b48e474bbd77cab557f0c30a3e569402
-SIZE (rust/crates/chrono-tz-build-0.4.1.crate) = 11798
-SHA256 (rust/crates/chumsky-0.9.3.crate) = 8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9
-SIZE (rust/crates/chumsky-0.9.3.crate) = 75112
+SHA256 (rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2
+SIZE (rust/crates/chrono-0.4.42.crate) = 238174
+SHA256 (rust/crates/chrono-tz-0.10.4.crate) = a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3
+SIZE (rust/crates/chrono-tz-0.10.4.crate) = 794377
+SHA256 (rust/crates/chumsky-0.10.1.crate) = 14377e276b2c8300513dff55ba4cc4142b44e5d6de6d00eb5b2307d650bb4ec1
+SIZE (rust/crates/chumsky-0.10.1.crate) = 175210
SHA256 (rust/crates/ciborium-0.2.2.crate) = 42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e
SIZE (rust/crates/ciborium-0.2.2.crate) = 35611
SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757
@@ -189,18 +189,18 @@ SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5f
SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695
SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4
SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009
-SHA256 (rust/crates/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071
-SIZE (rust/crates/clap-4.5.37.crate) = 56962
-SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2
-SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761
-SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7
-SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441
-SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6
-SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858
+SHA256 (rust/crates/clap-4.5.47.crate) = 7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931
+SIZE (rust/crates/clap-4.5.47.crate) = 58354
+SHA256 (rust/crates/clap_builder-4.5.47.crate) = 2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6
+SIZE (rust/crates/clap_builder-4.5.47.crate) = 170016
+SHA256 (rust/crates/clap_derive-4.5.47.crate) = bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c
+SIZE (rust/crates/clap_derive-4.5.47.crate) = 33550
+SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
+SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
SHA256 (rust/crates/clipboard-win-3.1.1.crate) = 9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342
SIZE (rust/crates/clipboard-win-3.1.1.crate) = 11964
-SHA256 (rust/crates/clipboard-win-5.4.0.crate) = 15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892
-SIZE (rust/crates/clipboard-win-5.4.0.crate) = 20559
+SHA256 (rust/crates/clipboard-win-5.4.1.crate) = bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4
+SIZE (rust/crates/clipboard-win-5.4.1.crate) = 20994
SHA256 (rust/crates/clipboard_macos-0.1.1.crate) = 9b7f4aaa047ba3c3630b080bb9860894732ff23e2aee290a418909aa6d5df38f
SIZE (rust/crates/clipboard_macos-0.1.1.crate) = 6037
SHA256 (rust/crates/clipboard_wayland-0.2.2.crate) = 003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8
@@ -209,30 +209,32 @@ SHA256 (rust/crates/clipboard_x11-0.4.2.crate) = 4274ea815e013e0f9f04a2633423e14
SIZE (rust/crates/clipboard_x11-0.4.2.crate) = 4912
SHA256 (rust/crates/cmake-0.1.54.crate) = e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0
SIZE (rust/crates/cmake-0.1.54.crate) = 18955
-SHA256 (rust/crates/cobs-0.2.3.crate) = 67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15
-SIZE (rust/crates/cobs-0.2.3.crate) = 12576
+SHA256 (rust/crates/cobs-0.3.0.crate) = 0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1
+SIZE (rust/crates/cobs-0.3.0.crate) = 15639
SHA256 (rust/crates/codespan-reporting-0.12.0.crate) = fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81
SIZE (rust/crates/codespan-reporting-0.12.0.crate) = 55796
-SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990
-SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923
+SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75
+SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd
SIZE (rust/crates/combine-4.6.7.crate) = 134808
SHA256 (rust/crates/compact_str-0.8.1.crate) = 3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32
SIZE (rust/crates/compact_str-0.8.1.crate) = 71371
SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973
SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654
-SHA256 (rust/crates/console-0.15.11.crate) = 054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8
-SIZE (rust/crates/console-0.15.11.crate) = 37822
+SHA256 (rust/crates/console-0.16.1.crate) = b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4
+SIZE (rust/crates/console-0.16.1.crate) = 39129
SHA256 (rust/crates/console_error_panic_hook-0.1.7.crate) = a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc
SIZE (rust/crates/console_error_panic_hook-0.1.7.crate) = 507196
SHA256 (rust/crates/constant_time_eq-0.3.1.crate) = 7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6
SIZE (rust/crates/constant_time_eq-0.3.1.crate) = 11561
+SHA256 (rust/crates/convert_case-0.7.1.crate) = bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7
+SIZE (rust/crates/convert_case-0.7.1.crate) = 23816
SHA256 (rust/crates/copypasta-0.8.2.crate) = 133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172
SIZE (rust/crates/copypasta-0.8.2.crate) = 13030
SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
-SHA256 (rust/crates/core-foundation-0.10.0.crate) = b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63
-SIZE (rust/crates/core-foundation-0.10.0.crate) = 27023
+SHA256 (rust/crates/core-foundation-0.10.1.crate) = b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6
+SIZE (rust/crates/core-foundation-0.10.1.crate) = 28886
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
SHA256 (rust/crates/core-graphics-0.23.2.crate) = c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081
@@ -243,40 +245,46 @@ SHA256 (rust/crates/core-graphics-types-0.2.0.crate) = 3d44a101f213f6c4cdc1853d4
SIZE (rust/crates/core-graphics-types-0.2.0.crate) = 7098
SHA256 (rust/crates/coreaudio-rs-0.11.3.crate) = 321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace
SIZE (rust/crates/coreaudio-rs-0.11.3.crate) = 42844
-SHA256 (rust/crates/coreaudio-sys-0.2.16.crate) = 2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b
-SIZE (rust/crates/coreaudio-sys-0.2.16.crate) = 5480
+SHA256 (rust/crates/coreaudio-sys-0.2.17.crate) = ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6
+SIZE (rust/crates/coreaudio-sys-0.2.17.crate) = 7591
SHA256 (rust/crates/cpal-0.15.3.crate) = 873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779
SIZE (rust/crates/cpal-0.15.3.crate) = 100083
SHA256 (rust/crates/cpp_demangle-0.4.4.crate) = 96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d
SIZE (rust/crates/cpp_demangle-0.4.4.crate) = 79650
SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
-SHA256 (rust/crates/cranelift-bforest-0.116.1.crate) = e15d04a0ce86cb36ead88ad68cf693ffd6cda47052b9e0ac114bc47fd9cd23c4
-SIZE (rust/crates/cranelift-bforest-0.116.1.crate) = 30861
-SHA256 (rust/crates/cranelift-bitset-0.116.1.crate) = 7c6e3969a7ce267259ce244b7867c5d3bc9e65b0a87e81039588dfdeaede9f34
-SIZE (rust/crates/cranelift-bitset-0.116.1.crate) = 8056
-SHA256 (rust/crates/cranelift-codegen-0.116.1.crate) = 2c22032c4cb42558371cf516bb47f26cdad1819d3475c133e93c49f50ebf304e
-SIZE (rust/crates/cranelift-codegen-0.116.1.crate) = 1051844
-SHA256 (rust/crates/cranelift-codegen-meta-0.116.1.crate) = c904bc71c61b27fc57827f4a1379f29de64fe95653b620a3db77d59655eee0b8
-SIZE (rust/crates/cranelift-codegen-meta-0.116.1.crate) = 80475
-SHA256 (rust/crates/cranelift-codegen-shared-0.116.1.crate) = 40180f5497572f644ce88c255480981ae2ec1d7bb4d8e0c0136a13b87a2f2ceb
-SIZE (rust/crates/cranelift-codegen-shared-0.116.1.crate) = 6155
-SHA256 (rust/crates/cranelift-control-0.116.1.crate) = 26d132c6d0bd8a489563472afc171759da0707804a65ece7ceb15a8c6d7dd5ef
-SIZE (rust/crates/cranelift-control-0.116.1.crate) = 8253
-SHA256 (rust/crates/cranelift-entity-0.116.1.crate) = 4b2d0d9618275474fbf679dd018ac6e009acbd6ae6850f6a67be33fb3b00b323
-SIZE (rust/crates/cranelift-entity-0.116.1.crate) = 29325
-SHA256 (rust/crates/cranelift-frontend-0.116.1.crate) = 4fac41e16729107393174b0c9e3730fb072866100e1e64e80a1a963b2e484d57
-SIZE (rust/crates/cranelift-frontend-0.116.1.crate) = 54378
-SHA256 (rust/crates/cranelift-isle-0.116.1.crate) = 1ca20d576e5070044d0a72a9effc2deacf4d6aa650403189d8ea50126483944d
-SIZE (rust/crates/cranelift-isle-0.116.1.crate) = 75233
-SHA256 (rust/crates/cranelift-native-0.116.1.crate) = b8dee82f3f1f2c4cba9177f1cc5e350fe98764379bcd29340caa7b01f85076c7
-SIZE (rust/crates/cranelift-native-0.116.1.crate) = 10709
-SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
-SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
-SHA256 (rust/crates/criterion-0.5.1.crate) = f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f
-SIZE (rust/crates/criterion-0.5.1.crate) = 110088
-SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1
-SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706
+SHA256 (rust/crates/cranelift-assembler-x64-0.123.2.crate) = 0920ef6863433fa28ece7e53925be4cd39a913adba2dc3738f4edd182f76d168
+SIZE (rust/crates/cranelift-assembler-x64-0.123.2.crate) = 25503
+SHA256 (rust/crates/cranelift-assembler-x64-meta-0.123.2.crate) = 8990a217e2529a378af1daf4f8afa889f928f07ebbde6ae2f058ae60e40e2c20
+SIZE (rust/crates/cranelift-assembler-x64-meta-0.123.2.crate) = 45912
+SHA256 (rust/crates/cranelift-bforest-0.123.2.crate) = 62225596b687f69a42c038485a28369badc186cb7c74bd9436eeec9f539011b1
+SIZE (rust/crates/cranelift-bforest-0.123.2.crate) = 30977
+SHA256 (rust/crates/cranelift-bitset-0.123.2.crate) = c23914fc4062558650a6f0d8c1846c97b541215a291fdeabc85f68bdc9bbcca3
+SIZE (rust/crates/cranelift-bitset-0.123.2.crate) = 8528
+SHA256 (rust/crates/cranelift-codegen-0.123.2.crate) = 41a238b2f7e7ec077eb170145fa15fd8b3d0f36cc83d8e354e29ca550f339ca7
+SIZE (rust/crates/cranelift-codegen-0.123.2.crate) = 1063626
+SHA256 (rust/crates/cranelift-codegen-meta-0.123.2.crate) = 9315ddcc2512513a9d66455ec89bb70ae5498cb472f5ed990230536f4cd5c011
+SIZE (rust/crates/cranelift-codegen-meta-0.123.2.crate) = 90269
+SHA256 (rust/crates/cranelift-codegen-shared-0.123.2.crate) = dc6acea40ef860f28cb36eaad479e26556c1e538b0a66fc44598cf1b1689393d
+SIZE (rust/crates/cranelift-codegen-shared-0.123.2.crate) = 6184
+SHA256 (rust/crates/cranelift-control-0.123.2.crate) = 6b2af895da90761cfda4a4445960554fcec971e637882eda5a87337d993fe1b9
+SIZE (rust/crates/cranelift-control-0.123.2.crate) = 8295
+SHA256 (rust/crates/cranelift-entity-0.123.2.crate) = 6e8c542c856feb50d504e4fc0526b3db3a514f882a9f68f956164531517828ab
+SIZE (rust/crates/cranelift-entity-0.123.2.crate) = 30369
+SHA256 (rust/crates/cranelift-frontend-0.123.2.crate) = 9996dd9c20929c03360fe0c4edf3594c0cbb94525bdbfa04b6bb639ec14573c7
+SIZE (rust/crates/cranelift-frontend-0.123.2.crate) = 57323
+SHA256 (rust/crates/cranelift-isle-0.123.2.crate) = 928b8dccad51b9e0ffe54accbd617da900239439b13d48f0f122ab61105ca6ad
+SIZE (rust/crates/cranelift-isle-0.123.2.crate) = 79067
+SHA256 (rust/crates/cranelift-native-0.123.2.crate) = 7f75ef0a6a2efed3a2a14812318e28dc82c214eab5399c13d70878e2f88947b5
+SIZE (rust/crates/cranelift-native-0.123.2.crate) = 11223
+SHA256 (rust/crates/cranelift-srcgen-0.123.2.crate) = 673bd6d1c83cb41d60afb140a1474ef6caf1a3e02f3820fc522aefbc93ac67d6
+SIZE (rust/crates/cranelift-srcgen-0.123.2.crate) = 6068
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
+SHA256 (rust/crates/criterion-0.7.0.crate) = e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928
+SIZE (rust/crates/criterion-0.7.0.crate) = 119908
+SHA256 (rust/crates/criterion-plot-0.6.0.crate) = 9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338
+SIZE (rust/crates/criterion-plot-0.6.0.crate) = 24495
SHA256 (rust/crates/critical-section-1.2.0.crate) = 790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b
SIZE (rust/crates/critical-section-1.2.0.crate) = 19133
SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2
@@ -297,10 +305,12 @@ SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aa
SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
SHA256 (rust/crates/crossterm-0.28.1.crate) = 829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6
SIZE (rust/crates/crossterm-0.28.1.crate) = 132275
+SHA256 (rust/crates/crossterm-0.29.0.crate) = d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b
+SIZE (rust/crates/crossterm-0.29.0.crate) = 136635
SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b
SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027
-SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929
-SIZE (rust/crates/crunchy-0.2.3.crate) = 3775
+SHA256 (rust/crates/crunchy-0.2.4.crate) = 460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5
+SIZE (rust/crates/crunchy-0.2.4.crate) = 3887
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
SHA256 (rust/crates/csv-1.3.1.crate) = acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf
@@ -311,16 +321,22 @@ SHA256 (rust/crates/culpa-1.0.2.crate) = 5ae0bfe9317b1cb4ff5a56d766ee4b157b3e1f4
SIZE (rust/crates/culpa-1.0.2.crate) = 10733
SHA256 (rust/crates/culpa-macros-1.0.2.crate) = 1234e1717066d3c71dcf89b75e7b586299e41204d361db56ec51e6ded5014279
SIZE (rust/crates/culpa-macros-1.0.2.crate) = 3325
-SHA256 (rust/crates/cursor-icon-1.1.0.crate) = 96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991
-SIZE (rust/crates/cursor-icon-1.1.0.crate) = 11453
+SHA256 (rust/crates/cursor-icon-1.2.0.crate) = f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f
+SIZE (rust/crates/cursor-icon-1.2.0.crate) = 14267
SHA256 (rust/crates/daggy-0.5.0.crate) = 9293a0da7d1bc1f30090ece4d9f9de79a07be7302ddb00e5eb1fefb6ee6409e2
SIZE (rust/crates/daggy-0.5.0.crate) = 17832
SHA256 (rust/crates/darling-0.20.11.crate) = fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee
SIZE (rust/crates/darling-0.20.11.crate) = 37614
+SHA256 (rust/crates/darling-0.21.3.crate) = 9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0
+SIZE (rust/crates/darling-0.21.3.crate) = 41398
SHA256 (rust/crates/darling_core-0.20.11.crate) = 0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e
SIZE (rust/crates/darling_core-0.20.11.crate) = 68006
+SHA256 (rust/crates/darling_core-0.21.3.crate) = 1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4
+SIZE (rust/crates/darling_core-0.21.3.crate) = 74471
SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead
SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532
+SHA256 (rust/crates/darling_macro-0.21.3.crate) = d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81
+SIZE (rust/crates/darling_macro-0.21.3.crate) = 2535
SHA256 (rust/crates/dasp_sample-0.11.0.crate) = 0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f
SIZE (rust/crates/dasp_sample-0.11.0.crate) = 11617
SHA256 (rust/crates/data-encoding-2.9.0.crate) = 2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476
@@ -331,18 +347,18 @@ SHA256 (rust/crates/deflate-1.0.0.crate) = c86f7e25f518f4b81808a2cf1c50996a61f5c
SIZE (rust/crates/deflate-1.0.0.crate) = 62722
SHA256 (rust/crates/delaunator-1.0.2.crate) = 0ab46e386c7a38300a0d93b0f3e484bc2ee0aded66c47b14762ec9ab383934fa
SIZE (rust/crates/delaunator-1.0.2.crate) = 95108
-SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
-SIZE (rust/crates/deranged-0.4.0.crate) = 23235
+SHA256 (rust/crates/deranged-0.5.3.crate) = d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc
+SIZE (rust/crates/deranged-0.5.3.crate) = 24353
+SHA256 (rust/crates/derive_more-2.0.1.crate) = 093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678
+SIZE (rust/crates/derive_more-2.0.1.crate) = 70127
+SHA256 (rust/crates/derive_more-impl-2.0.1.crate) = bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3
+SIZE (rust/crates/derive_more-impl-2.0.1.crate) = 78233
SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
SIZE (rust/crates/digest-0.10.7.crate) = 19557
SHA256 (rust/crates/directories-next-2.0.0.crate) = 339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc
SIZE (rust/crates/directories-next-2.0.0.crate) = 15153
-SHA256 (rust/crates/dirs-4.0.0.crate) = ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059
-SIZE (rust/crates/dirs-4.0.0.crate) = 12503
SHA256 (rust/crates/dirs-6.0.0.crate) = c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e
SIZE (rust/crates/dirs-6.0.0.crate) = 14190
-SHA256 (rust/crates/dirs-sys-0.3.7.crate) = 1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6
-SIZE (rust/crates/dirs-sys-0.3.7.crate) = 10597
SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab
SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157
SHA256 (rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d
@@ -371,10 +387,12 @@ SHA256 (rust/crates/dpi-0.1.2.crate) = d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3
SIZE (rust/crates/dpi-0.1.2.crate) = 14812
SHA256 (rust/crates/drop_guard-0.3.0.crate) = 2c4a817d8b683f6e649aed359aab0c47a875377516bb5791d0f7e46d9066d209
SIZE (rust/crates/drop_guard-0.3.0.crate) = 4614
-SHA256 (rust/crates/ecolor-0.32.1.crate) = b6a7fc3172c2ef56966b2ce4f84177e159804c40b9a84de8861558ce4a59f422
-SIZE (rust/crates/ecolor-0.32.1.crate) = 16363
-SHA256 (rust/crates/egui-0.32.1.crate) = 49e2be082f77715496b4a39fdc6f5dc7491fefe2833111781b8697ea6ee919a7
-SIZE (rust/crates/egui-0.32.1.crate) = 390134
+SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555
+SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134
+SHA256 (rust/crates/ecolor-0.32.2.crate) = ebb57dec02e4cca6d70d02e29865f7e52dbd471383f4c3444dda7ee78d467360
+SIZE (rust/crates/ecolor-0.32.2.crate) = 16361
+SHA256 (rust/crates/egui-0.32.2.crate) = 40df1115b8b0f3d4f1f9134a26287fd3d0e067fc18f879b8c9641aedf3eecef7
+SIZE (rust/crates/egui-0.32.2.crate) = 390290
SHA256 (rust/crates/egui_plot-0.33.0.crate) = 524318041a8ea90c81c738e8985f8ad9e3f9bed636b03c2ff37b218113ed5121
SIZE (rust/crates/egui_plot-0.33.0.crate) = 50709
SHA256 (rust/crates/egui_wgpu_backend-0.35.0.crate) = 00298a0625eba5b3a4f39444766d2590e45fa550446fb07dfefc90e84797f4f3
@@ -385,8 +403,8 @@ SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e
SIZE (rust/crates/either-1.15.0.crate) = 20114
SHA256 (rust/crates/elapsed-0.1.2.crate) = 6f4e5af126dafd0741c2ad62d47f68b28602550102e5f0dd45c8a97fc8b49c29
SIZE (rust/crates/elapsed-0.1.2.crate) = 2377
-SHA256 (rust/crates/emath-0.32.1.crate) = 935df67dc48fdeef132f2f7ada156ddc79e021344dd42c17f066b956bb88dde3
-SIZE (rust/crates/emath-0.32.1.crate) = 32349
+SHA256 (rust/crates/emath-0.32.2.crate) = b5c95b6d5571099bfa0ae9f4fdaef2c239bccb01d55339a082070259dc6f3b05
+SIZE (rust/crates/emath-0.32.2.crate) = 32352
SHA256 (rust/crates/embedded-io-0.4.0.crate) = ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced
SIZE (rust/crates/embedded-io-0.4.0.crate) = 12901
SHA256 (rust/crates/embedded-io-0.6.1.crate) = edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d
@@ -403,44 +421,48 @@ SHA256 (rust/crates/enum-map-2.7.3.crate) = 6866f3bfdf8207509a033af1a75a7b08abda
SIZE (rust/crates/enum-map-2.7.3.crate) = 21792
SHA256 (rust/crates/enum-map-derive-0.17.0.crate) = f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb
SIZE (rust/crates/enum-map-derive-0.17.0.crate) = 10781
-SHA256 (rust/crates/enumset-1.1.6.crate) = 11a6b7c3d347de0a9f7bfd2f853be43fe32fa6fac30c70f6d6d67a1e936b87ee
-SIZE (rust/crates/enumset-1.1.6.crate) = 29044
-SHA256 (rust/crates/enumset_derive-0.11.0.crate) = 6da3ea9e1d1a3b1593e15781f930120e72aa7501610b2f82e5b6739c72e8eac5
-SIZE (rust/crates/enumset_derive-0.11.0.crate) = 14602
+SHA256 (rust/crates/enumset-1.1.10.crate) = 25b07a8dfbbbfc0064c0a6bdf9edcf966de6b1c33ce344bdeca3b41615452634
+SIZE (rust/crates/enumset-1.1.10.crate) = 31353
+SHA256 (rust/crates/enumset_derive-0.14.0.crate) = f43e744e4ea338060faee68ed933e46e722fb7f3617e722a5772d7e856d8b3ce
+SIZE (rust/crates/enumset_derive-0.14.0.crate) = 17657
SHA256 (rust/crates/env_home-0.1.0.crate) = c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe
SIZE (rust/crates/env_home-0.1.0.crate) = 9006
-SHA256 (rust/crates/epaint-0.32.1.crate) = b66fc0a5a9d322917de9bd3ac7d426ca8aa3127fbf1e76fae5b6b25e051e06a3
-SIZE (rust/crates/epaint-0.32.1.crate) = 105241
-SHA256 (rust/crates/epaint_default_fonts-0.32.1.crate) = 4f6cf8ce0fb817000aa24f5e630bda904a353536bd430b83ebc1dceee95b4a3a
-SIZE (rust/crates/epaint_default_fonts-0.32.1.crate) = 784120
+SHA256 (rust/crates/epaint-0.32.2.crate) = 695fd7b458f31fe515d6a308f46b2936cae9316dc40c960a7ee31ce3a97866b9
+SIZE (rust/crates/epaint-0.32.2.crate) = 105458
+SHA256 (rust/crates/epaint_default_fonts-0.32.2.crate) = bbc9f86ce3eaf9b7fc7179a578af21a6a5cd2d4fd21965564e82a2d009a7dab0
+SIZE (rust/crates/epaint_default_fonts-0.32.2.crate) = 784117
SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
-SHA256 (rust/crates/errno-0.3.11.crate) = 976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e
-SIZE (rust/crates/errno-0.3.11.crate) = 12048
+SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
+SIZE (rust/crates/errno-0.3.14.crate) = 12002
SHA256 (rust/crates/error-chain-0.12.4.crate) = 2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc
SIZE (rust/crates/error-chain-0.12.4.crate) = 29274
-SHA256 (rust/crates/error-code-3.3.1.crate) = a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f
-SIZE (rust/crates/error-code-3.3.1.crate) = 7646
+SHA256 (rust/crates/error-code-3.3.2.crate) = dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59
+SIZE (rust/crates/error-code-3.3.2.crate) = 8516
SHA256 (rust/crates/euc-0.5.3.crate) = 0947d06646d28a4ac2862ac5eadc1062704d61ee398b3baba8b4a21e2f1ef5ed
SIZE (rust/crates/euc-0.5.3.crate) = 70369
SHA256 (rust/crates/euclid-0.22.11.crate) = ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48
SIZE (rust/crates/euclid-0.22.11.crate) = 79261
-SHA256 (rust/crates/event-listener-5.4.0.crate) = 3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae
-SIZE (rust/crates/event-listener-5.4.0.crate) = 43452
+SHA256 (rust/crates/event-listener-5.4.1.crate) = e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab
+SIZE (rust/crates/event-listener-5.4.1.crate) = 43782
SHA256 (rust/crates/event-listener-strategy-0.5.4.crate) = 8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93
SIZE (rust/crates/event-listener-strategy-0.5.4.crate) = 16179
SHA256 (rust/crates/fallible-iterator-0.3.0.crate) = 2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649
SIZE (rust/crates/fallible-iterator-0.3.0.crate) = 19639
SHA256 (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a
SIZE (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 9249
+SHA256 (rust/crates/fastbloom-0.14.0.crate) = 18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a
+SIZE (rust/crates/fastbloom-0.14.0.crate) = 23827
SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
SHA256 (rust/crates/fd-lock-4.0.4.crate) = 0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78
SIZE (rust/crates/fd-lock-4.0.4.crate) = 15522
SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c
SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188
-SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586
-SIZE (rust/crates/filetime-0.2.25.crate) = 14940
+SHA256 (rust/crates/filetime-0.2.26.crate) = bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed
+SIZE (rust/crates/filetime-0.2.26.crate) = 17273
+SHA256 (rust/crates/find-msvc-tools-0.1.1.crate) = 7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d
+SIZE (rust/crates/find-msvc-tools-0.1.1.crate) = 30228
SHA256 (rust/crates/find_folder-0.3.0.crate) = 9f6d018fb95a0b59f854aed68ecd96ce2b80af7911b92b1fed3c4b1fa516b91b
SIZE (rust/crates/find_folder-0.3.0.crate) = 2617
SHA256 (rust/crates/fixed-1.29.0.crate) = 707070ccf8c4173548210893a0186e29c266901b71ed20cd9e2ca0193dfe95c3
@@ -449,30 +471,32 @@ SHA256 (rust/crates/fixedbitset-0.1.9.crate) = 86d4de0081402f5e88cdac65c8dcdcc73
SIZE (rust/crates/fixedbitset-0.1.9.crate) = 11974
SHA256 (rust/crates/fixedbitset-0.5.7.crate) = 1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99
SIZE (rust/crates/fixedbitset-0.5.7.crate) = 26537
-SHA256 (rust/crates/flate2-1.1.1.crate) = 7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece
-SIZE (rust/crates/flate2-1.1.1.crate) = 77224
+SHA256 (rust/crates/flate2-1.1.2.crate) = 4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d
+SIZE (rust/crates/flate2-1.1.2.crate) = 76495
SHA256 (rust/crates/float-cmp-0.10.0.crate) = b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8
SIZE (rust/crates/float-cmp-0.10.0.crate) = 10702
-SHA256 (rust/crates/fluent-0.16.1.crate) = bb74634707bebd0ce645a981148e8fb8c7bccd4c33c652aeffd28bf2f96d555a
-SIZE (rust/crates/fluent-0.16.1.crate) = 8323
-SHA256 (rust/crates/fluent-bundle-0.15.3.crate) = 7fe0a21ee80050c678013f82edf4b705fe2f26f1f9877593d13198612503f493
-SIZE (rust/crates/fluent-bundle-0.15.3.crate) = 34507
+SHA256 (rust/crates/fluent-0.17.0.crate) = 8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477
+SIZE (rust/crates/fluent-0.17.0.crate) = 10282
+SHA256 (rust/crates/fluent-bundle-0.16.0.crate) = 01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4
+SIZE (rust/crates/fluent-bundle-0.16.0.crate) = 35301
SHA256 (rust/crates/fluent-langneg-0.13.0.crate) = 2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94
SIZE (rust/crates/fluent-langneg-0.13.0.crate) = 11723
-SHA256 (rust/crates/fluent-syntax-0.11.1.crate) = 2a530c4694a6a8d528794ee9bbd8ba0122e779629ac908d15ad5a7ae7763a33d
-SIZE (rust/crates/fluent-syntax-0.11.1.crate) = 32297
+SHA256 (rust/crates/fluent-syntax-0.12.0.crate) = 54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198
+SIZE (rust/crates/fluent-syntax-0.12.0.crate) = 32438
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
+SHA256 (rust/crates/foldhash-0.2.0.crate) = 77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb
+SIZE (rust/crates/foldhash-0.2.0.crate) = 23329
SHA256 (rust/crates/foreign-types-0.5.0.crate) = d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965
SIZE (rust/crates/foreign-types-0.5.0.crate) = 7824
SHA256 (rust/crates/foreign-types-macros-0.2.3.crate) = 1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742
SIZE (rust/crates/foreign-types-macros-0.2.3.crate) = 7635
SHA256 (rust/crates/foreign-types-shared-0.3.1.crate) = aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b
SIZE (rust/crates/foreign-types-shared-0.3.1.crate) = 6006
-SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
-SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf
+SIZE (rust/crates/form_urlencoded-1.2.2.crate) = 9347
SHA256 (rust/crates/formatx-0.2.4.crate) = d8866fac38f53fc87fa3ae1b09ddd723e0482f8fa74323518b4c59df2c55a00a
SIZE (rust/crates/formatx-0.2.4.crate) = 15119
SHA256 (rust/crates/fs-set-times-0.20.3.crate) = 94e7099f6313ecacbe1256e8ff9d617b75d1bcb16a6fddef94866d225a01a14a
@@ -505,30 +529,32 @@ SHA256 (rust/crates/fxprof-processed-profile-0.6.0.crate) = 27d12c0aed7f1e24276a
SIZE (rust/crates/fxprof-processed-profile-0.6.0.crate) = 29860
SHA256 (rust/crates/generator-0.7.5.crate) = 5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e
SIZE (rust/crates/generator-0.7.5.crate) = 29947
-SHA256 (rust/crates/generator-0.8.4.crate) = cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd
-SIZE (rust/crates/generator-0.8.4.crate) = 34400
+SHA256 (rust/crates/generator-0.8.7.crate) = 605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2
+SIZE (rust/crates/generator-0.8.7.crate) = 37332
SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
SHA256 (rust/crates/gethostname-0.2.3.crate) = c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e
SIZE (rust/crates/gethostname-0.2.3.crate) = 8174
-SHA256 (rust/crates/gethostname-0.4.3.crate) = 0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818
-SIZE (rust/crates/gethostname-0.4.3.crate) = 9336
+SHA256 (rust/crates/gethostname-1.0.2.crate) = fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55
+SIZE (rust/crates/gethostname-1.0.2.crate) = 9914
SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592
SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
-SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0
-SIZE (rust/crates/getrandom-0.3.2.crate) = 49140
+SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
+SIZE (rust/crates/getrandom-0.3.3.crate) = 49493
SHA256 (rust/crates/gilrs-0.10.2.crate) = 62fd19844d0eb919aca41d3e4ea0e0b6bf60e1e827558b101c269015b8f5f27a
SIZE (rust/crates/gilrs-0.10.2.crate) = 122308
SHA256 (rust/crates/gilrs-core-0.5.7.crate) = 5ccc99e9b8d63ffcaa334c4babfa31f46e156618a11f63efb6e8e6bcb37b830d
SIZE (rust/crates/gilrs-core-0.5.7.crate) = 45141
SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/gimli-0.32.2.crate) = cc6298e594375a7fead9efd5568f0a46e6a154fb6a9bdcbe3c06946ffd81a5f6
+SIZE (rust/crates/gimli-0.32.2.crate) = 289060
SHA256 (rust/crates/gl_generator-0.14.0.crate) = 1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d
SIZE (rust/crates/gl_generator-0.14.0.crate) = 22330
-SHA256 (rust/crates/glam-0.30.3.crate) = 6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7
-SIZE (rust/crates/glam-0.30.3.crate) = 687669
-SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2
-SIZE (rust/crates/glob-0.3.2.crate) = 22359
+SHA256 (rust/crates/glam-0.30.5.crate) = f2d1aab06663bdce00d6ca5e5ed586ec8d18033a771906c993a1e3755b368d85
+SIZE (rust/crates/glam-0.30.5.crate) = 760688
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
SHA256 (rust/crates/glow-0.16.0.crate) = c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08
SIZE (rust/crates/glow-0.16.0.crate) = 162118
SHA256 (rust/crates/glutin_wgl_sys-0.6.1.crate) = 2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e
@@ -563,18 +589,18 @@ SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b2
SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265
SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
-SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3
-SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413
+SHA256 (rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1
+SIZE (rust/crates/hashbrown-0.15.5.crate) = 140908
+SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d
+SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708
SHA256 (rust/crates/hashlink-0.9.1.crate) = 6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af
SIZE (rust/crates/hashlink-0.9.1.crate) = 28928
SHA256 (rust/crates/heapless-0.8.0.crate) = 0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad
SIZE (rust/crates/heapless-0.8.0.crate) = 77802
SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
SIZE (rust/crates/heck-0.5.0.crate) = 11517
-SHA256 (rust/crates/hermit-abi-0.4.0.crate) = fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc
-SIZE (rust/crates/hermit-abi-0.4.0.crate) = 16310
-SHA256 (rust/crates/hermit-abi-0.5.0.crate) = fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e
-SIZE (rust/crates/hermit-abi-0.5.0.crate) = 17480
+SHA256 (rust/crates/hermit-abi-0.5.2.crate) = fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c
+SIZE (rust/crates/hermit-abi-0.5.2.crate) = 17435
SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
SIZE (rust/crates/hex-0.4.3.crate) = 13299
SHA256 (rust/crates/hexf-parse-0.2.1.crate) = dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df
@@ -599,52 +625,46 @@ SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994
SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
SHA256 (rust/crates/humantime-2.2.0.crate) = 9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f
SIZE (rust/crates/humantime-2.2.0.crate) = 20646
-SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80
-SIZE (rust/crates/hyper-1.6.0.crate) = 153923
-SHA256 (rust/crates/hyper-rustls-0.27.5.crate) = 2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2
-SIZE (rust/crates/hyper-rustls-0.27.5.crate) = 34660
-SHA256 (rust/crates/hyper-util-0.1.11.crate) = 497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2
-SIZE (rust/crates/hyper-util-0.1.11.crate) = 75973
+SHA256 (rust/crates/hyper-1.7.0.crate) = eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e
+SIZE (rust/crates/hyper-1.7.0.crate) = 157006
+SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
+SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
+SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
+SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184
SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8
SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919
SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
-SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526
-SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762
-SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637
-SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131
-SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e
-SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094
-SHA256 (rust/crates/icu_locid_transform_data-1.5.1.crate) = 7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d
-SIZE (rust/crates/icu_locid_transform_data-1.5.1.crate) = 42937
-SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f
-SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113
-SHA256 (rust/crates/icu_normalizer_data-1.5.1.crate) = c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7
-SIZE (rust/crates/icu_normalizer_data-1.5.1.crate) = 50737
-SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5
-SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479
-SHA256 (rust/crates/icu_properties_data-1.5.1.crate) = 85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2
-SIZE (rust/crates/icu_properties_data-1.5.1.crate) = 229231
-SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9
-SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722
-SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6
-SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436
+SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47
+SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033
+SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a
+SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430
+SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979
+SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543
+SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3
+SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101
+SHA256 (rust/crates/icu_properties-2.0.1.crate) = 016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b
+SIZE (rust/crates/icu_properties-2.0.1.crate) = 58165
+SHA256 (rust/crates/icu_properties_data-2.0.1.crate) = 298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632
+SIZE (rust/crates/icu_properties_data-2.0.1.crate) = 159735
+SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af
+SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966
SHA256 (rust/crates/id-arena-2.2.1.crate) = 25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005
SIZE (rust/crates/id-arena-2.2.1.crate) = 12203
SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
-SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
-SIZE (rust/crates/idna-1.0.3.crate) = 142515
-SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71
-SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206
-SHA256 (rust/crates/image-0.25.6.crate) = db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a
-SIZE (rust/crates/image-0.25.6.crate) = 242367
+SHA256 (rust/crates/idna-1.1.0.crate) = 3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de
+SIZE (rust/crates/idna-1.1.0.crate) = 148747
+SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
+SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
+SHA256 (rust/crates/image-0.25.8.crate) = 529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7
+SIZE (rust/crates/image-0.25.8.crate) = 292229
SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
-SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e
-SIZE (rust/crates/indexmap-2.9.0.crate) = 91214
-SHA256 (rust/crates/indicatif-0.17.11.crate) = 183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235
-SIZE (rust/crates/indicatif-0.17.11.crate) = 66577
+SHA256 (rust/crates/indexmap-2.11.1.crate) = 206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921
+SIZE (rust/crates/indexmap-2.11.1.crate) = 99966
+SHA256 (rust/crates/indicatif-0.18.0.crate) = 70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd
+SIZE (rust/crates/indicatif-0.18.0.crate) = 67969
SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd
SIZE (rust/crates/indoc-2.0.6.crate) = 17164
SHA256 (rust/crates/init_with-1.1.0.crate) = 0175f63815ce00183bf755155ad0cb48c65226c5d17a724e369c25418d2b7699
@@ -653,18 +673,16 @@ SHA256 (rust/crates/inline_tweak-1.2.2.crate) = e09cc2491a8419aa3d0b03b92297cfaf
SIZE (rust/crates/inline_tweak-1.2.2.crate) = 15843
SHA256 (rust/crates/inline_tweak_derive-4.0.0.crate) = 6864ad6962b49a8fc7ce8cfa60ee0725aa543f15fc7e5f34753ccfa881dd6759
SIZE (rust/crates/inline_tweak_derive-4.0.0.crate) = 2535
-SHA256 (rust/crates/inotify-0.9.6.crate) = f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff
-SIZE (rust/crates/inotify-0.9.6.crate) = 22971
SHA256 (rust/crates/inotify-0.11.0.crate) = f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3
SIZE (rust/crates/inotify-0.11.0.crate) = 26241
SHA256 (rust/crates/inotify-sys-0.1.5.crate) = e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb
SIZE (rust/crates/inotify-sys-0.1.5.crate) = 6965
-SHA256 (rust/crates/instability-0.3.7.crate) = 0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d
-SIZE (rust/crates/instability-0.3.7.crate) = 13682
+SHA256 (rust/crates/instability-0.3.9.crate) = 435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a
+SIZE (rust/crates/instability-0.3.9.crate) = 14451
SHA256 (rust/crates/instant-0.1.13.crate) = e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222
SIZE (rust/crates/instant-0.1.13.crate) = 6305
-SHA256 (rust/crates/intl-memoizer-0.5.2.crate) = fe22e020fce238ae18a6d5d8c502ee76a52a6e880d99477657e6acc30ec57bda
-SIZE (rust/crates/intl-memoizer-0.5.2.crate) = 11708
+SHA256 (rust/crates/intl-memoizer-0.5.3.crate) = 310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f
+SIZE (rust/crates/intl-memoizer-0.5.3.crate) = 12171
SHA256 (rust/crates/intl_pluralrules-7.0.2.crate) = 078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972
SIZE (rust/crates/intl_pluralrules-7.0.2.crate) = 9201
SHA256 (rust/crates/io-extras-0.18.4.crate) = 2285ddfe3054097ef4b2fe909ef8c3bcd1ea52a8f0d274416caebeef39f04a65
@@ -673,20 +691,18 @@ SHA256 (rust/crates/io-kit-sys-0.3.0.crate) = 9b2d4429acc1deff0fbdece0325b4997bd
SIZE (rust/crates/io-kit-sys-0.3.0.crate) = 38799
SHA256 (rust/crates/io-lifetimes-2.0.4.crate) = 06432fb54d3be7964ecd3649233cddf80db2832f47fec34c01f65b3d9d774983
SIZE (rust/crates/io-lifetimes-2.0.4.crate) = 28501
+SHA256 (rust/crates/io-uring-0.7.10.crate) = 046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b
+SIZE (rust/crates/io-uring-0.7.10.crate) = 103070
SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f
SIZE (rust/crates/ipconfig-0.3.2.crate) = 24468
SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
SHA256 (rust/crates/is-docker-0.2.0.crate) = 928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3
SIZE (rust/crates/is-docker-0.2.0.crate) = 2664
-SHA256 (rust/crates/is-terminal-0.4.16.crate) = e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9
-SIZE (rust/crates/is-terminal-0.4.16.crate) = 7811
SHA256 (rust/crates/is-wsl-0.4.0.crate) = 173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5
SIZE (rust/crates/is-wsl-0.4.0.crate) = 3264
SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
-SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
-SIZE (rust/crates/itertools-0.10.5.crate) = 115354
SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
SIZE (rust/crates/itertools-0.12.1.crate) = 137761
SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186
@@ -703,18 +719,18 @@ SHA256 (rust/crates/jni-0.21.1.crate) = 1a87aa2bb7d2af34197c04845522473242e1aa17
SIZE (rust/crates/jni-0.21.1.crate) = 105028
SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130
SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232
-SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a
-SIZE (rust/crates/jobserver-0.1.33.crate) = 29136
-SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f
-SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
+SHA256 (rust/crates/jobserver-0.1.34.crate) = 9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33
+SIZE (rust/crates/jobserver-0.1.34.crate) = 29013
+SHA256 (rust/crates/js-sys-0.3.78.crate) = 0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738
+SIZE (rust/crates/js-sys-0.3.78.crate) = 56010
SHA256 (rust/crates/khronos-egl-6.0.0.crate) = 6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76
SIZE (rust/crates/khronos-egl-6.0.0.crate) = 29315
SHA256 (rust/crates/khronos_api-3.1.0.crate) = e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc
SIZE (rust/crates/khronos_api-3.1.0.crate) = 599718
SHA256 (rust/crates/kiddo-4.2.0.crate) = 9d2f8d9e1bc7c6919ad2cdc83472a9a4b5ed2ea2c5392c9514fdf958a7920f9a
SIZE (rust/crates/kiddo-4.2.0.crate) = 147212
-SHA256 (rust/crates/kqueue-1.0.8.crate) = 7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c
-SIZE (rust/crates/kqueue-1.0.8.crate) = 12642
+SHA256 (rust/crates/kqueue-1.1.1.crate) = eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a
+SIZE (rust/crates/kqueue-1.1.1.crate) = 21504
SHA256 (rust/crates/kqueue-sys-1.0.4.crate) = ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b
SIZE (rust/crates/kqueue-sys-1.0.4.crate) = 7160
SHA256 (rust/crates/lazy-bytes-cast-5.0.1.crate) = 10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b
@@ -727,16 +743,16 @@ SHA256 (rust/crates/leb128fmt-0.1.0.crate) = 09edd9e8b54e49e587e4f6295a7d29c3ea9
SIZE (rust/crates/leb128fmt-0.1.0.crate) = 14138
SHA256 (rust/crates/levenshtein-1.0.5.crate) = db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760
SIZE (rust/crates/levenshtein-1.0.5.crate) = 1389
-SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa
-SIZE (rust/crates/libc-0.2.172.crate) = 791646
-SHA256 (rust/crates/libloading-0.8.6.crate) = fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34
-SIZE (rust/crates/libloading-0.8.6.crate) = 28922
-SHA256 (rust/crates/libm-0.2.14.crate) = a25169bd5913a4b437588a7e3d127cd6e90127b60e0ffbd834a38f1599e016b8
-SIZE (rust/crates/libm-0.2.14.crate) = 155948
+SHA256 (rust/crates/libc-0.2.175.crate) = 6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543
+SIZE (rust/crates/libc-0.2.175.crate) = 788728
+SHA256 (rust/crates/libloading-0.8.8.crate) = 07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667
+SIZE (rust/crates/libloading-0.8.8.crate) = 31345
+SHA256 (rust/crates/libm-0.2.15.crate) = f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de
+SIZE (rust/crates/libm-0.2.15.crate) = 156108
SHA256 (rust/crates/libmimalloc-sys-0.1.39.crate) = 23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44
SIZE (rust/crates/libmimalloc-sys-0.1.39.crate) = 198523
-SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
-SIZE (rust/crates/libredox-0.1.3.crate) = 6068
+SHA256 (rust/crates/libredox-0.1.9.crate) = 391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3
+SIZE (rust/crates/libredox-0.1.9.crate) = 7281
SHA256 (rust/crates/libsqlite3-sys-0.28.0.crate) = 0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f
SIZE (rust/crates/libsqlite3-sys-0.28.0.crate) = 4975624
SHA256 (rust/crates/libudev-sys-0.1.4.crate) = 3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324
@@ -745,46 +761,48 @@ SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09
SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab
SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898
-SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12
-SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088
-SHA256 (rust/crates/litemap-0.7.5.crate) = 23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856
-SIZE (rust/crates/litemap-0.7.5.crate) = 29962
+SHA256 (rust/crates/linux-raw-sys-0.11.0.crate) = df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039
+SIZE (rust/crates/linux-raw-sys-0.11.0.crate) = 2659624
+SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956
+SIZE (rust/crates/litemap-0.8.0.crate) = 34344
SHA256 (rust/crates/litrs-0.4.2.crate) = f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed
SIZE (rust/crates/litrs-0.4.2.crate) = 43399
-SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
-SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
-SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
-SIZE (rust/crates/log-0.4.27.crate) = 48120
+SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765
+SIZE (rust/crates/lock_api-0.4.13.crate) = 28565
+SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
+SIZE (rust/crates/log-0.4.28.crate) = 51131
SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca
SIZE (rust/crates/loom-0.7.2.crate) = 73989
SHA256 (rust/crates/lru-0.12.5.crate) = 234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38
SIZE (rust/crates/lru-0.12.5.crate) = 16047
+SHA256 (rust/crates/lru-slab-0.1.2.crate) = 112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154
+SIZE (rust/crates/lru-slab-0.1.2.crate) = 9090
SHA256 (rust/crates/lz-fear-0.2.0.crate) = 26a280471e5ff9dda51cf34863c338ffde7df78139210f9c819943b29cdb091d
SIZE (rust/crates/lz-fear-0.2.0.crate) = 142438
-SHA256 (rust/crates/mach2-0.4.2.crate) = 19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709
-SIZE (rust/crates/mach2-0.4.2.crate) = 21889
+SHA256 (rust/crates/mach2-0.4.3.crate) = d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44
+SIZE (rust/crates/mach2-0.4.3.crate) = 22180
SHA256 (rust/crates/macro_rules_attribute-0.1.3.crate) = cf0c9b980bf4f3a37fd7b1c066941dd1b1d0152ce6ee6e8fe8c49b9f6810d862
SIZE (rust/crates/macro_rules_attribute-0.1.3.crate) = 15228
SHA256 (rust/crates/macro_rules_attribute-proc_macro-0.1.3.crate) = 58093314a45e00c77d5c508f76e77c3396afbbc0d01506e7fae47b018bac2b1d
SIZE (rust/crates/macro_rules_attribute-proc_macro-0.1.3.crate) = 8249
SHA256 (rust/crates/malloc_buf-0.0.6.crate) = 62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb
SIZE (rust/crates/malloc_buf-0.0.6.crate) = 1239
-SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
-SIZE (rust/crates/matchers-0.1.0.crate) = 6948
+SHA256 (rust/crates/matchers-0.2.0.crate) = d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9
+SIZE (rust/crates/matchers-0.2.0.crate) = 7075
SHA256 (rust/crates/matchit-0.8.4.crate) = 47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3
SIZE (rust/crates/matchit-0.8.4.crate) = 33986
SHA256 (rust/crates/maybe-owned-0.3.4.crate) = 4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4
SIZE (rust/crates/maybe-owned-0.3.4.crate) = 14308
SHA256 (rust/crates/maybe-uninit-2.0.0.crate) = 60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00
SIZE (rust/crates/maybe-uninit-2.0.0.crate) = 11809
-SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
-SIZE (rust/crates/memchr-2.7.4.crate) = 96670
-SHA256 (rust/crates/memfd-0.6.4.crate) = b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64
-SIZE (rust/crates/memfd-0.6.4.crate) = 12820
+SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0
+SIZE (rust/crates/memchr-2.7.5.crate) = 97603
+SHA256 (rust/crates/memfd-0.6.5.crate) = ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227
+SIZE (rust/crates/memfd-0.6.5.crate) = 12909
SHA256 (rust/crates/memmap2-0.5.10.crate) = 83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327
SIZE (rust/crates/memmap2-0.5.10.crate) = 26847
-SHA256 (rust/crates/memmap2-0.9.5.crate) = fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f
-SIZE (rust/crates/memmap2-0.9.5.crate) = 33280
+SHA256 (rust/crates/memmap2-0.9.8.crate) = 843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7
+SIZE (rust/crates/memmap2-0.9.8.crate) = 34478
SHA256 (rust/crates/memoffset-0.5.6.crate) = 043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa
SIZE (rust/crates/memoffset-0.5.6.crate) = 7382
SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
@@ -799,16 +817,16 @@ SHA256 (rust/crates/minifb-0.28.0.crate) = d1a093126f2ed9012fc0b146934c97eb0273e
SIZE (rust/crates/minifb-0.28.0.crate) = 99664
SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
-SHA256 (rust/crates/miniz_oxide-0.8.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a
-SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
SHA256 (rust/crates/mint-0.5.9.crate) = e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff
SIZE (rust/crates/mint-0.5.9.crate) = 8399
-SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c
-SIZE (rust/crates/mio-0.8.11.crate) = 102983
-SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd
-SIZE (rust/crates/mio-1.0.3.crate) = 103703
+SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c
+SIZE (rust/crates/mio-1.0.4.crate) = 104212
SHA256 (rust/crates/moka-0.12.10.crate) = a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926
SIZE (rust/crates/moka-0.12.10.crate) = 253622
+SHA256 (rust/crates/moxcms-0.7.5.crate) = ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08
+SIZE (rust/crates/moxcms-0.7.5.crate) = 184232
SHA256 (rust/crates/mumble-link-0.2.0.crate) = c7f4c53745d4e7afd0faaf6ee46c0c3114d4b7d0db63bef96917751906453285
SIZE (rust/crates/mumble-link-0.2.0.crate) = 11204
SHA256 (rust/crates/naga-26.0.0.crate) = 916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c
@@ -831,8 +849,8 @@ SHA256 (rust/crates/nix-0.24.3.crate) = fa52e972a9a719cecb6864fb88568781eb706bac
SIZE (rust/crates/nix-0.24.3.crate) = 266843
SHA256 (rust/crates/nix-0.26.4.crate) = 598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b
SIZE (rust/crates/nix-0.26.4.crate) = 279099
-SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46
-SIZE (rust/crates/nix-0.29.0.crate) = 318248
+SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6
+SIZE (rust/crates/nix-0.30.1.crate) = 342015
SHA256 (rust/crates/nohash-hasher-0.2.0.crate) = 2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451
SIZE (rust/crates/nohash-hasher-0.2.0.crate) = 8051
SHA256 (rust/crates/noise-0.9.0.crate) = 6da45c8333f2e152fc665d78a380be060eb84fad8ca4c9f7ac8ca29216cff0cc
@@ -841,18 +859,16 @@ SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b
SIZE (rust/crates/nom-7.1.3.crate) = 117570
SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405
SIZE (rust/crates/nom-8.0.0.crate) = 135590
-SHA256 (rust/crates/notify-6.1.1.crate) = 6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d
-SIZE (rust/crates/notify-6.1.1.crate) = 40117
-SHA256 (rust/crates/notify-8.0.0.crate) = 2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943
-SIZE (rust/crates/notify-8.0.0.crate) = 35590
+SHA256 (rust/crates/notify-8.2.0.crate) = 4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3
+SIZE (rust/crates/notify-8.2.0.crate) = 39067
SHA256 (rust/crates/notify-types-2.0.0.crate) = 5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d
SIZE (rust/crates/notify-types-2.0.0.crate) = 14495
SHA256 (rust/crates/nougat-0.2.4.crate) = 97b57b9ced431322f054fc673f1d3c7fa52d80efd9df74ad2fc759f044742510
SIZE (rust/crates/nougat-0.2.4.crate) = 15141
SHA256 (rust/crates/nougat-proc_macros-0.2.4.crate) = c84f77a45e99a2f9b492695d99e1c23844619caa5f3e57647cffacad773ca257
SIZE (rust/crates/nougat-proc_macros-0.2.4.crate) = 10082
-SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
-SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311
+SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399
+SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536
SHA256 (rust/crates/num-0.2.1.crate) = b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36
SIZE (rust/crates/num-0.2.1.crate) = 9082
SHA256 (rust/crates/num-0.4.3.crate) = 35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23
@@ -881,12 +897,10 @@ SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
SHA256 (rust/crates/num_cpus-1.17.0.crate) = 91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b
SIZE (rust/crates/num_cpus-1.17.0.crate) = 15874
-SHA256 (rust/crates/num_enum-0.7.3.crate) = 4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179
-SIZE (rust/crates/num_enum-0.7.3.crate) = 18603
-SHA256 (rust/crates/num_enum_derive-0.7.3.crate) = af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56
-SIZE (rust/crates/num_enum_derive-0.7.3.crate) = 17092
-SHA256 (rust/crates/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3
-SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922
+SHA256 (rust/crates/num_enum-0.7.4.crate) = a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a
+SIZE (rust/crates/num_enum-0.7.4.crate) = 21553
+SHA256 (rust/crates/num_enum_derive-0.7.4.crate) = 77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d
+SIZE (rust/crates/num_enum_derive-0.7.4.crate) = 18167
SHA256 (rust/crates/objc-0.2.7.crate) = 915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1
SIZE (rust/crates/objc-0.2.7.crate) = 22036
SHA256 (rust/crates/objc-foundation-0.1.1.crate) = 1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9
@@ -895,8 +909,8 @@ SHA256 (rust/crates/objc-sys-0.3.5.crate) = cdb91bdd390c7ce1a8607f35f3ca7151b65a
SIZE (rust/crates/objc-sys-0.3.5.crate) = 20560
SHA256 (rust/crates/objc2-0.5.2.crate) = 46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804
SIZE (rust/crates/objc2-0.5.2.crate) = 199204
-SHA256 (rust/crates/objc2-0.6.1.crate) = 88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551
-SIZE (rust/crates/objc2-0.6.1.crate) = 270980
+SHA256 (rust/crates/objc2-0.6.2.crate) = 561f357ba7f3a2a61563a186a163d0a3a5247e1089524a3981d49adb775078bc
+SIZE (rust/crates/objc2-0.6.2.crate) = 272954
SHA256 (rust/crates/objc2-app-kit-0.2.2.crate) = e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff
SIZE (rust/crates/objc2-app-kit-0.2.2.crate) = 337435
SHA256 (rust/crates/objc2-app-kit-0.3.1.crate) = e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc
@@ -951,12 +965,16 @@ SHA256 (rust/crates/objc_id-0.1.1.crate) = c92d4ddb4bd7b50d730c215ff871754d0da6b
SIZE (rust/crates/objc_id-0.1.1.crate) = 3258
SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/object-0.37.3.crate) = ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe
+SIZE (rust/crates/object-0.37.3.crate) = 344032
SHA256 (rust/crates/oboe-0.6.1.crate) = e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb
SIZE (rust/crates/oboe-0.6.1.crate) = 24588
SHA256 (rust/crates/oboe-sys-0.6.1.crate) = 6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d
SIZE (rust/crates/oboe-sys-0.6.1.crate) = 169091
SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
+SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
SHA256 (rust/crates/oorandom-11.1.5.crate) = d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e
SIZE (rust/crates/oorandom-11.1.5.crate) = 23750
SHA256 (rust/crates/open-5.3.2.crate) = e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95
@@ -973,38 +991,30 @@ SHA256 (rust/crates/ordered-float-4.6.0.crate) = 7bb71e1b3fa6ca1c61f383464aaf2bb
SIZE (rust/crates/ordered-float-4.6.0.crate) = 23633
SHA256 (rust/crates/ordered-float-5.0.0.crate) = e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01
SIZE (rust/crates/ordered-float-5.0.0.crate) = 23364
-SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39
-SIZE (rust/crates/overload-0.1.1.crate) = 24439
-SHA256 (rust/crates/owned_ttf_parser-0.25.0.crate) = 22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4
-SIZE (rust/crates/owned_ttf_parser-0.25.0.crate) = 151164
+SHA256 (rust/crates/owned_ttf_parser-0.25.1.crate) = 36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b
+SIZE (rust/crates/owned_ttf_parser-0.25.1.crate) = 8989
SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba
SIZE (rust/crates/parking-2.2.1.crate) = 10685
-SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27
-SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860
-SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
-SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
-SHA256 (rust/crates/parse-zoneinfo-0.3.1.crate) = 1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24
-SIZE (rust/crates/parse-zoneinfo-0.3.1.crate) = 97290
+SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
+SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779
+SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5
+SIZE (rust/crates/parking_lot_core-0.9.11.crate) = 34773
SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
SIZE (rust/crates/paste-1.0.15.crate) = 18374
SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3
SIZE (rust/crates/pathdiff-0.2.3.crate) = 7495
SHA256 (rust/crates/pem-3.0.5.crate) = 38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3
SIZE (rust/crates/pem-3.0.5.crate) = 18140
-SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
-SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220
+SIZE (rust/crates/percent-encoding-2.3.2.crate) = 11583
SHA256 (rust/crates/petgraph-0.4.13.crate) = 9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f
SIZE (rust/crates/petgraph-0.4.13.crate) = 111936
-SHA256 (rust/crates/petgraph-0.8.1.crate) = 7a98c6720655620a521dcc722d0ad66cd8afd5d86e34a89ef691c50b7b24de06
-SIZE (rust/crates/petgraph-0.8.1.crate) = 763960
-SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078
-SIZE (rust/crates/phf-0.11.3.crate) = 23231
-SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a
-SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741
-SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d
-SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431
-SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5
-SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199
+SHA256 (rust/crates/petgraph-0.8.2.crate) = 54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca
+SIZE (rust/crates/petgraph-0.8.2.crate) = 780998
+SHA256 (rust/crates/phf-0.12.1.crate) = 913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7
+SIZE (rust/crates/phf-0.12.1.crate) = 23768
+SHA256 (rust/crates/phf_shared-0.12.1.crate) = 06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981
+SIZE (rust/crates/phf_shared-0.12.1.crate) = 15568
SHA256 (rust/crates/pin-project-1.1.10.crate) = 677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a
SIZE (rust/crates/pin-project-1.1.10.crate) = 56348
SHA256 (rust/crates/pin-project-internal-1.1.10.crate) = 6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861
@@ -1023,14 +1033,18 @@ SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c1
SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370
SHA256 (rust/crates/png-0.17.16.crate) = 82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526
SIZE (rust/crates/png-0.17.16.crate) = 117975
-SHA256 (rust/crates/polling-3.7.4.crate) = a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f
-SIZE (rust/crates/polling-3.7.4.crate) = 58239
-SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e
-SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258
+SHA256 (rust/crates/png-0.18.0.crate) = 97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0
+SIZE (rust/crates/png-0.18.0.crate) = 118041
+SHA256 (rust/crates/polling-3.10.0.crate) = b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829
+SIZE (rust/crates/polling-3.10.0.crate) = 60095
+SHA256 (rust/crates/portable-atomic-1.11.1.crate) = f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483
+SIZE (rust/crates/portable-atomic-1.11.1.crate) = 185506
SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507
SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043
-SHA256 (rust/crates/postcard-1.1.1.crate) = 170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8
-SIZE (rust/crates/postcard-1.1.1.crate) = 35639
+SHA256 (rust/crates/postcard-1.1.3.crate) = 6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24
+SIZE (rust/crates/postcard-1.1.3.crate) = 43968
+SHA256 (rust/crates/potential_utf-0.1.3.crate) = 84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a
+SIZE (rust/crates/potential_utf-0.1.3.crate) = 9698
SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
SHA256 (rust/crates/pp-rs-0.2.1.crate) = bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee
@@ -1047,12 +1061,12 @@ SHA256 (rust/crates/proc-macro-nested-0.1.7.crate) = bc881b2c22681370c6a780e47af
SIZE (rust/crates/proc-macro-nested-0.1.7.crate) = 6495
SHA256 (rust/crates/proc-macro2-0.4.30.crate) = cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759
SIZE (rust/crates/proc-macro2-0.4.30.crate) = 34731
-SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778
-SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820
-SHA256 (rust/crates/profiling-1.0.16.crate) = afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d
-SIZE (rust/crates/profiling-1.0.16.crate) = 12588
-SHA256 (rust/crates/profiling-procmacros-1.0.16.crate) = a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30
-SIZE (rust/crates/profiling-procmacros-1.0.16.crate) = 5893
+SHA256 (rust/crates/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de
+SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886
+SHA256 (rust/crates/profiling-1.0.17.crate) = 3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773
+SIZE (rust/crates/profiling-1.0.17.crate) = 13493
+SHA256 (rust/crates/profiling-procmacros-1.0.17.crate) = 52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b
+SIZE (rust/crates/profiling-procmacros-1.0.17.crate) = 5895
SHA256 (rust/crates/prometheus-0.14.0.crate) = 3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a
SIZE (rust/crates/prometheus-0.14.0.crate) = 90035
SHA256 (rust/crates/prometheus-hyper-0.2.1.crate) = 60d6eeac44b972d6f552e8aaec7f869200aef42f14ddffdddde308b94d0c066e
@@ -1063,30 +1077,34 @@ SHA256 (rust/crates/protocol-derive-3.4.0.crate) = 28647f30298898ead966b51e9aee5
SIZE (rust/crates/protocol-derive-3.4.0.crate) = 8347
SHA256 (rust/crates/psm-0.1.26.crate) = 6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f
SIZE (rust/crates/psm-0.1.26.crate) = 23541
-SHA256 (rust/crates/pulley-interpreter-29.0.1.crate) = 62d95f8575df49a2708398182f49a888cf9dc30210fb1fd2df87c889edcee75d
-SIZE (rust/crates/pulley-interpreter-29.0.1.crate) = 55917
+SHA256 (rust/crates/pulley-interpreter-36.0.2.crate) = e4e2d31146038fd9e62bfa331db057aca325d5ca10451a9fe341356cead7da53
+SIZE (rust/crates/pulley-interpreter-36.0.2.crate) = 66122
+SHA256 (rust/crates/pulley-macros-36.0.2.crate) = efb9fdafaca625f9ea8cfa793364ea1bdd32d306cff18f166b00ddaa61ecbb27
+SIZE (rust/crates/pulley-macros-36.0.2.crate) = 2349
+SHA256 (rust/crates/pxfm-0.1.23.crate) = f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84
+SIZE (rust/crates/pxfm-0.1.23.crate) = 1219248
SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb
SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481
-SHA256 (rust/crates/quinn-0.11.7.crate) = c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012
-SIZE (rust/crates/quinn-0.11.7.crate) = 79387
-SHA256 (rust/crates/quinn-proto-0.11.11.crate) = bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b
-SIZE (rust/crates/quinn-proto-0.11.11.crate) = 229381
-SHA256 (rust/crates/quinn-udp-0.5.12.crate) = ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842
-SIZE (rust/crates/quinn-udp-0.5.12.crate) = 31825
+SHA256 (rust/crates/quinn-0.11.9.crate) = b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20
+SIZE (rust/crates/quinn-0.11.9.crate) = 83606
+SHA256 (rust/crates/quinn-proto-0.11.13.crate) = f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31
+SIZE (rust/crates/quinn-proto-0.11.13.crate) = 243837
+SHA256 (rust/crates/quinn-udp-0.5.14.crate) = addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd
+SIZE (rust/crates/quinn-udp-0.5.14.crate) = 33436
SHA256 (rust/crates/quote-0.6.13.crate) = 6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1
SIZE (rust/crates/quote-0.6.13.crate) = 17475
SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
SIZE (rust/crates/quote-1.0.40.crate) = 31063
-SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5
-SIZE (rust/crates/r-efi-5.2.0.crate) = 64764
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09
SIZE (rust/crates/radium-0.7.0.crate) = 10906
SHA256 (rust/crates/radix_trie-0.2.1.crate) = c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd
SIZE (rust/crates/radix_trie-0.2.1.crate) = 251366
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
-SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97
-SIZE (rust/crates/rand-0.9.1.crate) = 97986
+SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1
+SIZE (rust/crates/rand-0.9.2.crate) = 99930
SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
@@ -1103,42 +1121,46 @@ SHA256 (rust/crates/ratatui-0.29.0.crate) = eabd94c2f37801c20583fc49dd5cd6b0ba68
SIZE (rust/crates/ratatui-0.29.0.crate) = 543514
SHA256 (rust/crates/raw-window-handle-0.6.2.crate) = 20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539
SIZE (rust/crates/raw-window-handle-0.6.2.crate) = 20234
-SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
-SIZE (rust/crates/rayon-1.10.0.crate) = 180155
-SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
-SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
-SHA256 (rust/crates/rcgen-0.13.2.crate) = 75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2
-SIZE (rust/crates/rcgen-0.13.2.crate) = 77836
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
+SHA256 (rust/crates/rcgen-0.14.3.crate) = 0068c5b3cab1d4e271e0bb6539c87563c43411cad90b057b15c79958fbeb41f7
+SIZE (rust/crates/rcgen-0.14.3.crate) = 78302
SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
-SHA256 (rust/crates/redox_syscall-0.5.12.crate) = 928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af
-SIZE (rust/crates/redox_syscall-0.5.12.crate) = 29544
+SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77
+SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002
SHA256 (rust/crates/redox_users-0.4.6.crate) = ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43
SIZE (rust/crates/redox_users-0.4.6.crate) = 15585
-SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b
-SIZE (rust/crates/redox_users-0.5.0.crate) = 15586
+SHA256 (rust/crates/redox_users-0.5.2.crate) = a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac
+SIZE (rust/crates/redox_users-0.5.2.crate) = 17280
+SHA256 (rust/crates/ref-cast-1.0.24.crate) = 4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf
+SIZE (rust/crates/ref-cast-1.0.24.crate) = 15252
+SHA256 (rust/crates/ref-cast-impl-1.0.24.crate) = 1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7
+SIZE (rust/crates/ref-cast-impl-1.0.24.crate) = 9968
SHA256 (rust/crates/refinery-0.8.16.crate) = 7ba5d693abf62492c37268512ff35b77655d2e957ca53dab85bf993fe9172d15
SIZE (rust/crates/refinery-0.8.16.crate) = 31584
SHA256 (rust/crates/refinery-core-0.8.16.crate) = 8a83581f18c1a4c3a6ebd7a174bdc665f17f618d79f7edccb6a0ac67e660b319
SIZE (rust/crates/refinery-core-0.8.16.crate) = 33647
SHA256 (rust/crates/refinery-macros-0.8.16.crate) = 72c225407d8e52ef8cf094393781ecda9a99d6544ec28d90a6915751de259264
SIZE (rust/crates/refinery-macros-0.8.16.crate) = 8591
-SHA256 (rust/crates/regalloc2-0.11.2.crate) = dc06e6b318142614e4a48bc725abbf08ff166694835c43c9dae5a9009704639a
-SIZE (rust/crates/regalloc2-0.11.2.crate) = 139677
-SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
-SIZE (rust/crates/regex-1.11.1.crate) = 254170
-SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
-SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
-SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
-SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
-SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
-SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
-SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
-SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/regalloc2-0.12.2.crate) = 5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734
+SIZE (rust/crates/regalloc2-0.12.2.crate) = 140473
+SHA256 (rust/crates/regex-1.11.2.crate) = 23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912
+SIZE (rust/crates/regex-1.11.2.crate) = 166265
+SHA256 (rust/crates/regex-automata-0.3.9.crate) = 59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9
+SIZE (rust/crates/regex-automata-0.3.9.crate) = 610489
+SHA256 (rust/crates/regex-automata-0.4.10.crate) = 6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6
+SIZE (rust/crates/regex-automata-0.4.10.crate) = 622754
+SHA256 (rust/crates/regex-syntax-0.7.5.crate) = dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da
+SIZE (rust/crates/regex-syntax-0.7.5.crate) = 343366
+SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001
+SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808
SHA256 (rust/crates/renderdoc-sys-1.1.0.crate) = 19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832
SIZE (rust/crates/renderdoc-sys-1.1.0.crate) = 10366
-SHA256 (rust/crates/resolv-conf-0.7.3.crate) = fc7c8f7f733062b66dc1c63f9db168ac0b97a9210e247fa90fdc9ad08f51b302
-SIZE (rust/crates/resolv-conf-0.7.3.crate) = 16929
+SHA256 (rust/crates/resolv-conf-0.7.4.crate) = 95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3
+SIZE (rust/crates/resolv-conf-0.7.4.crate) = 17260
SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7
SIZE (rust/crates/ring-0.17.14.crate) = 1502610
SHA256 (rust/crates/rmp-0.8.14.crate) = 228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4
@@ -1147,8 +1169,8 @@ SHA256 (rust/crates/rmp-serde-1.3.0.crate) = 52e599a477cf9840e92f2cde9a7189e67b4
SIZE (rust/crates/rmp-serde-1.3.0.crate) = 33025
SHA256 (rust/crates/robust-0.2.3.crate) = e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea
SIZE (rust/crates/robust-0.2.3.crate) = 16034
-SHA256 (rust/crates/ron-0.8.1.crate) = b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94
-SIZE (rust/crates/ron-0.8.1.crate) = 63251
+SHA256 (rust/crates/ron-0.11.0.crate) = db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468
+SIZE (rust/crates/ron-0.11.0.crate) = 121686
SHA256 (rust/crates/roots-0.0.8.crate) = 082f11ffa03bbef6c2c6ea6bea1acafaade2fd9050ae0234ab44a2153742b058
SIZE (rust/crates/roots-0.0.8.crate) = 29257
SHA256 (rust/crates/roxmltree-0.14.1.crate) = 921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b
@@ -1161,8 +1183,8 @@ SHA256 (rust/crates/rusqlite-0.31.0.crate) = b838eba278d213a8beaf485bd313fd580ca
SIZE (rust/crates/rusqlite-0.31.0.crate) = 152252
SHA256 (rust/crates/rust-argon2-2.1.0.crate) = 9d9848531d60c9cbbcf9d166c885316c24bc0e2a9d3eba0956bb6cbbd79bc6e8
SIZE (rust/crates/rust-argon2-2.1.0.crate) = 26904
-SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
-SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
+SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace
+SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340
SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d
@@ -1173,38 +1195,42 @@ SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063
SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154
SIZE (rust/crates/rustix-0.38.44.crate) = 379347
-SHA256 (rust/crates/rustix-1.0.7.crate) = c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266
-SIZE (rust/crates/rustix-1.0.7.crate) = 414500
+SHA256 (rust/crates/rustix-1.1.2.crate) = cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e
+SIZE (rust/crates/rustix-1.1.2.crate) = 422717
SHA256 (rust/crates/rustix-linux-procfs-0.1.1.crate) = 2fc84bf7e9aa16c4f2c758f27412dc9841341e16aa682d9c7ac308fe3ee12056
SIZE (rust/crates/rustix-linux-procfs-0.1.1.crate) = 17465
-SHA256 (rust/crates/rustls-0.23.26.crate) = df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0
-SIZE (rust/crates/rustls-0.23.26.crate) = 347849
+SHA256 (rust/crates/rustls-0.23.31.crate) = c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc
+SIZE (rust/crates/rustls-0.23.31.crate) = 371259
SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3
SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129
SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50
SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849
-SHA256 (rust/crates/rustls-pki-types-1.11.0.crate) = 917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c
-SIZE (rust/crates/rustls-pki-types-1.11.0.crate) = 63933
-SHA256 (rust/crates/rustls-platform-verifier-0.5.2.crate) = 4937d110d34408e9e5ad30ba0b0ca3b6a8a390f8db3636db60144ac4fa792750
-SIZE (rust/crates/rustls-platform-verifier-0.5.2.crate) = 61002
+SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79
+SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740
+SHA256 (rust/crates/rustls-platform-verifier-0.6.1.crate) = be59af91596cac372a6942530653ad0c3a246cdd491aaa9dcaee47f88d67d5a0
+SIZE (rust/crates/rustls-platform-verifier-0.6.1.crate) = 60142
SHA256 (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f
SIZE (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = 13919
-SHA256 (rust/crates/rustls-webpki-0.103.1.crate) = fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03
-SIZE (rust/crates/rustls-webpki-0.103.1.crate) = 820273
+SHA256 (rust/crates/rustls-webpki-0.103.4.crate) = 0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc
+SIZE (rust/crates/rustls-webpki-0.103.4.crate) = 84241
SHA256 (rust/crates/rusttype-0.7.9.crate) = 310942406a39981bed7e12b09182a221a29e0990f3e7e0c971f131922ed135d5
SIZE (rust/crates/rusttype-0.7.9.crate) = 42732
SHA256 (rust/crates/rusttype-0.8.3.crate) = 9f61411055101f7b60ecf1041d87fb74205fb20b0c7a723f07ef39174cf6b4c0
SIZE (rust/crates/rusttype-0.8.3.crate) = 37327
-SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2
-SIZE (rust/crates/rustversion-1.0.20.crate) = 20666
-SHA256 (rust/crates/rustyline-15.0.0.crate) = 2ee1e066dc922e513bda599c6ccb5f3bb2b0ea5870a579448f2622993f0a9a2f
-SIZE (rust/crates/rustyline-15.0.0.crate) = 116346
+SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d
+SIZE (rust/crates/rustversion-1.0.22.crate) = 21096
+SHA256 (rust/crates/rustyline-17.0.1.crate) = a6614df0b6d4cfb20d1d5e295332921793ce499af3ebc011bf1e393380e1e492
+SIZE (rust/crates/rustyline-17.0.1.crate) = 121346
SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
-SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
-SIZE (rust/crates/schannel-0.1.27.crate) = 42772
+SHA256 (rust/crates/schannel-0.1.28.crate) = 891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1
+SIZE (rust/crates/schannel-0.1.28.crate) = 42312
+SHA256 (rust/crates/schemars-0.9.0.crate) = 4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f
+SIZE (rust/crates/schemars-0.9.0.crate) = 80032
+SHA256 (rust/crates/schemars-1.0.4.crate) = 82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0
+SIZE (rust/crates/schemars-1.0.4.crate) = 88282
SHA256 (rust/crates/schnellru-0.2.4.crate) = 356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649
SIZE (rust/crates/schnellru-0.2.4.crate) = 24055
SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294
@@ -1217,12 +1243,10 @@ SHA256 (rust/crates/sdl2-0.35.2.crate) = f7959277b623f1fb9e04aea73686c3ca52f01b2
SIZE (rust/crates/sdl2-0.35.2.crate) = 177570
SHA256 (rust/crates/sdl2-sys-0.35.2.crate) = e3586be2cf6c0a8099a79a12b4084357aa9b3e0b0d7980e3b67aaf7a9d55f9f0
SIZE (rust/crates/sdl2-sys-0.35.2.crate) = 7425816
-SHA256 (rust/crates/security-framework-3.2.0.crate) = 271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316
-SIZE (rust/crates/security-framework-3.2.0.crate) = 86095
-SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
-SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
-SHA256 (rust/crates/self_cell-0.10.3.crate) = e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d
-SIZE (rust/crates/self_cell-0.10.3.crate) = 7308
+SHA256 (rust/crates/security-framework-3.4.0.crate) = 60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640
+SIZE (rust/crates/security-framework-3.4.0.crate) = 88668
+SHA256 (rust/crates/security-framework-sys-2.15.0.crate) = cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0
+SIZE (rust/crates/security-framework-sys-2.15.0.crate) = 20718
SHA256 (rust/crates/self_cell-1.2.0.crate) = 0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749
SIZE (rust/crates/self_cell-1.2.0.crate) = 16883
SHA256 (rust/crates/semver-0.9.0.crate) = 1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403
@@ -1237,20 +1261,22 @@ SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854
SIZE (rust/crates/serde-1.0.219.crate) = 78983
SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
-SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373
-SIZE (rust/crates/serde_json-1.0.140.crate) = 154852
+SHA256 (rust/crates/serde_json-1.0.143.crate) = d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a
+SIZE (rust/crates/serde_json-1.0.143.crate) = 155342
SHA256 (rust/crates/serde_path_to_error-0.1.17.crate) = 59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a
SIZE (rust/crates/serde_path_to_error-0.1.17.crate) = 17662
SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c
SIZE (rust/crates/serde_repr-0.1.20.crate) = 12627
-SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1
-SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330
+SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3
+SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210
+SHA256 (rust/crates/serde_spanned-1.0.0.crate) = 40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83
+SIZE (rust/crates/serde_spanned-1.0.0.crate) = 10956
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
-SHA256 (rust/crates/serde_with-3.12.0.crate) = d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa
-SIZE (rust/crates/serde_with-3.12.0.crate) = 148666
-SHA256 (rust/crates/serde_with_macros-3.12.0.crate) = 8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e
-SIZE (rust/crates/serde_with_macros-3.12.0.crate) = 32089
+SHA256 (rust/crates/serde_with-3.14.0.crate) = f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5
+SIZE (rust/crates/serde_with-3.14.0.crate) = 192177
+SHA256 (rust/crates/serde_with_macros-3.14.0.crate) = de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f
+SIZE (rust/crates/serde_with_macros-3.14.0.crate) = 39066
SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283
SIZE (rust/crates/sha2-0.10.9.crate) = 29271
SHA256 (rust/crates/shaderc-0.8.3.crate) = 27e07913ada18607bb60d12431cbe3358d3bbebbe95948e1618851dc01e63b7b
@@ -1261,8 +1287,6 @@ SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e82
SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde
SIZE (rust/crates/shell-words-1.1.0.crate) = 9871
-SHA256 (rust/crates/shellexpand-2.1.2.crate) = 7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4
-SIZE (rust/crates/shellexpand-2.1.2.crate) = 16884
SHA256 (rust/crates/shellexpand-3.1.1.crate) = 8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb
SIZE (rust/crates/shellexpand-3.1.1.crate) = 25904
SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
@@ -1273,22 +1297,22 @@ SHA256 (rust/crates/shred-derive-0.7.0.crate) = 69760b786f8b40361c10663eb63c81fa
SIZE (rust/crates/shred-derive-0.7.0.crate) = 2365
SHA256 (rust/crates/shrev-1.1.3.crate) = a5ea33232fdcf1bf691ca33450e5a94dde13e1a8cbb8caabc5e4f9d761e10b1a
SIZE (rust/crates/shrev-1.1.3.crate) = 11309
-SHA256 (rust/crates/signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801
-SIZE (rust/crates/signal-hook-0.3.17.crate) = 50296
+SHA256 (rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2
+SIZE (rust/crates/signal-hook-0.3.18.crate) = 50862
SHA256 (rust/crates/signal-hook-mio-0.2.4.crate) = 34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd
SIZE (rust/crates/signal-hook-mio-0.2.4.crate) = 9314
-SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410
-SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004
+SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b
+SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277
SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
-SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
-SIZE (rust/crates/slab-0.4.9.crate) = 17108
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
SHA256 (rust/crates/slotmap-1.0.7.crate) = dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a
SIZE (rust/crates/slotmap-1.0.7.crate) = 61390
-SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9
-SIZE (rust/crates/smallvec-1.15.0.crate) = 38113
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
SHA256 (rust/crates/smithay-client-toolkit-0.16.1.crate) = 870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9
SIZE (rust/crates/smithay-client-toolkit-0.16.1.crate) = 131081
SHA256 (rust/crates/smithay-client-toolkit-0.19.2.crate) = 3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016
@@ -1299,16 +1323,16 @@ SHA256 (rust/crates/smithay-clipboard-0.7.2.crate) = cc8216eec463674a0e90f29e0ae
SIZE (rust/crates/smithay-clipboard-0.7.2.crate) = 17877
SHA256 (rust/crates/smol_str-0.2.2.crate) = dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead
SIZE (rust/crates/smol_str-0.2.2.crate) = 15840
-SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef
-SIZE (rust/crates/socket2-0.5.9.crate) = 57432
-SHA256 (rust/crates/sorted-vec-0.8.6.crate) = d372029cb5195f9ab4e4b9aef550787dce78b124fcaee8d82519925defcd6f0d
-SIZE (rust/crates/sorted-vec-0.8.6.crate) = 12172
-SHA256 (rust/crates/spin_sleep-1.3.1.crate) = 17db5ecef7e0bebeb8bf8bc4c4b554e05e0205d7008f10bb37787892e7a6507b
-SIZE (rust/crates/spin_sleep-1.3.1.crate) = 13308
+SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
+SIZE (rust/crates/socket2-0.5.10.crate) = 58169
+SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807
+SIZE (rust/crates/socket2-0.6.0.crate) = 57974
+SHA256 (rust/crates/sorted-vec-0.8.10.crate) = 19f58d7b0190c7f12df7e8be6b79767a0836059159811b869d5ab55721fe14d0
+SIZE (rust/crates/sorted-vec-0.8.10.crate) = 15005
+SHA256 (rust/crates/spin_sleep-1.3.3.crate) = 9c07347b7c0301b9adba4350bdcf09c039d0e7160922050db0439b3c6723c8ab
+SIZE (rust/crates/spin_sleep-1.3.3.crate) = 12859
SHA256 (rust/crates/spirv-0.3.0+sdk-1.3.268.0.crate) = eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844
SIZE (rust/crates/spirv-0.3.0+sdk-1.3.268.0.crate) = 30802
-SHA256 (rust/crates/sptr-0.3.2.crate) = 3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a
-SIZE (rust/crates/sptr-0.3.2.crate) = 14598
SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
SHA256 (rust/crates/stacker-0.1.21.crate) = cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b
@@ -1323,8 +1347,12 @@ SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/strum-0.26.3.crate) = 8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06
SIZE (rust/crates/strum-0.26.3.crate) = 7237
+SHA256 (rust/crates/strum-0.27.2.crate) = af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf
+SIZE (rust/crates/strum-0.27.2.crate) = 8489
SHA256 (rust/crates/strum_macros-0.26.4.crate) = 4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be
SIZE (rust/crates/strum_macros-0.26.4.crate) = 27531
+SHA256 (rust/crates/strum_macros-0.27.2.crate) = 7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7
+SIZE (rust/crates/strum_macros-0.27.2.crate) = 30522
SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292
SIZE (rust/crates/subtle-2.6.1.crate) = 14562
SHA256 (rust/crates/sum_type-0.2.0.crate) = da5b4a0c9f3c7c8e891e445a7c776627e208e8bba23ab680798066dd283e6a15
@@ -1347,10 +1375,10 @@ SHA256 (rust/crates/syn-0.15.44.crate) = 9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a
SIZE (rust/crates/syn-0.15.44.crate) = 184212
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf
-SIZE (rust/crates/syn-2.0.101.crate) = 299250
-SHA256 (rust/crates/sync_file-0.2.9.crate) = 9cfc24238213e42ffb35314aad7a7f5d46649c5fbba3ea95ef24f7debb95874e
-SIZE (rust/crates/sync_file-0.2.9.crate) = 8996
+SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6
+SIZE (rust/crates/syn-2.0.106.crate) = 301514
+SHA256 (rust/crates/sync_file-0.3.0.crate) = 985235628eb5c98253791147f5babfb3fa022eedba0641e1cc930ce4f8581e34
+SIZE (rust/crates/sync_file-0.3.0.crate) = 9451
SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958
SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2
@@ -1359,50 +1387,50 @@ SHA256 (rust/crates/system-interface-0.27.3.crate) = cc4592f674ce18521c2a8148387
SIZE (rust/crates/system-interface-0.27.3.crate) = 32567
SHA256 (rust/crates/tagptr-0.2.0.crate) = 7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417
SIZE (rust/crates/tagptr-0.2.0.crate) = 13320
-SHA256 (rust/crates/take-once-0.1.2.crate) = ae3e30fcd6e30346aff75e3bd38834ebc8ca2ed8925884bc867f77213bf3f714
-SIZE (rust/crates/take-once-0.1.2.crate) = 4285
+SHA256 (rust/crates/take-once-0.1.3.crate) = 3aa803da503e4a3d6bef14005f97495336b70eb767187a231c02ef899d0cfe0f
+SIZE (rust/crates/take-once-0.1.3.crate) = 8094
SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
SIZE (rust/crates/tap-1.0.1.crate) = 11316
SHA256 (rust/crates/tar-0.4.44.crate) = 1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a
SIZE (rust/crates/tar-0.4.44.crate) = 61020
-SHA256 (rust/crates/target-lexicon-0.13.2.crate) = e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a
-SIZE (rust/crates/target-lexicon-0.13.2.crate) = 27923
-SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf
-SIZE (rust/crates/tempfile-3.19.1.crate) = 39634
+SHA256 (rust/crates/target-lexicon-0.13.3.crate) = df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c
+SIZE (rust/crates/target-lexicon-0.13.3.crate) = 28498
+SHA256 (rust/crates/tempfile-3.22.0.crate) = 84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53
+SIZE (rust/crates/tempfile-3.22.0.crate) = 43044
SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
-SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708
-SIZE (rust/crates/thiserror-2.0.12.crate) = 28693
+SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0
+SIZE (rust/crates/thiserror-2.0.16.crate) = 29095
SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
-SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d
-SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141
-SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c
-SIZE (rust/crates/thread_local-1.1.8.crate) = 13962
-SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40
-SIZE (rust/crates/time-0.3.41.crate) = 138369
-SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c
-SIZE (rust/crates/time-core-0.1.4.crate) = 8422
-SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49
-SIZE (rust/crates/time-macros-0.2.22.crate) = 24604
-SHA256 (rust/crates/timer-queue-0.1.0.crate) = 13756c29c43d836ff576221498bf4916b0d2f7ea24cd47d3531b70dc4341f038
-SIZE (rust/crates/timer-queue-0.1.0.crate) = 13344
+SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960
+SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214
+SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
+SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
+SHA256 (rust/crates/time-0.3.43.crate) = 83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031
+SIZE (rust/crates/time-0.3.43.crate) = 142912
+SHA256 (rust/crates/time-core-0.1.6.crate) = 40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b
+SIZE (rust/crates/time-core-0.1.6.crate) = 9105
+SHA256 (rust/crates/time-macros-0.2.24.crate) = 30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3
+SIZE (rust/crates/time-macros-0.2.24.crate) = 24715
+SHA256 (rust/crates/timer-queue-0.1.1.crate) = d6773c1d27b8cdd22273cd8b9366267ec4006459614baa4c22cc4964f6e5b564
+SIZE (rust/crates/timer-queue-0.1.1.crate) = 20389
SHA256 (rust/crates/tiny-skia-0.11.4.crate) = 83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab
SIZE (rust/crates/tiny-skia-0.11.4.crate) = 201082
SHA256 (rust/crates/tiny-skia-path-0.11.4.crate) = 9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93
SIZE (rust/crates/tiny-skia-path-0.11.4.crate) = 47764
-SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f
-SIZE (rust/crates/tinystr-0.7.6.crate) = 16971
+SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b
+SIZE (rust/crates/tinystr-0.8.1.crate) = 23333
SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc
SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490
-SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71
-SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137
+SHA256 (rust/crates/tinyvec-1.10.0.crate) = bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa
+SIZE (rust/crates/tinyvec-1.10.0.crate) = 51996
SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/tokio-1.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48
-SIZE (rust/crates/tokio-1.44.2.crate) = 841618
+SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038
+SIZE (rust/crates/tokio-1.47.1.crate) = 829790
SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
@@ -1411,14 +1439,22 @@ SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253
SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477
SHA256 (rust/crates/toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234
SIZE (rust/crates/toml-0.5.11.crate) = 54910
-SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae
-SIZE (rust/crates/toml-0.8.22.crate) = 76224
-SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3
-SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622
-SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e
-SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714
-SHA256 (rust/crates/toml_write-0.1.1.crate) = bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076
-SIZE (rust/crates/toml_write-0.1.1.crate) = 17467
+SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362
+SIZE (rust/crates/toml-0.8.23.crate) = 36050
+SHA256 (rust/crates/toml-0.9.5.crate) = 75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8
+SIZE (rust/crates/toml-0.9.5.crate) = 56833
+SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c
+SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125
+SHA256 (rust/crates/toml_datetime-0.7.0.crate) = bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3
+SIZE (rust/crates/toml_datetime-0.7.0.crate) = 18108
+SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a
+SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602
+SHA256 (rust/crates/toml_parser-1.0.2.crate) = b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10
+SIZE (rust/crates/toml_parser-1.0.2.crate) = 35241
+SHA256 (rust/crates/toml_write-0.1.2.crate) = 5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801
+SIZE (rust/crates/toml_write-0.1.2.crate) = 15660
+SHA256 (rust/crates/toml_writer-1.0.2.crate) = fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64
+SIZE (rust/crates/toml_writer-1.0.2.crate) = 16988
SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
SIZE (rust/crates/tower-0.5.2.crate) = 109417
SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e
@@ -1429,22 +1465,20 @@ SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea
SIZE (rust/crates/tracing-0.1.41.crate) = 82448
SHA256 (rust/crates/tracing-appender-0.2.3.crate) = 3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf
SIZE (rust/crates/tracing-appender-0.2.3.crate) = 21964
-SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d
-SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280
-SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c
-SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434
+SHA256 (rust/crates/tracing-attributes-0.1.30.crate) = 81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903
+SIZE (rust/crates/tracing-attributes-0.1.30.crate) = 39142
+SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678
+SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760
SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3
SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561
-SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008
-SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345
-SHA256 (rust/crates/tracing-tracy-0.11.3.crate) = dc775fdaf33c3dfd19dc354729e65e87914bc67dcdc390ca1210807b8bee5902
-SIZE (rust/crates/tracing-tracy-0.11.3.crate) = 14641
-SHA256 (rust/crates/tracy-client-0.17.6.crate) = 73202d787346a5418f8222eddb5a00f29ea47caf3c7d38a8f2f69f8455fa7c7e
-SIZE (rust/crates/tracy-client-0.17.6.crate) = 24453
-SHA256 (rust/crates/tracy-client-sys-0.24.3.crate) = 69fff37da548239c3bf9e64a12193d261e8b22b660991c6fd2df057c168f435f
-SIZE (rust/crates/tracy-client-sys-0.24.3.crate) = 319958
-SHA256 (rust/crates/trait-variant-0.1.2.crate) = 70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7
-SIZE (rust/crates/trait-variant-0.1.2.crate) = 6008
+SHA256 (rust/crates/tracing-subscriber-0.3.20.crate) = 2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5
+SIZE (rust/crates/tracing-subscriber-0.3.20.crate) = 212274
+SHA256 (rust/crates/tracing-tracy-0.11.4.crate) = 0eaa1852afa96e0fe9e44caa53dc0bd2d9d05e0f2611ce09f97f8677af56e4ba
+SIZE (rust/crates/tracing-tracy-0.11.4.crate) = 14765
+SHA256 (rust/crates/tracy-client-0.18.2.crate) = ef54005d3d760186fd662dad4b7bb27ecd5531cdef54d1573ebd3f20a9205ed7
+SIZE (rust/crates/tracy-client-0.18.2.crate) = 31607
+SHA256 (rust/crates/tracy-client-sys-0.26.1.crate) = 319c70195101a93f56db4c74733e272d720768e13471f400c78406a326b172b0
+SIZE (rust/crates/tracy-client-sys-0.26.1.crate) = 351280
SHA256 (rust/crates/treeculler-0.4.0.crate) = c11fcf82651ce9a4550c82beb88a38951fdde004917817eba244359720d74c06
SIZE (rust/crates/treeculler-0.4.0.crate) = 4577
SHA256 (rust/crates/triple_buffer-8.1.1.crate) = 420466259f9fa5decc654c490b9ab538400e5420df8237f84ecbe20368bcf72b
@@ -1457,20 +1491,20 @@ SHA256 (rust/crates/tuple_utils-0.4.0.crate) = cffaaf9392ef73cd30828797152476aaa
SIZE (rust/crates/tuple_utils-0.4.0.crate) = 2893
SHA256 (rust/crates/twox-hash-1.6.3.crate) = 97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675
SIZE (rust/crates/twox-hash-1.6.3.crate) = 21842
-SHA256 (rust/crates/twox-hash-2.1.0.crate) = e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908
-SIZE (rust/crates/twox-hash-2.1.0.crate) = 35275
+SHA256 (rust/crates/twox-hash-2.1.2.crate) = 9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c
+SIZE (rust/crates/twox-hash-2.1.2.crate) = 35641
SHA256 (rust/crates/tynm-0.1.10.crate) = bd30d05e69d1478e13fe3e7a853409cfec82cebc2cf9b8d613b3c6b0081781ed
SIZE (rust/crates/tynm-0.1.10.crate) = 16394
-SHA256 (rust/crates/type-map-0.5.0.crate) = deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f
-SIZE (rust/crates/type-map-0.5.0.crate) = 3464
+SHA256 (rust/crates/type-map-0.5.1.crate) = cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90
+SIZE (rust/crates/type-map-0.5.1.crate) = 8606
SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f
SIZE (rust/crates/typenum-1.18.0.crate) = 74871
SHA256 (rust/crates/ubyte-0.10.4.crate) = f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea
SIZE (rust/crates/ubyte-0.10.4.crate) = 13965
-SHA256 (rust/crates/unic-langid-0.9.5.crate) = 23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44
-SIZE (rust/crates/unic-langid-0.9.5.crate) = 8898
-SHA256 (rust/crates/unic-langid-impl-0.9.5.crate) = 0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5
-SIZE (rust/crates/unic-langid-impl-0.9.5.crate) = 89659
+SHA256 (rust/crates/unic-langid-0.9.6.crate) = a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05
+SIZE (rust/crates/unic-langid-0.9.6.crate) = 9031
+SHA256 (rust/crates/unic-langid-impl-0.9.6.crate) = dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658
+SIZE (rust/crates/unic-langid-impl-0.9.6.crate) = 90020
SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
SHA256 (rust/crates/unicode-segmentation-1.12.0.crate) = f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493
@@ -1485,18 +1519,20 @@ SHA256 (rust/crates/unicode-xid-0.1.0.crate) = fc72304796d0818e357ead4e000d19c9c
SIZE (rust/crates/unicode-xid-0.1.0.crate) = 16000
SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
+SHA256 (rust/crates/unit-prefix-0.5.1.crate) = 323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817
+SIZE (rust/crates/unit-prefix-0.5.1.crate) = 7627
SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
-SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
-SIZE (rust/crates/url-2.5.4.crate) = 81097
-SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246
-SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736
+SHA256 (rust/crates/unty-0.0.4.crate) = 6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae
+SIZE (rust/crates/unty-0.0.4.crate) = 7200
+SHA256 (rust/crates/url-2.5.7.crate) = 08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b
+SIZE (rust/crates/url-2.5.7.crate) = 87907
SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
-SHA256 (rust/crates/uuid-1.16.0.crate) = 458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9
-SIZE (rust/crates/uuid-1.16.0.crate) = 58549
+SHA256 (rust/crates/uuid-1.18.1.crate) = 2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2
+SIZE (rust/crates/uuid-1.18.1.crate) = 60468
SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65
SIZE (rust/crates/valuable-0.1.1.crate) = 28679
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
@@ -1513,112 +1549,120 @@ SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853a
SIZE (rust/crates/version_check-0.9.5.crate) = 15554
SHA256 (rust/crates/versions-7.0.0.crate) = 80a7e511ce1795821207a837b7b1c8d8aca0c648810966ad200446ae58f6667f
SIZE (rust/crates/versions-7.0.0.crate) = 23307
+SHA256 (rust/crates/virtue-0.0.18.crate) = 051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1
+SIZE (rust/crates/virtue-0.0.18.crate) = 33545
SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
SIZE (rust/crates/want-0.3.1.crate) = 6398
-SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
-SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
-SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3
-SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921
-SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5
-SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6
-SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111
-SHA256 (rust/crates/wasm-bindgen-futures-0.4.45.crate) = cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b
-SIZE (rust/crates/wasm-bindgen-futures-0.4.45.crate) = 14329
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407
-SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d
-SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570
-SHA256 (rust/crates/wasm-encoder-0.221.3.crate) = dc8444fe4920de80a4fe5ab564fff2ae58b6b73166b89751f8c6c93509da32e5
-SIZE (rust/crates/wasm-encoder-0.221.3.crate) = 67487
-SHA256 (rust/crates/wasm-encoder-0.229.0.crate) = 38ba1d491ecacb085a2552025c10a675a6fddcbd03b1fc9b36c536010ce265d2
-SIZE (rust/crates/wasm-encoder-0.229.0.crate) = 81299
-SHA256 (rust/crates/wasmparser-0.221.3.crate) = d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185
-SIZE (rust/crates/wasmparser-0.221.3.crate) = 242903
-SHA256 (rust/crates/wasmparser-0.229.0.crate) = 0cc3b1f053f5d41aa55640a1fa9b6d1b8a9e4418d118ce308d20e24ff3575a8c
-SIZE (rust/crates/wasmparser-0.229.0.crate) = 249693
-SHA256 (rust/crates/wasmprinter-0.221.3.crate) = 7343c42a97f2926c7819ff81b64012092ae954c5d83ddd30c9fcdefd97d0b283
-SIZE (rust/crates/wasmprinter-0.221.3.crate) = 39793
-SHA256 (rust/crates/wasmtime-29.0.1.crate) = 11976a250672556d1c4c04c6d5d7656ac9192ac9edc42a4587d6c21460010e69
-SIZE (rust/crates/wasmtime-29.0.1.crate) = 693309
-SHA256 (rust/crates/wasmtime-asm-macros-29.0.1.crate) = 1f178b0d125201fbe9f75beaf849bd3e511891f9e45ba216a5b620802ccf64f2
-SIZE (rust/crates/wasmtime-asm-macros-29.0.1.crate) = 1865
-SHA256 (rust/crates/wasmtime-cache-29.0.1.crate) = 8b1161c8f62880deea07358bc40cceddc019f1c81d46007bc390710b2fe24ffc
-SIZE (rust/crates/wasmtime-cache-29.0.1.crate) = 32600
-SHA256 (rust/crates/wasmtime-component-macro-29.0.1.crate) = d74de6592ed945d0a602f71243982a304d5d02f1e501b638addf57f42d57dfaf
-SIZE (rust/crates/wasmtime-component-macro-29.0.1.crate) = 203168
-SHA256 (rust/crates/wasmtime-component-util-29.0.1.crate) = 707dc7b3c112ab5a366b30cfe2fb5b2f8e6a0f682f16df96a5ec582bfe6f056e
-SIZE (rust/crates/wasmtime-component-util-29.0.1.crate) = 2515
-SHA256 (rust/crates/wasmtime-cranelift-29.0.1.crate) = 366be722674d4bf153290fbcbc4d7d16895cc82fb3e869f8d550ff768f9e9e87
-SIZE (rust/crates/wasmtime-cranelift-29.0.1.crate) = 178851
-SHA256 (rust/crates/wasmtime-environ-29.0.1.crate) = cdadc1af7097347aa276a4f008929810f726b5b46946971c660b6d421e9994ad
-SIZE (rust/crates/wasmtime-environ-29.0.1.crate) = 192670
-SHA256 (rust/crates/wasmtime-fiber-29.0.1.crate) = ccba90d4119f081bca91190485650730a617be1fff5228f8c4757ce133d21117
-SIZE (rust/crates/wasmtime-fiber-29.0.1.crate) = 27634
-SHA256 (rust/crates/wasmtime-jit-debug-29.0.1.crate) = 3e7b61488a5ee00c35c8c22de707c36c0aecacf419a3be803a6a2ba5e860f56a
-SIZE (rust/crates/wasmtime-jit-debug-29.0.1.crate) = 7433
-SHA256 (rust/crates/wasmtime-jit-icache-coherence-29.0.1.crate) = ec5e8552e01692e6c2e5293171704fed8abdec79d1a6995a0870ab190e5747d1
-SIZE (rust/crates/wasmtime-jit-icache-coherence-29.0.1.crate) = 6840
-SHA256 (rust/crates/wasmtime-math-29.0.1.crate) = 29210ec2aa25e00f4d54605cedaf080f39ec01a872c5bd520ad04c67af1dde17
-SIZE (rust/crates/wasmtime-math-29.0.1.crate) = 2630
-SHA256 (rust/crates/wasmtime-slab-29.0.1.crate) = fcb5821a96fa04ac14bc7b158bb3d5cd7729a053db5a74dad396cd513a5e5ccf
-SIZE (rust/crates/wasmtime-slab-29.0.1.crate) = 5435
-SHA256 (rust/crates/wasmtime-versioned-export-macros-29.0.1.crate) = 86ff86db216dc0240462de40c8290887a613dddf9685508eb39479037ba97b5b
-SIZE (rust/crates/wasmtime-versioned-export-macros-29.0.1.crate) = 2038
-SHA256 (rust/crates/wasmtime-wasi-29.0.1.crate) = 8d1be69bfcab1bdac74daa7a1f9695ab992b9c8e21b9b061e7d66434097e0ca4
-SIZE (rust/crates/wasmtime-wasi-29.0.1.crate) = 164209
-SHA256 (rust/crates/wasmtime-winch-29.0.1.crate) = fdbabfb8f20502d5e1d81092b9ead3682ae59988487aafcd7567387b7a43cf8f
-SIZE (rust/crates/wasmtime-winch-29.0.1.crate) = 13095
-SHA256 (rust/crates/wasmtime-wit-bindgen-29.0.1.crate) = 8358319c2dd1e4db79e3c1c5d3a5af84956615343f9f89f4e4996a36816e06e6
-SIZE (rust/crates/wasmtime-wit-bindgen-29.0.1.crate) = 31902
+SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
+SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
+SHA256 (rust/crates/wasi-0.14.5+wasi-0.2.4.crate) = a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4
+SIZE (rust/crates/wasi-0.14.5+wasi-0.2.4.crate) = 18092
+SHA256 (rust/crates/wasip2-1.0.0+wasi-0.2.4.crate) = 03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24
+SIZE (rust/crates/wasip2-1.0.0+wasi-0.2.4.crate) = 132019
+SHA256 (rust/crates/wasm-bindgen-0.2.101.crate) = 7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b
+SIZE (rust/crates/wasm-bindgen-0.2.101.crate) = 47841
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.101.crate) = e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb
+SIZE (rust/crates/wasm-bindgen-backend-0.2.101.crate) = 32331
+SHA256 (rust/crates/wasm-bindgen-futures-0.4.51.crate) = 0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe
+SIZE (rust/crates/wasm-bindgen-futures-0.4.51.crate) = 16315
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.101.crate) = 7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d
+SIZE (rust/crates/wasm-bindgen-macro-0.2.101.crate) = 9804
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.101.crate) = 7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.101.crate) = 26415
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.101.crate) = f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1
+SIZE (rust/crates/wasm-bindgen-shared-0.2.101.crate) = 9055
+SHA256 (rust/crates/wasm-encoder-0.236.1.crate) = 724fccfd4f3c24b7e589d333fc0429c68042897a7e8a5f8694f31792471841e7
+SIZE (rust/crates/wasm-encoder-0.236.1.crate) = 83380
+SHA256 (rust/crates/wasm-encoder-0.239.0.crate) = 5be00faa2b4950c76fe618c409d2c3ea5a3c9422013e079482d78544bb2d184c
+SIZE (rust/crates/wasm-encoder-0.239.0.crate) = 83923
+SHA256 (rust/crates/wasmparser-0.236.1.crate) = a9b1e81f3eb254cf7404a82cee6926a4a3ccc5aad80cc3d43608a070c67aa1d7
+SIZE (rust/crates/wasmparser-0.236.1.crate) = 259406
+SHA256 (rust/crates/wasmparser-0.239.0.crate) = 8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0
+SIZE (rust/crates/wasmparser-0.239.0.crate) = 260621
+SHA256 (rust/crates/wasmprinter-0.236.1.crate) = 2df225df06a6df15b46e3f73ca066ff92c2e023670969f7d50ce7d5e695abbb1
+SIZE (rust/crates/wasmprinter-0.236.1.crate) = 44027
+SHA256 (rust/crates/wasmtime-36.0.2.crate) = 5b3e1fab634681494213138ea3a18e958e5ea99da13a4a01a4b870d51a41680b
+SIZE (rust/crates/wasmtime-36.0.2.crate) = 884638
+SHA256 (rust/crates/wasmtime-environ-36.0.2.crate) = 6750e519977953a018fe994aada7e02510aea4babb03310aa5f5b4145b6e6577
+SIZE (rust/crates/wasmtime-environ-36.0.2.crate) = 223975
+SHA256 (rust/crates/wasmtime-internal-asm-macros-36.0.2.crate) = bdbf38adac6e81d5c0326e8fd25f80450e3038f2fc103afd3c5cc8b83d5dd78b
+SIZE (rust/crates/wasmtime-internal-asm-macros-36.0.2.crate) = 2126
+SHA256 (rust/crates/wasmtime-internal-cache-36.0.2.crate) = c0c9085d8c04cc294612d743e2f355382b39250de4bd20bf4b0b0b7c0ae7067a
+SIZE (rust/crates/wasmtime-internal-cache-36.0.2.crate) = 35276
+SHA256 (rust/crates/wasmtime-internal-component-macro-36.0.2.crate) = 26a578a474e3b7ddce063cd169ced292b5185013341457522891b10e989aa42a
+SIZE (rust/crates/wasmtime-internal-component-macro-36.0.2.crate) = 238521
+SHA256 (rust/crates/wasmtime-internal-component-util-36.0.2.crate) = edc23d46ec1b1cd42b6f73205eb80498ed94b47098ec53456c0b18299405b158
+SIZE (rust/crates/wasmtime-internal-component-util-36.0.2.crate) = 2779
+SHA256 (rust/crates/wasmtime-internal-cranelift-36.0.2.crate) = d85b8ba128525bff91b89ac8a97755136a4fb0fb59df5ffb7539dd646455d441
+SIZE (rust/crates/wasmtime-internal-cranelift-36.0.2.crate) = 191567
+SHA256 (rust/crates/wasmtime-internal-fiber-36.0.2.crate) = 0c566f5137de1f55339df8a236a5ec89698b466a3d33f9cc07823a58a3f85e16
+SIZE (rust/crates/wasmtime-internal-fiber-36.0.2.crate) = 31811
+SHA256 (rust/crates/wasmtime-internal-jit-debug-36.0.2.crate) = e03f0b11f8fe4d456feac11e7e9dc6f02ddb34d4f6a1912775dbc63c5bdd5670
+SIZE (rust/crates/wasmtime-internal-jit-debug-36.0.2.crate) = 9373
+SHA256 (rust/crates/wasmtime-internal-jit-icache-coherence-36.0.2.crate) = 71aeb74f9b3fd9225319c723e59832a77a674b0c899ba9795f9b2130a6d1b167
+SIZE (rust/crates/wasmtime-internal-jit-icache-coherence-36.0.2.crate) = 7111
+SHA256 (rust/crates/wasmtime-internal-math-36.0.2.crate) = 31d5dad8a609c6cc47a5f265f13b52e347e893450a69641af082b8a276043fa7
+SIZE (rust/crates/wasmtime-internal-math-36.0.2.crate) = 3575
+SHA256 (rust/crates/wasmtime-internal-slab-36.0.2.crate) = 6d152a7b875d62e395bfe0ae7d12e7b47cd332eb380353cce3eb831f9843731d
+SIZE (rust/crates/wasmtime-internal-slab-36.0.2.crate) = 5736
+SHA256 (rust/crates/wasmtime-internal-unwinder-36.0.2.crate) = 2aaacc0fea00293f7af7e6c25cef74b7d213ebbe7560c86305eec15fc318fab8
+SIZE (rust/crates/wasmtime-internal-unwinder-36.0.2.crate) = 20209
+SHA256 (rust/crates/wasmtime-internal-versioned-export-macros-36.0.2.crate) = c61c7f75326434944cc5f3b75409a063fa37e537f6247f00f0f733679f0be406
+SIZE (rust/crates/wasmtime-internal-versioned-export-macros-36.0.2.crate) = 2309
+SHA256 (rust/crates/wasmtime-internal-winch-36.0.2.crate) = 6cfbaa87e1ac4972bb096c9cb1800fedc113e36332cc4bc2c96a2ef1d7c5e750
+SIZE (rust/crates/wasmtime-internal-winch-36.0.2.crate) = 14038
+SHA256 (rust/crates/wasmtime-internal-wit-bindgen-36.0.2.crate) = 169042d58002f16da149ab7d608b71164411abd1fc5140f48f4c200b44bb5565
+SIZE (rust/crates/wasmtime-internal-wit-bindgen-36.0.2.crate) = 34324
+SHA256 (rust/crates/wasmtime-wasi-36.0.2.crate) = b9049a5fedcd24fa0f665ba7c17c4445c1a547536a9560d960e15bee2d8428d0
+SIZE (rust/crates/wasmtime-wasi-36.0.2.crate) = 204092
+SHA256 (rust/crates/wasmtime-wasi-io-36.0.2.crate) = d62156d8695d80df8e85baeb56379b3ba6b6bf5996671594724c24d40b67825f
+SIZE (rust/crates/wasmtime-wasi-io-36.0.2.crate) = 21676
SHA256 (rust/crates/wast-35.0.2.crate) = 2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68
SIZE (rust/crates/wast-35.0.2.crate) = 90940
-SHA256 (rust/crates/wast-229.0.0.crate) = 63fcaff613c12225696bb163f79ca38ffb40e9300eff0ff4b8aa8b2f7eadf0d9
-SIZE (rust/crates/wast-229.0.0.crate) = 153934
-SHA256 (rust/crates/wat-1.229.0.crate) = 4189bad08b70455a9e9e67dc126d2dcf91fac143a80f1046747a5dde6d4c33e0
-SIZE (rust/crates/wat-1.229.0.crate) = 8132
+SHA256 (rust/crates/wast-239.0.0.crate) = 9139176fe8a2590e0fb174cdcaf373b224cb93c3dde08e4297c1361d2ba1ea5d
+SIZE (rust/crates/wast-239.0.0.crate) = 156209
+SHA256 (rust/crates/wat-1.239.0.crate) = 3e1c941927d34709f255558166f8901a2005f8ab4a9650432e9281b7cc6f3b75
+SIZE (rust/crates/wat-1.239.0.crate) = 8406
SHA256 (rust/crates/wavefront-0.2.3.crate) = 0162190f32ea78b07b7bc02b57a1c2a7c0874bc3da34f36eba41c86c4b03c4fb
SIZE (rust/crates/wavefront-0.2.3.crate) = 13984
-SHA256 (rust/crates/wayland-backend-0.3.10.crate) = fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121
-SIZE (rust/crates/wayland-backend-0.3.10.crate) = 75632
+SHA256 (rust/crates/wayland-backend-0.3.11.crate) = 673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35
+SIZE (rust/crates/wayland-backend-0.3.11.crate) = 76980
SHA256 (rust/crates/wayland-client-0.29.5.crate) = 3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715
SIZE (rust/crates/wayland-client-0.29.5.crate) = 71041
-SHA256 (rust/crates/wayland-client-0.31.10.crate) = 978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61
-SIZE (rust/crates/wayland-client-0.31.10.crate) = 64777
+SHA256 (rust/crates/wayland-client-0.31.11.crate) = c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d
+SIZE (rust/crates/wayland-client-0.31.11.crate) = 65932
SHA256 (rust/crates/wayland-commons-0.29.5.crate) = 8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902
SIZE (rust/crates/wayland-commons-0.29.5.crate) = 20771
SHA256 (rust/crates/wayland-csd-frame-0.3.0.crate) = 625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e
SIZE (rust/crates/wayland-csd-frame-0.3.0.crate) = 5696
SHA256 (rust/crates/wayland-cursor-0.29.5.crate) = 6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661
SIZE (rust/crates/wayland-cursor-0.29.5.crate) = 6195
-SHA256 (rust/crates/wayland-cursor-0.31.10.crate) = a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182
-SIZE (rust/crates/wayland-cursor-0.31.10.crate) = 9725
+SHA256 (rust/crates/wayland-cursor-0.31.11.crate) = 447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29
+SIZE (rust/crates/wayland-cursor-0.31.11.crate) = 9785
SHA256 (rust/crates/wayland-protocols-0.29.5.crate) = b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6
SIZE (rust/crates/wayland-protocols-0.29.5.crate) = 140859
-SHA256 (rust/crates/wayland-protocols-0.32.8.crate) = 779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a
-SIZE (rust/crates/wayland-protocols-0.32.8.crate) = 210103
-SHA256 (rust/crates/wayland-protocols-plasma-0.3.8.crate) = 4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175
-SIZE (rust/crates/wayland-protocols-plasma-0.3.8.crate) = 69107
-SHA256 (rust/crates/wayland-protocols-wlr-0.3.8.crate) = 1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf
-SIZE (rust/crates/wayland-protocols-wlr-0.3.8.crate) = 28616
+SHA256 (rust/crates/wayland-protocols-0.32.9.crate) = efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901
+SIZE (rust/crates/wayland-protocols-0.32.9.crate) = 155404
+SHA256 (rust/crates/wayland-protocols-plasma-0.3.9.crate) = a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032
+SIZE (rust/crates/wayland-protocols-plasma-0.3.9.crate) = 69243
+SHA256 (rust/crates/wayland-protocols-wlr-0.3.9.crate) = efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec
+SIZE (rust/crates/wayland-protocols-wlr-0.3.9.crate) = 28723
SHA256 (rust/crates/wayland-scanner-0.29.5.crate) = 8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53
SIZE (rust/crates/wayland-scanner-0.29.5.crate) = 17248
-SHA256 (rust/crates/wayland-scanner-0.31.6.crate) = 896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484
-SIZE (rust/crates/wayland-scanner-0.31.6.crate) = 36365
+SHA256 (rust/crates/wayland-scanner-0.31.7.crate) = 54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3
+SIZE (rust/crates/wayland-scanner-0.31.7.crate) = 36483
SHA256 (rust/crates/wayland-sys-0.29.5.crate) = be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4
SIZE (rust/crates/wayland-sys-0.29.5.crate) = 7926
-SHA256 (rust/crates/wayland-sys-0.31.6.crate) = dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615
-SIZE (rust/crates/wayland-sys-0.31.6.crate) = 10049
-SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2
-SIZE (rust/crates/web-sys-0.3.77.crate) = 638246
+SHA256 (rust/crates/wayland-sys-0.31.7.crate) = 34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142
+SIZE (rust/crates/wayland-sys-0.31.7.crate) = 10106
+SHA256 (rust/crates/web-sys-0.3.78.crate) = 77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12
+SIZE (rust/crates/web-sys-0.3.78.crate) = 642410
SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
SIZE (rust/crates/web-time-1.1.0.crate) = 18026
-SHA256 (rust/crates/webpki-root-certs-0.26.10.crate) = c99403924bc5f23afefc319b8ac67ed0e50669f6e52a413314cccb1fdbc93ba0
-SIZE (rust/crates/webpki-root-certs-0.26.10.crate) = 171116
+SHA256 (rust/crates/webpki-root-certs-1.0.2.crate) = 4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a
+SIZE (rust/crates/webpki-root-certs-1.0.2.crate) = 173652
SHA256 (rust/crates/wfd-0.1.7.crate) = e713040b67aae5bf1a0ae3e1ebba8cc29ab2b90da9aa1bff6e09031a8a41d7a8
SIZE (rust/crates/wfd-0.1.7.crate) = 8825
SHA256 (rust/crates/wgpu-26.0.1.crate) = 70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798
@@ -1641,24 +1685,24 @@ SHA256 (rust/crates/which-7.0.3.crate) = 24d643ce3fd3e5b54854602a080f34fb10ab75e
SIZE (rust/crates/which-7.0.3.crate) = 18872
SHA256 (rust/crates/widestring-1.2.0.crate) = dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d
SIZE (rust/crates/widestring-1.2.0.crate) = 89105
-SHA256 (rust/crates/wiggle-29.0.1.crate) = 4b9af35bc9629c52c261465320a9a07959164928b4241980ba1cf923b9e6751d
-SIZE (rust/crates/wiggle-29.0.1.crate) = 24153
-SHA256 (rust/crates/wiggle-generate-29.0.1.crate) = 2cf267dd05673912c8138f4b54acabe6bd53407d9d1536f0fadb6520dd16e101
-SIZE (rust/crates/wiggle-generate-29.0.1.crate) = 25441
-SHA256 (rust/crates/wiggle-macro-29.0.1.crate) = 08c5c473d4198e6c2d377f3809f713ff0c110cab88a0805ae099a82119ee250c
-SIZE (rust/crates/wiggle-macro-29.0.1.crate) = 10866
+SHA256 (rust/crates/wiggle-36.0.2.crate) = e233166bc0ef02371ebe2c630aba51dd3f015bcaf616d32b4171efab84d09137
+SIZE (rust/crates/wiggle-36.0.2.crate) = 23809
+SHA256 (rust/crates/wiggle-generate-36.0.2.crate) = 93048543902e61c65b75d8a9ea0e78d5a8723e5db6e11ff93870165807c4463d
+SIZE (rust/crates/wiggle-generate-36.0.2.crate) = 24564
+SHA256 (rust/crates/wiggle-macro-36.0.2.crate) = fd7e511edbcaa045079dea564486c4ff7946ae491002227c41d74ea62a59d329
+SIZE (rust/crates/wiggle-macro-36.0.2.crate) = 10085
SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
-SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb
-SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464
+SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22
+SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368
SHA256 (rust/crates/winapi-wsapoll-0.1.2.crate) = 1eafc5f679c576995526e81635d0cf9695841736712b4e892f87abbe6fed3f28
SIZE (rust/crates/winapi-wsapoll-0.1.2.crate) = 2865
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
-SHA256 (rust/crates/winch-codegen-29.0.1.crate) = 2f849ef2c5f46cb0a20af4b4487aaa239846e52e2c03f13fa3c784684552859c
-SIZE (rust/crates/winch-codegen-29.0.1.crate) = 119631
+SHA256 (rust/crates/winch-codegen-36.0.2.crate) = 6e615fe205d7d4c9aa62217862f2e0969d00b9b0843af0b1b8181adaea3cfef3
+SIZE (rust/crates/winch-codegen-36.0.2.crate) = 165765
SHA256 (rust/crates/window_clipboard-0.4.1.crate) = f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d
SIZE (rust/crates/window_clipboard-0.4.1.crate) = 16047
SHA256 (rust/crates/windows-0.48.0.crate) = e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f
@@ -1667,12 +1711,18 @@ SHA256 (rust/crates/windows-0.54.0.crate) = 9252e5725dbed82865af151df558e754e4a3
SIZE (rust/crates/windows-0.54.0.crate) = 11096265
SHA256 (rust/crates/windows-0.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6
SIZE (rust/crates/windows-0.58.0.crate) = 9744521
+SHA256 (rust/crates/windows-0.61.3.crate) = 9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893
+SIZE (rust/crates/windows-0.61.3.crate) = 9372520
+SHA256 (rust/crates/windows-collections-0.2.0.crate) = 3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8
+SIZE (rust/crates/windows-collections-0.2.0.crate) = 13579
SHA256 (rust/crates/windows-core-0.54.0.crate) = 12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65
SIZE (rust/crates/windows-core-0.54.0.crate) = 44015
SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99
SIZE (rust/crates/windows-core-0.58.0.crate) = 41022
-SHA256 (rust/crates/windows-core-0.61.0.crate) = 4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980
-SIZE (rust/crates/windows-core-0.61.0.crate) = 36707
+SHA256 (rust/crates/windows-core-0.61.2.crate) = c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3
+SIZE (rust/crates/windows-core-0.61.2.crate) = 36771
+SHA256 (rust/crates/windows-future-0.2.1.crate) = fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e
+SIZE (rust/crates/windows-future-0.2.1.crate) = 17532
SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b
SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491
SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836
@@ -1681,18 +1731,22 @@ SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a
SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246
SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8
SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735
-SHA256 (rust/crates/windows-link-0.1.1.crate) = 76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38
-SIZE (rust/crates/windows-link-0.1.1.crate) = 6154
+SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a
+SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
+SHA256 (rust/crates/windows-link-0.2.0.crate) = 45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65
+SIZE (rust/crates/windows-link-0.2.0.crate) = 6170
+SHA256 (rust/crates/windows-numerics-0.2.0.crate) = 9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1
+SIZE (rust/crates/windows-numerics-0.2.0.crate) = 9686
SHA256 (rust/crates/windows-result-0.1.2.crate) = 5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8
SIZE (rust/crates/windows-result-0.1.2.crate) = 10601
SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e
SIZE (rust/crates/windows-result-0.2.0.crate) = 12756
-SHA256 (rust/crates/windows-result-0.3.2.crate) = c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252
-SIZE (rust/crates/windows-result-0.3.2.crate) = 13399
+SHA256 (rust/crates/windows-result-0.3.4.crate) = 56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6
+SIZE (rust/crates/windows-result-0.3.4.crate) = 13418
SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10
SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832
-SHA256 (rust/crates/windows-strings-0.4.0.crate) = 7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97
-SIZE (rust/crates/windows-strings-0.4.0.crate) = 13939
+SHA256 (rust/crates/windows-strings-0.4.2.crate) = 56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57
+SIZE (rust/crates/windows-strings-0.4.2.crate) = 13983
SHA256 (rust/crates/windows-sys-0.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0
SIZE (rust/crates/windows-sys-0.45.0.crate) = 2568659
SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
@@ -1701,60 +1755,84 @@ SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9b
SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-sys-0.61.0.crate) = e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa
+SIZE (rust/crates/windows-sys-0.61.0.crate) = 2517134
SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071
SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492
SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows-targets-0.53.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91
+SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099
+SHA256 (rust/crates/windows-threading-0.1.0.crate) = b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6
+SIZE (rust/crates/windows-threading-0.1.0.crate) = 9085
SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443
SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c
+SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446
SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3
+SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973
SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11
+SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056
SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d
+SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450
SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373
SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba
+SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585
SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3
SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434
SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936
SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
+SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
SHA256 (rust/crates/winit-0.30.12.crate) = c66d4b9ed69c4009f6321f762d6e61ad8a2389cd431b97cb1e146812e9e6c732
SIZE (rust/crates/winit-0.30.12.crate) = 604631
-SHA256 (rust/crates/winnow-0.7.9.crate) = d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3
-SIZE (rust/crates/winnow-0.7.9.crate) = 174763
+SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf
+SIZE (rust/crates/winnow-0.7.13.crate) = 174454
SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
SIZE (rust/crates/winreg-0.50.0.crate) = 29703
SHA256 (rust/crates/winreg-0.52.0.crate) = a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5
@@ -1765,16 +1843,14 @@ SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e
SIZE (rust/crates/winsafe-0.0.19.crate) = 492820
SHA256 (rust/crates/winx-0.36.4.crate) = 3f3fd376f71958b862e7afb20cfe5a22830e1963462f3a17f49d82a6c1d1f42d
SIZE (rust/crates/winx-0.36.4.crate) = 13838
-SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
-SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
-SHA256 (rust/crates/wit-parser-0.221.3.crate) = 896112579ed56b4a538b07a3d16e562d101ff6265c46b515ce0c701eef16b2ac
-SIZE (rust/crates/wit-parser-0.221.3.crate) = 142585
+SHA256 (rust/crates/wit-bindgen-0.45.1.crate) = 5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36
+SIZE (rust/crates/wit-bindgen-0.45.1.crate) = 60395
+SHA256 (rust/crates/wit-parser-0.236.1.crate) = 16e4833a20cd6e85d6abfea0e63a399472d6f88c6262957c17f546879a80ba15
+SIZE (rust/crates/wit-parser-0.236.1.crate) = 153557
SHA256 (rust/crates/witx-0.9.1.crate) = e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b
SIZE (rust/crates/witx-0.9.1.crate) = 45928
-SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936
-SIZE (rust/crates/write16-1.0.0.crate) = 7218
-SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51
-SIZE (rust/crates/writeable-0.5.5.crate) = 22354
+SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
+SIZE (rust/crates/writeable-0.6.1.crate) = 24068
SHA256 (rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed
SIZE (rust/crates/wyz-0.5.1.crate) = 18790
SHA256 (rust/crates/x11-clipboard-0.7.1.crate) = 980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464
@@ -1783,16 +1859,16 @@ SHA256 (rust/crates/x11-dl-2.21.0.crate) = 38735924fedd5314a6e548792904ed8c6de66
SIZE (rust/crates/x11-dl-2.21.0.crate) = 66823
SHA256 (rust/crates/x11rb-0.10.1.crate) = 592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507
SIZE (rust/crates/x11rb-0.10.1.crate) = 207678
-SHA256 (rust/crates/x11rb-0.13.1.crate) = 5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12
-SIZE (rust/crates/x11rb-0.13.1.crate) = 223916
+SHA256 (rust/crates/x11rb-0.13.2.crate) = 9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414
+SIZE (rust/crates/x11rb-0.13.2.crate) = 220549
SHA256 (rust/crates/x11rb-protocol-0.10.0.crate) = 56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67
SIZE (rust/crates/x11rb-protocol-0.10.0.crate) = 419025
-SHA256 (rust/crates/x11rb-protocol-0.13.1.crate) = ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d
-SIZE (rust/crates/x11rb-protocol-0.13.1.crate) = 508522
-SHA256 (rust/crates/xattr-1.5.0.crate) = 0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e
-SIZE (rust/crates/xattr-1.5.0.crate) = 14694
-SHA256 (rust/crates/xcursor-0.3.8.crate) = 0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61
-SIZE (rust/crates/xcursor-0.3.8.crate) = 7191
+SHA256 (rust/crates/x11rb-protocol-0.13.2.crate) = ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd
+SIZE (rust/crates/x11rb-protocol-0.13.2.crate) = 514069
+SHA256 (rust/crates/xattr-1.5.1.crate) = af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909
+SIZE (rust/crates/xattr-1.5.1.crate) = 14565
+SHA256 (rust/crates/xcursor-0.3.10.crate) = bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b
+SIZE (rust/crates/xcursor-0.3.10.crate) = 7768
SHA256 (rust/crates/xdg-2.5.2.crate) = 213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546
SIZE (rust/crates/xdg-2.5.2.crate) = 14394
SHA256 (rust/crates/xi-unicode-0.3.0.crate) = a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a
@@ -1801,40 +1877,42 @@ SHA256 (rust/crates/xkbcommon-dl-0.4.2.crate) = d039de8032a9a8856a6be89cea3e5d12
SIZE (rust/crates/xkbcommon-dl-0.4.2.crate) = 5879
SHA256 (rust/crates/xkeysym-0.2.1.crate) = b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56
SIZE (rust/crates/xkeysym-0.2.1.crate) = 103129
-SHA256 (rust/crates/xml-rs-0.8.26.crate) = a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda
-SIZE (rust/crates/xml-rs-0.8.26.crate) = 55115
+SHA256 (rust/crates/xml-rs-0.8.27.crate) = 6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7
+SIZE (rust/crates/xml-rs-0.8.27.crate) = 55258
SHA256 (rust/crates/xmlparser-0.13.6.crate) = 66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4
SIZE (rust/crates/xmlparser-0.13.6.crate) = 26718
SHA256 (rust/crates/yasna-0.5.2.crate) = e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd
SIZE (rust/crates/yasna-0.5.2.crate) = 34859
-SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40
-SIZE (rust/crates/yoke-0.7.5.crate) = 29673
-SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154
-SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525
-SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb
-SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714
-SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef
-SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671
+SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc
+SIZE (rust/crates/yoke-0.8.0.crate) = 28726
+SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6
+SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521
+SHA256 (rust/crates/zerocopy-0.8.27.crate) = 0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c
+SIZE (rust/crates/zerocopy-0.8.27.crate) = 252663
+SHA256 (rust/crates/zerocopy-derive-0.8.27.crate) = 88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831
+SIZE (rust/crates/zerocopy-derive-0.8.27.crate) = 89827
SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305
SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde
SIZE (rust/crates/zeroize-1.8.1.crate) = 20029
-SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079
-SIZE (rust/crates/zerovec-0.10.4.crate) = 126398
-SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6
-SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438
+SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595
+SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423
+SHA256 (rust/crates/zerovec-0.11.4.crate) = e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b
+SIZE (rust/crates/zerovec-0.11.4.crate) = 125080
+SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
+SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
SHA256 (rust/crates/zstd-0.13.3.crate) = e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a
SIZE (rust/crates/zstd-0.13.3.crate) = 30514
SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d
SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350
-SHA256 (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237
-SIZE (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = 774847
+SHA256 (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748
+SIZE (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 775620
SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a
SIZE (rust/crates/zune-core-0.4.12.crate) = 17355
-SHA256 (rust/crates/zune-jpeg-0.4.14.crate) = 99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028
-SIZE (rust/crates/zune-jpeg-0.4.14.crate) = 63388
+SHA256 (rust/crates/zune-jpeg-0.4.21.crate) = 29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713
+SIZE (rust/crates/zune-jpeg-0.4.21.crate) = 68268
SHA256 (amethyst-specs-4e2da1df29ee840baa9b936593c45592b7c9ae27_GH0.tar.gz) = 0f7a525f61a575d212ecab1860af9166b6453a5ad5f44c5c7bcdcd4a353f6ff9
SIZE (amethyst-specs-4e2da1df29ee840baa9b936593c45592b7c9ae27_GH0.tar.gz) = 142942
SHA256 (veloren-auth-ae0e16783a9f9041951296885f082308e155db79_GL0.tar.gz) = 57381d975997e4a0b81e33a7658f87b5b3153097e82adfbf34fd8e47006f2056
@@ -1847,5 +1925,5 @@ SHA256 (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 43
SIZE (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 808402
SHA256 (DaforLynx-kira-v0.10.7-with-config_GH0.tar.gz) = ffc38b7c73cb6419d02a21a3905cd0b00b3a544711230c5b11ef77301b7b9bb2
SIZE (DaforLynx-kira-v0.10.7-with-config_GH0.tar.gz) = 4379268
-SHA256 (veloren-v0.17.0-1018-g15f3d6725e.tar.bz2) = 542c6fa50328f1f9ca118ee54db7c3f34d49d00d65ed2d190d03d6576af23426
-SIZE (veloren-v0.17.0-1018-g15f3d6725e.tar.bz2) = 340008848
+SHA256 (veloren-v0.17.0-1107-g188d737f06.tar.bz2) = 576638f69884ab00cd491804ae5c13f297baee7b10a6c43fec82caffbed48534
+SIZE (veloren-v0.17.0-1107-g188d737f06.tar.bz2) = 341670101
diff --git a/games/veloren-weekly/files/patch-gilrs b/games/veloren-weekly/files/patch-gilrs
index 5ff7ffda430e..bcba8722d178 100644
--- a/games/veloren-weekly/files/patch-gilrs
+++ b/games/veloren-weekly/files/patch-gilrs
@@ -23,9 +23,9 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
| | help: a similar name exists in the module: `event`
| no `epoll` in `sys`
---- Cargo.lock.orig 2025-08-14 15:14:34 UTC
+--- Cargo.lock.orig 2025-09-10 09:49:58 UTC
+++ Cargo.lock
-@@ -2564,9 +2564,9 @@ dependencies = [
+@@ -2709,9 +2709,9 @@ dependencies = [
[[package]]
name = "gilrs"
@@ -37,7 +37,7 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
dependencies = [
"fnv",
"gilrs-core",
-@@ -2578,24 +2578,23 @@ dependencies = [
+@@ -2723,24 +2723,23 @@ dependencies = [
[[package]]
name = "gilrs-core"
@@ -47,8 +47,8 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
-checksum = "a6d95ae10ce5aa99543a28cf74e41c11f3b9e3c14f0452bbde46024753cd683e"
+checksum = "5ccc99e9b8d63ffcaa334c4babfa31f46e156618a11f63efb6e8e6bcb37b830d"
dependencies = [
-- "core-foundation 0.10.0",
-- "inotify 0.11.0",
+- "core-foundation 0.10.1",
+- "inotify",
+ "core-foundation 0.9.4",
"io-kit-sys",
"js-sys",
@@ -62,12 +62,12 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
"vec_map",
"wasm-bindgen",
"web-sys",
-- "windows 0.61.1",
+- "windows 0.61.3",
+ "windows 0.48.0",
]
[[package]]
-@@ -3414,9 +3413,9 @@
+@@ -3525,9 +3524,9 @@ dependencies = [
[[package]]
name = "io-kit-sys"
@@ -79,87 +79,23 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
dependencies = [
"core-foundation-sys",
"mach2",
-@@ -4205,6 +4204,17 @@ dependencies = [
- "memoffset 0.6.5",
- ]
+@@ -4317,13 +4316,12 @@ dependencies = [
-+[[package]]
-+name = "nix"
+ [[package]]
+ name = "nix"
+-version = "0.29.0"
+version = "0.26.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
-+dependencies = [
+ dependencies = [
+- "bitflags 2.9.4",
+ "bitflags 1.3.2",
-+ "cfg-if 1.0.0",
-+ "libc",
-+]
-+
- [[package]]
- name = "nix"
- version = "0.29.0"
-@@ -9218,28 +9228,6 @@ dependencies = [
- "windows-targets 0.52.6",
- ]
-
--[[package]]
--name = "windows"
--version = "0.61.1"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419"
--dependencies = [
-- "windows-collections",
-- "windows-core 0.61.0",
-- "windows-future",
-- "windows-link",
-- "windows-numerics",
--]
--
--[[package]]
--name = "windows-collections"
--version = "0.2.0"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
--dependencies = [
-- "windows-core 0.61.0",
--]
--
- [[package]]
- name = "windows-core"
- version = "0.54.0"
-@@ -9276,16 +9264,6 @@ dependencies = [
- "windows-strings 0.4.0",
+ "cfg-if 1.0.3",
+- "cfg_aliases",
+ "libc",
]
--[[package]]
--name = "windows-future"
--version = "0.2.0"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32"
--dependencies = [
-- "windows-core 0.61.0",
-- "windows-link",
--]
--
- [[package]]
- name = "windows-implement"
- version = "0.58.0"
-@@ -9336,16 +9314,6 @@ version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
-
--[[package]]
--name = "windows-numerics"
--version = "0.2.0"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
--dependencies = [
-- "windows-core 0.61.0",
-- "windows-link",
--]
--
- [[package]]
- name = "windows-result"
- version = "0.1.2"
--- cargo-crates/gilrs-0.10.2/examples/ev.rs.orig 1970-01-01 00:00:00 UTC
+++ cargo-crates/gilrs-0.10.2/examples/ev.rs
@@ -9,6 +9,8 @@ use std::process;