git: dee1b55b78b6 - main - www/sqlpage: Update to 0.21.0

From: Palle Girgensohn <girgen_at_FreeBSD.org>
Date: Thu, 23 May 2024 06:08:29 UTC
The branch main has been updated by girgen:

URL: https://cgit.FreeBSD.org/ports/commit/?id=dee1b55b78b6520389e754fc5419bd86571a50dc

commit dee1b55b78b6520389e754fc5419bd86571a50dc
Author:     Palle Girgensohn <girgen@FreeBSD.org>
AuthorDate: 2024-05-22 06:55:52 +0000
Commit:     Palle Girgensohn <girgen@FreeBSD.org>
CommitDate: 2024-05-23 06:08:24 +0000

    www/sqlpage: Update to 0.21.0
    
    Release notes:  https://github.com/lovasoa/SQLpage/releases/tag/v0.21.0
---
 www/sqlpage/Makefile        |   9 +--
 www/sqlpage/Makefile.crates |  59 ++++++++++----------
 www/sqlpage/distinfo        | 132 +++++++++++++++++++++++---------------------
 3 files changed, 103 insertions(+), 97 deletions(-)

diff --git a/www/sqlpage/Makefile b/www/sqlpage/Makefile
index 8b043180f891..213bb34f72c7 100644
--- a/www/sqlpage/Makefile
+++ b/www/sqlpage/Makefile
@@ -1,9 +1,6 @@
-# FATAL: Makefile: order must be PORTNAME/PORTVERSION/DISTVERSIONPREFIX/DISTVERSION/DISTVERSIONSUFFIX/PORTREVISION/PORTEPOCH/CATEGORIES/MASTER_SITES/MASTER_SITE_SUBDIR/PROJECTHOST/PKGNAMEPREFIX/PKGNAMESUFFIX/DISTNAME/EXTRACT_SUFX/DISTFILES(_\w+)?/DIST_SUBDIR/EXTRACT_ONLY.
-
 PORTNAME=	sqlpage
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.20.5
-PORTREVISION=	1
+DISTVERSION=	0.21.0
 CATEGORIES=	www databases
 MASTER_SITES=	https://cdn.jsdelivr.net/npm/:npm
 DISTFILES=	${NPM_DISTFILES}
@@ -27,12 +24,12 @@ GH_PROJECT=	SQLpage
 USERS=		sqlpage
 GROUPS=		sqlpage
 
-NPM_DISTFILES=	apexcharts@3.47.0/dist/apexcharts.min.js:npm \
+NPM_DISTFILES=	apexcharts@3.49.1/dist/apexcharts.min.js:npm \
 		@tabler/core@1.0.0-beta20/dist/css/tabler.min.css:npm \
 		@tabler/core@1.0.0-beta20/dist/css/tabler-vendors.min.css:npm \
 		@tabler/core@1.0.0-beta20/dist/js/tabler.min.js:npm \
 		list.js-fixed@2.3.4/dist/list.min.js:npm \
-		@tabler/icons-sprite@3.2.0/dist/tabler-sprite.svg:npm \
+		@tabler/icons-sprite@3.4.0/dist/tabler-sprite.svg:npm \
 		tom-select@2.3.1/dist/js/tom-select.popular.min.js:npm
 
 post-extract:
diff --git a/www/sqlpage/Makefile.crates b/www/sqlpage/Makefile.crates
index aa8dcc64a568..81a91ebfb924 100644
--- a/www/sqlpage/Makefile.crates
+++ b/www/sqlpage/Makefile.crates
@@ -1,15 +1,15 @@
 CARGO_CRATES=	actix-codec-0.5.2 \
-		actix-http-3.6.0 \
+		actix-http-3.7.0 \
 		actix-macros-0.2.4 \
 		actix-multipart-0.6.1 \
 		actix-multipart-derive-0.6.1 \
-		actix-router-0.5.2 \
+		actix-router-0.5.3 \
 		actix-rt-2.9.0 \
 		actix-server-2.3.0 \
 		actix-service-2.0.2 \
-		actix-tls-3.3.0 \
+		actix-tls-3.4.0 \
 		actix-utils-3.0.1 \
-		actix-web-4.5.1 \
+		actix-web-4.6.0 \
 		actix-web-codegen-4.2.2 \
 		actix-web-httpauth-0.8.1 \
 		addr2line-0.21.0 \
@@ -27,12 +27,12 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		anstyle-parse-0.2.4 \
 		anstyle-query-1.0.3 \
 		anstyle-wincon-3.0.3 \
-		anyhow-1.0.83 \
+		anyhow-1.0.86 \
 		argon2-0.5.3 \
 		asn1-rs-0.5.2 \
 		asn1-rs-derive-0.4.0 \
 		asn1-rs-impl-0.1.0 \
-		async-channel-2.2.1 \
+		async-channel-2.3.1 \
 		async-http-codec-0.8.0 \
 		async-io-2.3.2 \
 		async-lock-3.3.0 \
@@ -46,7 +46,7 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		atoi-2.0.0 \
 		atomic-waker-1.1.2 \
 		autocfg-1.3.0 \
-		awc-3.4.0 \
+		awc-3.5.0 \
 		backtrace-0.3.71 \
 		base64-0.13.1 \
 		base64-0.21.7 \
@@ -58,12 +58,14 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		block-buffer-0.10.4 \
 		blocking-1.6.0 \
 		brotli-3.5.0 \
+		brotli-6.0.0 \
 		brotli-decompressor-2.5.1 \
+		brotli-decompressor-4.0.0 \
 		bumpalo-3.16.0 \
 		byteorder-1.5.0 \
 		bytes-1.6.0 \
 		bytestring-1.3.1 \
-		cc-1.0.97 \
+		cc-1.0.98 \
 		cfg-if-1.0.0 \
 		chrono-0.4.38 \
 		colorchoice-1.0.1 \
@@ -87,9 +89,9 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		crypto-common-0.1.6 \
 		csv-async-1.3.0 \
 		csv-core-0.1.11 \
-		darling-0.20.8 \
-		darling_core-0.20.8 \
-		darling_macro-0.20.8 \
+		darling-0.20.9 \
+		darling_core-0.20.9 \
+		darling_macro-0.20.9 \
 		dary_heap-0.3.6 \
 		data-encoding-2.6.0 \
 		der-0.7.9 \
@@ -102,7 +104,7 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		displaydoc-0.2.4 \
 		dlv-list-0.5.2 \
 		dotenvy-0.15.7 \
-		either-1.11.0 \
+		either-1.12.0 \
 		encoding_rs-0.8.34 \
 		env_filter-0.1.0 \
 		env_logger-0.11.3 \
@@ -140,7 +142,7 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		handlebars-5.1.2 \
 		hashbrown-0.13.2 \
 		hashbrown-0.14.5 \
-		hashlink-0.9.0 \
+		hashlink-0.9.1 \
 		heck-0.5.0 \
 		hermit-abi-0.3.9 \
 		hex-0.4.3 \
@@ -172,14 +174,14 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		lambda_runtime_api_client-0.7.0 \
 		language-tags-0.3.2 \
 		lazy_static-1.4.0 \
-		libc-0.2.154 \
+		libc-0.2.155 \
 		libflate-2.1.0 \
 		libflate_lz77-2.1.0 \
 		libm-0.2.8 \
 		libredox-0.1.3 \
 		libsqlite3-sys-0.28.0 \
 		linked-hash-map-0.5.6 \
-		linux-raw-sys-0.4.13 \
+		linux-raw-sys-0.4.14 \
 		local-channel-0.1.5 \
 		local-waker-0.1.4 \
 		lock_api-0.4.12 \
@@ -190,7 +192,7 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		mime-0.3.17 \
 		mime_guess-2.0.4 \
 		minimal-lexical-0.2.1 \
-		miniz_oxide-0.7.2 \
+		miniz_oxide-0.7.3 \
 		mio-0.8.11 \
 		nom-7.1.3 \
 		num-bigint-0.4.5 \
@@ -223,7 +225,7 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		pin-project-internal-1.1.5 \
 		pin-project-lite-0.2.14 \
 		pin-utils-0.1.0 \
-		piper-0.2.1 \
+		piper-0.2.2 \
 		pkcs1-0.7.5 \
 		pkcs8-0.10.2 \
 		pkg-config-0.3.30 \
@@ -241,6 +243,7 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		redox_users-0.4.5 \
 		regex-1.10.4 \
 		regex-automata-0.4.6 \
+		regex-lite-0.1.5 \
 		regex-syntax-0.8.3 \
 		ring-0.17.8 \
 		rle-decode-fast-1.0.3 \
@@ -255,15 +258,15 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		rustls-acme-0.9.2 \
 		rustls-pemfile-2.1.2 \
 		rustls-pki-types-1.7.0 \
-		rustls-webpki-0.102.3 \
+		rustls-webpki-0.102.4 \
 		ryu-1.0.18 \
 		scopeguard-1.2.0 \
 		semver-1.0.23 \
-		serde-1.0.201 \
-		serde_derive-1.0.201 \
+		serde-1.0.202 \
+		serde_derive-1.0.202 \
 		serde_json-1.0.117 \
 		serde_plain-1.0.2 \
-		serde_spanned-0.6.5 \
+		serde_spanned-0.6.6 \
 		serde_urlencoded-0.7.1 \
 		sha1-0.10.6 \
 		sha2-0.10.8 \
@@ -283,14 +286,14 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		sqlx-oldapi-0.6.22 \
 		sqlx-rt-oldapi-0.6.22 \
 		stringprep-0.1.4 \
-		strsim-0.10.0 \
+		strsim-0.11.1 \
 		subtle-2.5.0 \
 		syn-1.0.109 \
-		syn-2.0.61 \
+		syn-2.0.64 \
 		synstructure-0.12.6 \
 		tempfile-3.10.1 \
-		thiserror-1.0.60 \
-		thiserror-impl-1.0.60 \
+		thiserror-1.0.61 \
+		thiserror-impl-1.0.61 \
 		time-0.3.36 \
 		time-core-0.1.2 \
 		time-macros-0.2.18 \
@@ -302,9 +305,9 @@ CARGO_CRATES=	actix-codec-0.5.2 \
 		tokio-rustls-0.25.0 \
 		tokio-stream-0.1.15 \
 		tokio-util-0.7.11 \
-		toml-0.8.12 \
-		toml_datetime-0.6.5 \
-		toml_edit-0.22.12 \
+		toml-0.8.13 \
+		toml_datetime-0.6.6 \
+		toml_edit-0.22.13 \
 		tower-0.4.13 \
 		tower-layer-0.3.2 \
 		tower-service-0.3.2 \
diff --git a/www/sqlpage/distinfo b/www/sqlpage/distinfo
index 573dab1aad8f..77ade0e8bf18 100644
--- a/www/sqlpage/distinfo
+++ b/www/sqlpage/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1715336106
-SHA256 (apexcharts@3.47.0/dist/apexcharts.min.js) = 4ad143755f8347dc88b5b0970064cae8451cbbad77377bccd22e6782b619973e
-SIZE (apexcharts@3.47.0/dist/apexcharts.min.js) = 525068
+TIMESTAMP = 1716328907
+SHA256 (apexcharts@3.49.1/dist/apexcharts.min.js) = ef802e18b2444eef4f88f43af5dfe0c43dd6cb78f5d2e7600bb15060f4238725
+SIZE (apexcharts@3.49.1/dist/apexcharts.min.js) = 533680
 SHA256 (@tabler/core@1.0.0-beta20/dist/css/tabler.min.css) = 952de72b130c6622884491bb5205289ce1d8baf1e05b979c9048ef1cc6316fd4
 SIZE (@tabler/core@1.0.0-beta20/dist/css/tabler.min.css) = 548265
 SHA256 (@tabler/core@1.0.0-beta20/dist/css/tabler-vendors.min.css) = 01aec050e6b3ea124b894cd04ad653cb654f399ca0d15892a36302ce90d4d6d6
@@ -9,34 +9,34 @@ SHA256 (@tabler/core@1.0.0-beta20/dist/js/tabler.min.js) = ca03b9393454b58c430e4
 SIZE (@tabler/core@1.0.0-beta20/dist/js/tabler.min.js) = 136512
 SHA256 (list.js-fixed@2.3.4/dist/list.min.js) = b18cbba8d256ed14ee68d0348eae98aed7ece7bca962b22d6777fc4fb92a7cf3
 SIZE (list.js-fixed@2.3.4/dist/list.min.js) = 18786
-SHA256 (@tabler/icons-sprite@3.2.0/dist/tabler-sprite.svg) = ff911919f63675913dc7cf9010b812845d84900bba7c435d9533bc4a6de1c8d2
-SIZE (@tabler/icons-sprite@3.2.0/dist/tabler-sprite.svg) = 2358948
+SHA256 (@tabler/icons-sprite@3.4.0/dist/tabler-sprite.svg) = 898c699577c88553413a610451137bff9dc0f0c8b485609b596a3dd81ce77140
+SIZE (@tabler/icons-sprite@3.4.0/dist/tabler-sprite.svg) = 2377296
 SHA256 (tom-select@2.3.1/dist/js/tom-select.popular.min.js) = e7535c74833c1ac7951459a0f265160f17e18cb080fa7f24c3f3a3ca8fba1e39
 SIZE (tom-select@2.3.1/dist/js/tom-select.popular.min.js) = 44002
 SHA256 (rust/crates/actix-codec-0.5.2.crate) = 5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a
 SIZE (rust/crates/actix-codec-0.5.2.crate) = 14085
-SHA256 (rust/crates/actix-http-3.6.0.crate) = d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743
-SIZE (rust/crates/actix-http-3.6.0.crate) = 152432
+SHA256 (rust/crates/actix-http-3.7.0.crate) = 4eb9843d84c775696c37d9a418bbb01b932629d01870722c0f13eb3f95e2536d
+SIZE (rust/crates/actix-http-3.7.0.crate) = 161589
 SHA256 (rust/crates/actix-macros-0.2.4.crate) = e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb
 SIZE (rust/crates/actix-macros-0.2.4.crate) = 8380
 SHA256 (rust/crates/actix-multipart-0.6.1.crate) = 3b960e2aea75f49c8f069108063d12a48d329fc8b60b786dfc7552a9d5918d2d
 SIZE (rust/crates/actix-multipart-0.6.1.crate) = 24535
 SHA256 (rust/crates/actix-multipart-derive-0.6.1.crate) = 0a0a77f836d869f700e5b47ac7c3c8b9c8bc82e4aec861954c6198abee3ebd4d
 SIZE (rust/crates/actix-multipart-derive-0.6.1.crate) = 9348
-SHA256 (rust/crates/actix-router-0.5.2.crate) = d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511
-SIZE (rust/crates/actix-router-0.5.2.crate) = 32386
+SHA256 (rust/crates/actix-router-0.5.3.crate) = 13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8
+SIZE (rust/crates/actix-router-0.5.3.crate) = 33145
 SHA256 (rust/crates/actix-rt-2.9.0.crate) = 28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d
 SIZE (rust/crates/actix-rt-2.9.0.crate) = 22096
 SHA256 (rust/crates/actix-server-2.3.0.crate) = 3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4
 SIZE (rust/crates/actix-server-2.3.0.crate) = 38806
 SHA256 (rust/crates/actix-service-2.0.2.crate) = 3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a
 SIZE (rust/crates/actix-service-2.0.2.crate) = 25293
-SHA256 (rust/crates/actix-tls-3.3.0.crate) = d4cce60a2f2b477bc72e5cde0af1812a6e82d8fd85b5570a5dcf2a5bf2c5be5f
-SIZE (rust/crates/actix-tls-3.3.0.crate) = 38498
+SHA256 (rust/crates/actix-tls-3.4.0.crate) = ac453898d866cdbecdbc2334fe1738c747b4eba14a677261f2b768ba05329389
+SIZE (rust/crates/actix-tls-3.4.0.crate) = 44317
 SHA256 (rust/crates/actix-utils-3.0.1.crate) = 88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8
 SIZE (rust/crates/actix-utils-3.0.1.crate) = 10096
-SHA256 (rust/crates/actix-web-4.5.1.crate) = 43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984
-SIZE (rust/crates/actix-web-4.5.1.crate) = 231024
+SHA256 (rust/crates/actix-web-4.6.0.crate) = b1cf67dadb19d7c95e5a299e2dda24193b89d5d4f33a3b9800888ede9e19aa32
+SIZE (rust/crates/actix-web-4.6.0.crate) = 232525
 SHA256 (rust/crates/actix-web-codegen-4.2.2.crate) = eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5
 SIZE (rust/crates/actix-web-codegen-4.2.2.crate) = 17159
 SHA256 (rust/crates/actix-web-httpauth-0.8.1.crate) = 1d613edf08a42ccc6864c941d30fe14e1b676a77d16f1dbadc1174d065a0a775
@@ -71,8 +71,8 @@ SHA256 (rust/crates/anstyle-query-1.0.3.crate) = a64c907d4e79225ac72e2a354c9ce84
 SIZE (rust/crates/anstyle-query-1.0.3.crate) = 9742
 SHA256 (rust/crates/anstyle-wincon-3.0.3.crate) = 61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19
 SIZE (rust/crates/anstyle-wincon-3.0.3.crate) = 12179
-SHA256 (rust/crates/anyhow-1.0.83.crate) = 25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3
-SIZE (rust/crates/anyhow-1.0.83.crate) = 45650
+SHA256 (rust/crates/anyhow-1.0.86.crate) = b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da
+SIZE (rust/crates/anyhow-1.0.86.crate) = 46741
 SHA256 (rust/crates/argon2-0.5.3.crate) = 3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072
 SIZE (rust/crates/argon2-0.5.3.crate) = 28795
 SHA256 (rust/crates/asn1-rs-0.5.2.crate) = 7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0
@@ -81,8 +81,8 @@ SHA256 (rust/crates/asn1-rs-derive-0.4.0.crate) = 726535892e8eae7e70657b4c8ea93d
 SIZE (rust/crates/asn1-rs-derive-0.4.0.crate) = 5220
 SHA256 (rust/crates/asn1-rs-impl-0.1.0.crate) = 2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed
 SIZE (rust/crates/asn1-rs-impl-0.1.0.crate) = 2256
-SHA256 (rust/crates/async-channel-2.2.1.crate) = 136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928
-SIZE (rust/crates/async-channel-2.2.1.crate) = 14326
+SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a
+SIZE (rust/crates/async-channel-2.3.1.crate) = 14576
 SHA256 (rust/crates/async-http-codec-0.8.0.crate) = 096146020b08dbc4587685b0730a7ba905625af13c65f8028035cdfd69573c91
 SIZE (rust/crates/async-http-codec-0.8.0.crate) = 26162
 SHA256 (rust/crates/async-io-2.3.2.crate) = dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884
@@ -109,8 +109,8 @@ SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d
 SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
 SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
 SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
-SHA256 (rust/crates/awc-3.4.0.crate) = 68c09cc97310b926f01621faee652f3d1b0962545a3cec6c9ac07def9ea36c2c
-SIZE (rust/crates/awc-3.4.0.crate) = 75016
+SHA256 (rust/crates/awc-3.5.0.crate) = fe6b67e44fb95d1dc9467e3930383e115f9b4ed60ca689db41409284e967a12d
+SIZE (rust/crates/awc-3.5.0.crate) = 76008
 SHA256 (rust/crates/backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
 SIZE (rust/crates/backtrace-0.3.71.crate) = 86553
 SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8
@@ -133,8 +133,12 @@ SHA256 (rust/crates/blocking-1.6.0.crate) = 495f7104e962b7356f0aeb34247aca1fe7d2
 SIZE (rust/crates/blocking-1.6.0.crate) = 17696
 SHA256 (rust/crates/brotli-3.5.0.crate) = d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391
 SIZE (rust/crates/brotli-3.5.0.crate) = 1390231
+SHA256 (rust/crates/brotli-6.0.0.crate) = 74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b
+SIZE (rust/crates/brotli-6.0.0.crate) = 1359183
 SHA256 (rust/crates/brotli-decompressor-2.5.1.crate) = 4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f
 SIZE (rust/crates/brotli-decompressor-2.5.1.crate) = 193087
+SHA256 (rust/crates/brotli-decompressor-4.0.0.crate) = e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76
+SIZE (rust/crates/brotli-decompressor-4.0.0.crate) = 193192
 SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
 SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
 SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
@@ -143,8 +147,8 @@ SHA256 (rust/crates/bytes-1.6.0.crate) = 514de17de45fdb8dc022b1a7975556c53c86f9f
 SIZE (rust/crates/bytes-1.6.0.crate) = 60605
 SHA256 (rust/crates/bytestring-1.3.1.crate) = 74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72
 SIZE (rust/crates/bytestring-1.3.1.crate) = 9142
-SHA256 (rust/crates/cc-1.0.97.crate) = 099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4
-SIZE (rust/crates/cc-1.0.97.crate) = 76951
+SHA256 (rust/crates/cc-1.0.98.crate) = 41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f
+SIZE (rust/crates/cc-1.0.98.crate) = 76780
 SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
 SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
 SHA256 (rust/crates/chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
@@ -191,12 +195,12 @@ SHA256 (rust/crates/csv-async-1.3.0.crate) = d37fe5b0d07f4a8260ce1e9a81413e88f45
 SIZE (rust/crates/csv-async-1.3.0.crate) = 87174
 SHA256 (rust/crates/csv-core-0.1.11.crate) = 5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70
 SIZE (rust/crates/csv-core-0.1.11.crate) = 25852
-SHA256 (rust/crates/darling-0.20.8.crate) = 54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391
-SIZE (rust/crates/darling-0.20.8.crate) = 31234
-SHA256 (rust/crates/darling_core-0.20.8.crate) = 9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f
-SIZE (rust/crates/darling_core-0.20.8.crate) = 64442
-SHA256 (rust/crates/darling_macro-0.20.8.crate) = a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f
-SIZE (rust/crates/darling_macro-0.20.8.crate) = 1856
+SHA256 (rust/crates/darling-0.20.9.crate) = 83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1
+SIZE (rust/crates/darling-0.20.9.crate) = 31777
+SHA256 (rust/crates/darling_core-0.20.9.crate) = 622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120
+SIZE (rust/crates/darling_core-0.20.9.crate) = 65014
+SHA256 (rust/crates/darling_macro-0.20.9.crate) = 733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178
+SIZE (rust/crates/darling_macro-0.20.9.crate) = 1875
 SHA256 (rust/crates/dary_heap-0.3.6.crate) = 7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca
 SIZE (rust/crates/dary_heap-0.3.6.crate) = 23683
 SHA256 (rust/crates/data-encoding-2.6.0.crate) = e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2
@@ -221,8 +225,8 @@ SHA256 (rust/crates/dlv-list-0.5.2.crate) = 442039f5147480ba31067cb00ada1adae689
 SIZE (rust/crates/dlv-list-0.5.2.crate) = 22373
 SHA256 (rust/crates/dotenvy-0.15.7.crate) = 1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b
 SIZE (rust/crates/dotenvy-0.15.7.crate) = 20293
-SHA256 (rust/crates/either-1.11.0.crate) = a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2
-SIZE (rust/crates/either-1.11.0.crate) = 18973
+SHA256 (rust/crates/either-1.12.0.crate) = 3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b
+SIZE (rust/crates/either-1.12.0.crate) = 18974
 SHA256 (rust/crates/encoding_rs-0.8.34.crate) = b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59
 SIZE (rust/crates/encoding_rs-0.8.34.crate) = 1378166
 SHA256 (rust/crates/env_filter-0.1.0.crate) = a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea
@@ -297,8 +301,8 @@ 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/hashlink-0.9.0.crate) = 692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee
-SIZE (rust/crates/hashlink-0.9.0.crate) = 26390
+SHA256 (rust/crates/hashlink-0.9.1.crate) = 6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af
+SIZE (rust/crates/hashlink-0.9.1.crate) = 28928
 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
 SIZE (rust/crates/heck-0.5.0.crate) = 11517
 SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
@@ -361,8 +365,8 @@ SHA256 (rust/crates/language-tags-0.3.2.crate) = d4345964bb142484797b161f473a503
 SIZE (rust/crates/language-tags-0.3.2.crate) = 53420
 SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
 SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
-SHA256 (rust/crates/libc-0.2.154.crate) = ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346
-SIZE (rust/crates/libc-0.2.154.crate) = 743304
+SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
+SIZE (rust/crates/libc-0.2.155.crate) = 743539
 SHA256 (rust/crates/libflate-2.1.0.crate) = 45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e
 SIZE (rust/crates/libflate-2.1.0.crate) = 43366
 SHA256 (rust/crates/libflate_lz77-2.1.0.crate) = e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d
@@ -375,8 +379,8 @@ SHA256 (rust/crates/libsqlite3-sys-0.28.0.crate) = 0c10584274047cb335c23d3e61bce
 SIZE (rust/crates/libsqlite3-sys-0.28.0.crate) = 4975624
 SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
 SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
-SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
-SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
+SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89
+SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665
 SHA256 (rust/crates/local-channel-0.1.5.crate) = b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8
 SIZE (rust/crates/local-channel-0.1.5.crate) = 7881
 SHA256 (rust/crates/local-waker-0.1.4.crate) = 4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487
@@ -397,8 +401,8 @@ SHA256 (rust/crates/mime_guess-2.0.4.crate) = 4192263c238a5f0d0c6bfd21f336a313a4
 SIZE (rust/crates/mime_guess-2.0.4.crate) = 26399
 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.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
-SIZE (rust/crates/miniz_oxide-0.7.2.crate) = 55731
+SHA256 (rust/crates/miniz_oxide-0.7.3.crate) = 87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae
+SIZE (rust/crates/miniz_oxide-0.7.3.crate) = 55774
 SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c
 SIZE (rust/crates/mio-0.8.11.crate) = 102983
 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
@@ -463,8 +467,8 @@ SHA256 (rust/crates/pin-project-lite-0.2.14.crate) = bda66fc9667c18cb2758a2ac84d
 SIZE (rust/crates/pin-project-lite-0.2.14.crate) = 28817
 SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
 SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
-SHA256 (rust/crates/piper-0.2.1.crate) = 668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4
-SIZE (rust/crates/piper-0.2.1.crate) = 15878
+SHA256 (rust/crates/piper-0.2.2.crate) = 464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf
+SIZE (rust/crates/piper-0.2.2.crate) = 15897
 SHA256 (rust/crates/pkcs1-0.7.5.crate) = c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f
 SIZE (rust/crates/pkcs1-0.7.5.crate) = 35790
 SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7
@@ -499,6 +503,8 @@ SHA256 (rust/crates/regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c8946
 SIZE (rust/crates/regex-1.10.4.crate) = 253191
 SHA256 (rust/crates/regex-automata-0.4.6.crate) = 86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea
 SIZE (rust/crates/regex-automata-0.4.6.crate) = 617565
+SHA256 (rust/crates/regex-lite-0.1.5.crate) = 30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e
+SIZE (rust/crates/regex-lite-0.1.5.crate) = 95262
 SHA256 (rust/crates/regex-syntax-0.8.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56
 SIZE (rust/crates/regex-syntax-0.8.3.crate) = 347497
 SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d
@@ -527,24 +533,24 @@ SHA256 (rust/crates/rustls-pemfile-2.1.2.crate) = 29993a25686778eb88d4189742cd71
 SIZE (rust/crates/rustls-pemfile-2.1.2.crate) = 25928
 SHA256 (rust/crates/rustls-pki-types-1.7.0.crate) = 976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d
 SIZE (rust/crates/rustls-pki-types-1.7.0.crate) = 29555
-SHA256 (rust/crates/rustls-webpki-0.102.3.crate) = f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf
-SIZE (rust/crates/rustls-webpki-0.102.3.crate) = 197543
+SHA256 (rust/crates/rustls-webpki-0.102.4.crate) = ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e
+SIZE (rust/crates/rustls-webpki-0.102.4.crate) = 200657
 SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
 SIZE (rust/crates/ryu-1.0.18.crate) = 47713
 SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
 SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
 SHA256 (rust/crates/semver-1.0.23.crate) = 61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b
 SIZE (rust/crates/semver-1.0.23.crate) = 30622
-SHA256 (rust/crates/serde-1.0.201.crate) = 780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c
-SIZE (rust/crates/serde-1.0.201.crate) = 77725
-SHA256 (rust/crates/serde_derive-1.0.201.crate) = c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865
-SIZE (rust/crates/serde_derive-1.0.201.crate) = 55865
+SHA256 (rust/crates/serde-1.0.202.crate) = 226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395
+SIZE (rust/crates/serde-1.0.202.crate) = 77722
+SHA256 (rust/crates/serde_derive-1.0.202.crate) = 6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838
+SIZE (rust/crates/serde_derive-1.0.202.crate) = 55867
 SHA256 (rust/crates/serde_json-1.0.117.crate) = 455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3
 SIZE (rust/crates/serde_json-1.0.117.crate) = 146921
 SHA256 (rust/crates/serde_plain-1.0.2.crate) = 9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50
 SIZE (rust/crates/serde_plain-1.0.2.crate) = 11183
-SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
-SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
+SHA256 (rust/crates/serde_spanned-0.6.6.crate) = 79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0
+SIZE (rust/crates/serde_spanned-0.6.6.crate) = 9120
 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
@@ -583,22 +589,22 @@ SHA256 (rust/crates/sqlx-rt-oldapi-0.6.22.crate) = 218f0ab15a62c98c18eb5866c1886
 SIZE (rust/crates/sqlx-rt-oldapi-0.6.22.crate) = 2354
 SHA256 (rust/crates/stringprep-0.1.4.crate) = bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6
 SIZE (rust/crates/stringprep-0.1.4.crate) = 23551
-SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
-SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
 SHA256 (rust/crates/subtle-2.5.0.crate) = 81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc
 SIZE (rust/crates/subtle-2.5.0.crate) = 13909
 SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
 SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.61.crate) = c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9
-SIZE (rust/crates/syn-2.0.61.crate) = 257199
+SHA256 (rust/crates/syn-2.0.64.crate) = 7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f
+SIZE (rust/crates/syn-2.0.64.crate) = 264945
 SHA256 (rust/crates/synstructure-0.12.6.crate) = f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f
 SIZE (rust/crates/synstructure-0.12.6.crate) = 18429
 SHA256 (rust/crates/tempfile-3.10.1.crate) = 85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1
 SIZE (rust/crates/tempfile-3.10.1.crate) = 33653
-SHA256 (rust/crates/thiserror-1.0.60.crate) = 579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18
-SIZE (rust/crates/thiserror-1.0.60.crate) = 21247
-SHA256 (rust/crates/thiserror-impl-1.0.60.crate) = e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524
-SIZE (rust/crates/thiserror-impl-1.0.60.crate) = 15787
+SHA256 (rust/crates/thiserror-1.0.61.crate) = c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709
+SIZE (rust/crates/thiserror-1.0.61.crate) = 21264
+SHA256 (rust/crates/thiserror-impl-1.0.61.crate) = 46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533
+SIZE (rust/crates/thiserror-impl-1.0.61.crate) = 15786
 SHA256 (rust/crates/time-0.3.36.crate) = 5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885
 SIZE (rust/crates/time-0.3.36.crate) = 119805
 SHA256 (rust/crates/time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3
@@ -621,12 +627,12 @@ SHA256 (rust/crates/tokio-stream-0.1.15.crate) = 267ac89e0bec6e691e5813911606935
 SIZE (rust/crates/tokio-stream-0.1.15.crate) = 36284
 SHA256 (rust/crates/tokio-util-0.7.11.crate) = 9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1
 SIZE (rust/crates/tokio-util-0.7.11.crate) = 113421
-SHA256 (rust/crates/toml-0.8.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
-SIZE (rust/crates/toml-0.8.12.crate) = 51145
-SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
-SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
-SHA256 (rust/crates/toml_edit-0.22.12.crate) = d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef
-SIZE (rust/crates/toml_edit-0.22.12.crate) = 104416
+SHA256 (rust/crates/toml-0.8.13.crate) = a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba
+SIZE (rust/crates/toml-0.8.13.crate) = 50517
+SHA256 (rust/crates/toml_datetime-0.6.6.crate) = 4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf
+SIZE (rust/crates/toml_datetime-0.6.6.crate) = 11698
+SHA256 (rust/crates/toml_edit-0.22.13.crate) = c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c
+SIZE (rust/crates/toml_edit-0.22.13.crate) = 103518
 SHA256 (rust/crates/tower-0.4.13.crate) = b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c
 SIZE (rust/crates/tower-0.4.13.crate) = 106906
 SHA256 (rust/crates/tower-layer-0.3.2.crate) = c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0
@@ -757,5 +763,5 @@ SHA256 (rust/crates/zstd-safe-7.1.0.crate) = 1cd99b45c6bc03a018c8b8a86025678c87e
 SIZE (rust/crates/zstd-safe-7.1.0.crate) = 20792
 SHA256 (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa
 SIZE (rust/crates/zstd-sys-2.0.10+zstd.1.5.6.crate) = 749088
-SHA256 (lovasoa-SQLpage-v0.20.5_GH0.tar.gz) = c54dd46d2fd54572c2ad4a0060ae0cd74409944337b645f4914e4b36667aef58
-SIZE (lovasoa-SQLpage-v0.20.5_GH0.tar.gz) = 23749805
+SHA256 (lovasoa-SQLpage-v0.21.0_GH0.tar.gz) = 8b6f829d5894a20119f92049bb92653ac67c92db15413aa4e1eae9adf639729c
+SIZE (lovasoa-SQLpage-v0.21.0_GH0.tar.gz) = 23996097