# Download Package

<details>

<summary>Planned for next version</summary>

* **KQueue**: Removed *setMode()* and *getMode*() to avoid concurrency problems
* Some minor code and documentation changes

</details>

## Current Version 2025.09.15

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F4fRGoP7RsEwoAcrbd7PS%2Fch.k43.util.2025.09.15.zip?alt=media&token=72f7f881-3edc-4400-aff6-13395be14cbc>" %}

* **KQueue:** New class to support named LIFO/LIFO queues
* **K**: added *writeConsole()*, fixed formatting bug in *getTimeISO8601(Calendar)*, added more object types in *isEmpty()*
* Some minor code and documentation changes

#### Version 2025.09.02

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FeHtgHYTZdmvGXN1hLN8K%2Fch.k43.util.2025.09.02.zip?alt=media&token=b2f5433c-2ad5-4c9c-b385-b1730ebbd2a0>" %}

* **KCmdArgParser:** new class to parse and retrieve command line arguments
* **K**: Added *isValidHostName(), readConsole(), isMinimumVersion(),* internal optimization in timer methods
* Some minor code and documentation changes

#### Version 2025.06.05

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FieZ41TKCNPXvHaCbEHrA%2Fch.k43.util.2025.06.05.zip?alt=media&token=dfdb59e9-a587-4cc6-8290-0c3218bc2f24>" %}

* **K**: Added *concat(), clear(), hexToBytes()*
* **KTimer**: Added *getElapsedNanoseconds()*
* Some minor code and documentation changes

#### Version 2025.05.17

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FOPBCuvKzSea851wTHQ2m%2Fch.k43.util.2025.05.17.zip?alt=media&token=0c491c70-8513-47cb-881a-ec3c8ef559ba>" %}

* **KPasswordVault:** New class to securely hash, store and verify passwords
* **KSMTPMailer**: Added *setLocalFQDNHostName()*
* Updated Sample Code
* Some minor code and documentation changes

#### Version 2025.04.26

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FtcBBkTl66fYM8AxNavmZ%2Fch.k43.util.2025.04.26.zip?alt=media&token=4070adeb-d327-422b-8ba4-7bdd467e15d4>" %}

* **K**: Added *repeat(), truncateMiddle(), compressGZIP(), decompressGZIP()*
* Some minor code and documentation changes

#### Version 2025.04.13

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F9HYmCv3j0XNL6T648FEa%2Fch.k43.util.2025.04.13.zip?alt=media&token=049daa6a-37a7-4013-80e8-bac0f21ea489>" %}

* **KHTTPServerThread**: new Class to support HTTP server applications (for web or REST services)
* **K**: Added *getHTTPStatusText()* to return text for a given HTTP status code
* Updated Sample Code
* Some minor code and documentation changes

***

#### Version 2025.03.30

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FGkTgfENKKo6oa35qA0Sf%2Fch.k43.util.2025.03.30.zip?alt=media&token=6bc5ad5b-c4c6-44ff-98c2-4ba32aa53d2c>" %}

* **K**: Enhance *toPEM()* to format certificate chain of public keys and add option to describe objects in comments
* Added sample GraalVM macOS native image executable "GetCurrentVersion" in [Tips / FAQ](https://java-util.k43.ch/examples/tips-faq)
* Some minor code and documentation changes

***

#### Version 2025.03.20

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FD9CoZeXDpTs3zblRZNEo%2Fch.k43.util.2025.03.20.zip?alt=media&token=62bccb4a-cfff-441e-9db6-3b52fac5663a>" %}

* **K**: Added *loadKeyStore()*, *toPEM()*, *generateRSAKeyPair()*, *encodeHTML()* and *decodeHTML()*
* Updated sample code
* Some minor code and documentation changes

#### Version 2025.03.02

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FhvHRfsE7W9wv2BrgF5PD%2Fch.k43.util.2025.03.02.zip?alt=media&token=e7b555b5-ee54-49d7-9de8-78c39998d59d>" %}

* **K:** Added *INSTANCE\_UUID* to identify running application instance
* **KLog**: Added options in *KLog.properties* and application startup parameters (*KLogInclude and KLogExclude)* to include or exclude data from logging
* Some minor code and documentation changes

#### Version 2025.02.26

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FUSEDjbmgydVGxwjousHH%2Fch.k43.util.2025.02.26.zip?alt=media&token=d4cf6d66-2d35-483a-8ac6-c875d38002b3>" %}

* Publish Java code on GitHub as open source
* **K**: Added *getCurrentVersionNumber()*
* Some minor code and documentation changes

#### Version 2025.02.19

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FeWF3AROcoFejUmc8VPCS%2Fch.k43.util.2025.02.19.zip?alt=media&token=9c4ae407-a06e-41b2-9a77-5476b435e36e>" %}

* **K**: Added *getPasswordHash*()
* Added HelloWorld example to test installation with *java -jar ch.k43.util.jar*
* Some minor code and documentation changes

#### Version 2025.02.13

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FxdIOIdzZ9j6QrB51PsVi%2Fch.k43.util.2025.02.13.zip?alt=media&token=cfaafa20-55df-42b6-89eb-614038e02eb1>" %}

* **KTimer**: Added *reset()*
* **K:** Added *saveError()*
* **K**: Added multiple static fields that describe the environment
* Updated [sample code](https://java-util.k43.ch/downloads/sample-code)
* Some minor code and documentation changes

#### Version 2025.01.27

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FAIgBENiYl5RCTQErITT5%2Fch.k43.util.2025.01.27.zip?alt=media&token=0001c695-fe16-49ac-82e6-1fc2b94eefd2>" %}

* **KHTTPClient**: Added *setTimeOutSec()*
* **KLog**: Added command line parameter *KLogPropertyFile* to override name and location of KLog.properties file
* **KLog**: Added command line parameter *KLogLevel* to override logging level (*INFO*, *ERROR*, *DEBUG* or *OFF*)
* Changed locale of generated JavaDoc output to en\_US
* Some minor code and documentation changes

#### Version 2025.01.22

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F58qgK85GnAFHHQ7P6Mo1%2Fch.k43.util.2025.01.22.zip?alt=media&token=7a765c03-e814-470a-9448-fdca93ea2f10>" %}

* **K**: Added *replaceParams()*
* **KHTTPClient**: Treat HTTP return code 200-299 as successful
* **KLog**: Added parameterized logging to all methods, e.g.\
  \&#xNAN;*KLog.error("API call failed - Return code {}", returnCode)*
* Internal code optimization and documentation changes

#### Version 2025.01.19

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FBHCy411d6ussq3Gi1yEA%2Fch.k43.util.2025.01.19.zip?alt=media&token=e13200df-0d8a-4e6f-a5aa-e5364d2589a4>" %}

* Support for GraalVM native-image compilation (see Tips / FAQ)
* Check if JVM is Java 8 (version 1.8) or higher
* K: Added isNewVersionAvailable()
* Some minor code changes
* Major rewrite of the website content

#### Version 2024.12.08

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FJCoZ4WpZ1cWBpJh8OF5t%2Fch.k43.util.2024.12.08.zip?alt=media&token=5d5135be-f505-49a6-a1da-4498e2f9869b>" %}

* **KLog**: Save the last 10 errors even if logging is not active (retrievable with *K.getLastError*() and *K.getLastErrors*()
* **K**: Changed *formatBytes*() to show e.g. MiB instead of MB (IEC standard)
* **K**: Added *getPrivateKey*(), *getPublicKey*() and *getCertificate*()
* Sample code updated
* Some minor code and documentation changes

#### Version 2024.10.26

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FDj0z8O1lk3j1UVscW3sr%2Fch.k43.util.2024.10.26.zip?alt=media&token=5d20f8ad-20b4-4b6c-814f-1ece20c41595>" %}

* **KDB**: Added option *argTimeOutSec* to exec()
* **KDB**: Added *prepare*() and *execPrepare*() to support SQL precompilation and prevent SQL injection attacks
* Some minor code and documentation changes

#### Version 2024.09.15

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FxHG1WImoP4uquzVDpm7g%2Fch.k43.util.2024.09.15.zip?alt=media&token=b9bdba85-add1-4e35-8ea3-9bf4915e92e3>" %}

* **KLog**: Fix small bug when debug log is active in YAML code

#### Version 2024.09.14

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FRpipYjpUw09a4BbDxvtr%2Fch.k43.util.2024.09.14.zip?alt=media&token=a57beb9e-9e8c-4dbd-8468-62ce9622f980>" %}

* **KLog**: Added formatter class to write logging as YAML output
* **KDB**: Added *getDataAsYAML*() to output result set as YAML string
* **K**: Added *encodeYAML*() and *decodeYAML*()
* Some minor code and documentation changes

#### Version 2024.09.12

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FmnqBKYgQRRvHcvqru3fw%2Fch.k43.util.2024.09.12.zip?alt=media&token=6ad1cc38-9fd8-447d-a3f8-bfafc86499e3>" %}

* **K**: Added option to *isNumber*() to check for allowed numeric range
* **KLog**: Show CPU count and OS disk size in debug log
* Some minor code and documentation changes

#### Version 2024.09.06

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FP2xRzXEAVklnNqRCr51r%2Fch.k43.util.2024.09.06.zip?alt=media&token=cd75f055-8dfe-44c4-a199-fac4b0bd5f9e>" %}

* **KThread**: New class for easy Java thread creation and termination
* **K**: Removed *argForce* argument from *stopThread*() as newer Java versions removed the depreciated *Thread.stop*() method

#### Version 2024.09.02

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F2kfyDIC0hDqkv8uru8I5%2Fch.k43.util.2024.09.02.zip?alt=media&token=3013af65-2fd0-4386-9e69-523ed9ceab28>" %}

{% hint style="info" %}
**Upgrade Notice**: Make sure you are using the new Jakarta/Angus mail jar files for the *KSMTPMailer* and *KLogSMTPHandler* classes
{% endhint %}

* **KSMTPMailer:** Migrated from JavaMail (javax.mail) to Eclipse Jakarta/Angus mail.
* **KDB**: Added option in *getDataAsTable*() to optionally print column headers
* Some minor code and documentation changes

#### Version 2024.08.29

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FGZzShC665GZRtZYYYwNS%2Fch.k43.util.2024.08.29.zip?alt=media&token=4cc354fc-cd0e-4ed9-a30b-d0206814636c>" %}

* **K**: Added *isInteger*() and *stopThread*()
* **KLogSMTPHandler**: Added logging handler to send error log entries (FATAL log level) to any SMTP server
* Some minor code and documentation changes

#### Version 2024.08.24

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F0ZoukS3RBj0j91X7EQZj%2Fch.k43.util.2024.08.23.zip?alt=media&token=2265a737-85ca-46fe-8916-618af7210148>" %}

* **K**: Remove SHA-1 algorithm from *generateHash()*
* **K**: Added *serialize*() and *deserialize*()
* **KDB**: Added maxRows argument to *exec()* call
* Added *toString*() to all classes to write out object data
* Updated [sample code](https://java-util.k43.ch/downloads/sample-code)
* Some minor code and documentation changes

#### Version 2024.08.12

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F3EJM0Sqoa8vq4flZfhul%2Fch.k43.util.2024.08.12.zip?alt=media&token=83434dd1-8511-406c-a7b1-7dfd3641a43b>" %}

* Added [architecture overview diagramm](https://java-util.k43.ch/examples/http-socket-server) for *KSocketServer*
* **K**: added *round()*, *compressZLIB()* and *decompressZLIB()*
* Some minor code and documentation changes

#### Version 2024.07.07

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FT31WTZFhpWCWTlj4Uca4%2Fch.k43.util.2024.07.07.zip?alt=media&token=4cc6e3f1-3e9c-46af-96ec-b50e1e99afc9>" %}

* Implemented Java AutoCloseable in **KDB**, **KSocketClient**, **KSocketServer**, **KSocketServerListener** and **KSocketServerThread**&#x20;
* **K**: Added *isNumber()*
* **K**: Added option to *encodeJSON()* to return null, boolean and number values without quotes
* Some minor code and documentation changes

#### Version 2024.06.27

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F5DCP1LO0bO6tdCykeZK9%2Fch.k43.util.2024.06.27.zip?alt=media&token=6c94f67b-15d2-4bc7-878b-7e92cfe578eb>" %}

{% hint style="info" %}
**Upgrade Notice**: The *K.getJVMMemStats()* now returns number of bytes (not KB).
{% endhint %}

* **K**: Added *formatBytes()*, updated *getJVMMemStats()* to return number of bytes
* **KDB**: Added *setAutoCommit()* and *getElapsedTime()*
* Some minor code and documentation changes

#### Version 2024.06.22

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FyrjX0Z5GZLLFhAhyuaTb%2Fch.k43.util.2024.06.22.zip?alt=media&token=d8fa0d89-f61f-471f-b1a9-11a2ad1eb89a>" %}

* **KLog**: New formatter classes to write logging as CSV or XML output
* **KLog**: Adds UUID field to JSON, CSV, XML and JDBC output
* New KLog.properties sample file uploaded
* Some minor code and documentation changes

#### Version 2024.06.20

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FCR4nqp3MW9K87v6xw9Sv%2Fch.k43.util.2024.06.20.zip?alt=media&token=74c49bc3-e556-4fbf-9303-b9d9b3a1a76a>" %}

* **K:** Added encode and decode methods for XML
* **KLogJDBCHandler**: Added logging handler to output data to any JDBC compliant database
* **KLog**: Added *getLevel()* and *setLevel()*
* **KDB**: Added *getDataAsXML()*, *commit()* and *rollback()*
* **KSMTPMailer**: Added *setUnsubscribe()*
* New KLog.properties sample file uploaded
* Some minor code and documentation changes

#### Version 2024.06.15

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FLN45zcKlnBklVKdnkW86%2Fch.k43.util.2024.06.15.zip?alt=media&token=e8183a57-9dbc-47a7-aef9-be5e488a12ca>" %}

* **KDB**: New class to support JDBC compliant databases with various output formats (JSON, CSV, table or Java objects)
* **KSMTPMailer**: Added *setSubject(string, charset)* for non-UTF-8 subjects
* **KSMTPMailer**: Added *setOAuth2Authentication()* to support OAuth 2.0 authentication
* **K**: Added encode and decode methods for JSON and CSV
* Some minor code and documentation changes

#### Version 2024.06.10

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2F7nrNmsIiEMQdB62NX3Ks%2Fch.k43.util.2024.06.10.zip?alt=media&token=2336dda8-aea6-4130-b969-c016d7ead0e2>" %}

{% hint style="info" %}
**Upgrade Notice:** Don't forget to rename Log.properties to *KLog.properties* if you are using the KLog framework.
{% endhint %}

* **KLog**: Log.properties file renamed to *KLog.properties* for consistency with the KLog class
* **K**: Added *runGC()* and *getJVMMemStats()*
* **KSMTPMailer**: Added *addText(string, charset)* for non-UTF-8 text parts
* Include downloads of Jakarta Mail and Jakarta Activation on this website
* Some minor code and document changes

#### Version 2024.06.06

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2Fp0fdtgVquUqw35TL0H3V%2Fch.k43.util.2024.06.06.zip?alt=media&token=384245f2-e6e5-4f31-b653-81653f6d482c>" %}

* **KLog**: Added *setLevelXxx()*, *isLevelXxx()* and *resetLevel()* to set or query the configured logging level during runtime
* **KSMTPMailer**: Added *getMessageSize()* to get size of MIME message after delivery
* **KSMTPMailer**: Include Jakarta Mail debug log in KLog logging output
* **KSMTPMailer**: Removed *X-TLS-Connection* header as there is no guarantee that it is enforced by the SMTP server
* **KTimer**: Added *getStartTime()* and *toString()* to return start time as Calendar object or in ISO-8601 format
* **KSocketServerThread**: Added *writeLine()*
* **K**: Added *getRandomInt()*, *getUTCOffsetMin()* and *getUTCOffsetAsString()*

#### Version 2024.05.24

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FENqRIVsshdue5ZjBG1V5%2Fch.k43.util.2024.05.24.zip?alt=media&token=d8997a9f-a15b-4cf9-801d-bd871f016983>" %}

* **K**: Added *toHex()* to format byte array or string to a hexadecimal string
* **K**: Added *getUniqueID()* to return unique id (UUID)
* **K**: Added *getCurrentDir()* to return current directory
* **K**: Changed *generateHash()* to support SHA3-256, SHA3-384 ad SHA3-512
* **K**: Added getStartTime() to return date and time of application startup
* **KHTTPClient**: Added *put()*, *patch(),* options() and *delete()* methods&#x20;
* **KSMTPMailer**: Added check for hostname (TLS only)
* Added some [sample code](https://java-util.k43.ch/downloads/sample-code) to this website
* Some minor code and document changes

#### Version 2024.05.20

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2Fz0cqVkLO9s2r6zb66FCK%2Fch.k43.util.2024.05.20.zip?alt=media&token=831e8aed-ece8-439a-9f18-7c3e20b650dd>" %}

* **K**: Added *isEmpty()* to test string or array for emptiness
* **KSMTPMailer**: Include platform in *X-Mailer* header
* **KSMTPMailer**: Added header *X-TLS-Connnection: true/false*
* Some code cleanup and documentation changes

#### Version 2024.05.17

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FipfWVeJ4nXbXePO1UTls%2Fch.k43.util.2024.05.17.zip?alt=media&token=9e5bcd78-7ce0-40be-842f-5d85fac6a698>" %}

* **KSMTPMailer:** New class to compose and send multipart SMTP email with text, HTML and file attachments
* **KSocketServerThread:** Added getAuthenthicatedClientCN() to return  common name of the full distinguished name
* **KSocketClient:** Added getAuthenticatedClient() and  getAuthenticatedClientCN()
* **KFile**: Added readPropertiesFile() and writePropertiesFile()
* **KLog:** Added argException() to throw IllegalArgumentException if expression evaluates true
* **K:** Added dnsQuery() to return records for all query types (MX, A, etc)
* Some minor code and documentation changes

#### Version 2024.05.06

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FzmDyEi1IZ2KPzHQsyzzJ%2Fch.k43.util.2024.05.06.zip?alt=media&token=c14fd431-782b-4efb-853b-5c14f1ef854e>" %}

* First public version
