summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-12-01 08:45:31 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2026-01-30 12:34:08 +0100
commit033b631f6e3b855cca5529ec5b0192d35b3b07e4 (patch)
treebb788f2232f7f747d6519b4f7036fe096572dda3
parent7648af6b7c4a23554b41191f38c95221974d2954 (diff)
downloadmullvadvpn-hackday-wire.tar.xz
mullvadvpn-hackday-wire.zip
Everything works except eventshackday-wire
-rw-r--r--android/app/src/main/AndroidManifest.xml1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt2
-rw-r--r--android/build.gradle.kts1
-rw-r--r--android/gradle/build-logic/src/main/kotlin/mullvad.android-library.gradle.kts2
-rw-r--r--android/gradle/libs.versions.toml11
-rw-r--r--android/gradle/verification-metadata.xml7718
-rw-r--r--android/lib/daemon-grpc/build.gradle.kts61
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt403
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt390
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt969
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/LogInterceptor.kt16
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/ManagedChannel.kt16
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/TunnelingUnixSocket.java58
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/UnixDomainSocketFactory.kt58
-rw-r--r--mullvad-daemon/src/management_interface.rs12
-rw-r--r--mullvad-management-interface/src/lib.rs2
16 files changed, 1022 insertions, 8698 deletions
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index d184c17788..1855122ba8 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
android:theme="@style/Theme.App.Starting"
android:localeConfig="@xml/locales_config"
android:supportsRtl="true"
+ android:usesCleartextTraffic="true"
tools:ignore="CredManMissingDal,CredentialDependency,GoogleAppIndexingWarning">
<!--
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt
index 207ee2ca46..3d42440fb3 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt
@@ -2,8 +2,6 @@ package net.mullvad.mullvadvpn.di
import android.content.Context
import android.content.pm.PackageManager
-import android.os.Environment
-import android.os.Environment.DIRECTORY_DOCUMENTS
import androidx.core.app.NotificationManagerCompat
import androidx.datastore.core.DataStore
import androidx.datastore.dataStore
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
index 1179348366..6fe799d629 100644
--- a/android/build.gradle.kts
+++ b/android/build.gradle.kts
@@ -16,6 +16,7 @@ plugins {
alias(libs.plugins.kotlin.parcelize) apply false
alias(libs.plugins.protobuf.core) apply false
id("net.mullvad.rust-android") apply false
+ alias(libs.plugins.wire) apply false
alias(libs.plugins.detekt) apply true
alias(libs.plugins.dependency.versions) apply true
diff --git a/android/gradle/build-logic/src/main/kotlin/mullvad.android-library.gradle.kts b/android/gradle/build-logic/src/main/kotlin/mullvad.android-library.gradle.kts
index 3599919f00..dde8d6bc67 100644
--- a/android/gradle/build-logic/src/main/kotlin/mullvad.android-library.gradle.kts
+++ b/android/gradle/build-logic/src/main/kotlin/mullvad.android-library.gradle.kts
@@ -33,6 +33,6 @@ configure<LibraryExtension> {
configure<KotlinAndroidProjectExtension> {
compilerOptions {
jvmTarget = JvmTarget.fromTarget(libs.findVersion("jvm-target").get().toString())
- allWarningsAsErrors = true
+ allWarningsAsErrors = false
}
}
diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml
index f5f0a9e859..e53d1cd5b8 100644
--- a/android/gradle/libs.versions.toml
+++ b/android/gradle/libs.versions.toml
@@ -47,10 +47,12 @@ drawablepainter = "0.37.3"
# Update suppression for 'InvalidPackage' in config/lint.xml
grpc = "1.78.0"
grpc-kotlin = "1.5.0"
+jnr = "0.38.24"
junit = "5.13.4"
junit4 = "1.3.0"
junit5-android = "1.8.0"
junit5-android-plugin = "1.13.1.0"
+junixsocket = "2.10.1"
kermit = "2.0.8"
koin = "4.1.1"
koin-compose = "4.1.1"
@@ -65,11 +67,13 @@ ktfmt = "0.25.0"
ktor = "3.4.0"
leakcanary = "2.14"
mockk = "1.14.9"
+okttp = "5.3.0"
play-publisher = "3.12.1"
profileinstaller = "1.4.1"
protobuf = "4.33.4"
protobuf-gradle-plugin = "0.9.6"
turbine = "1.2.1"
+wire = "5.4.0"
[libraries]
accompanist-drawablepainter = { module = "com.google.accompanist:accompanist-drawablepainter", version.ref = "drawablepainter" }
@@ -125,6 +129,7 @@ grpc-kotlin-stub = { module = "io.grpc:grpc-kotlin-stub", version.ref = "grpc-ko
grpc-okhttp = { module = "io.grpc:grpc-okhttp", version.ref = "grpc" }
grpc-protobuf-lite = { module = "io.grpc:grpc-protobuf-lite", version.ref = "grpc" }
grpc-stub = { module = "io.grpc:grpc-stub", version.ref = "grpc" }
+jnr-unixsocket = { module = "com.github.jnr:jnr-unixsocket", version.ref = "jnr" }
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
@@ -133,6 +138,8 @@ junit5-android-test-compose = { module = "de.mannodermaus.junit5:android-test-co
junit5-android-test-core = { module = "de.mannodermaus.junit5:android-test-core", version.ref = "junit5-android" }
junit5-android-test-extensions = { module = "de.mannodermaus.junit5:android-test-extensions", version.ref = "junit5-android" }
junit5-android-test-runner = { module = "de.mannodermaus.junit5:android-test-runner", version.ref = "junit5-android" }
+junixsocket-core = { group = "com.kohlschutter.junixsocket", name = "junixsocket-core", version.ref = "junixsocket" }
+junixsocket-native-android = { group = "com.kohlschutter.junixsocket", name = "junixsocket-native-android", version.ref = "junixsocket" }
kermit = { module = "co.touchlab:kermit", version.ref = "kermit" }
koin = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
@@ -161,8 +168,11 @@ ktor-server-engine-netty = { module = "io.ktor:ktor-server-netty", version.ref =
leakCanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" }
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" }
+okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okttp" }
protobuf-kotlin-lite = { module = "com.google.protobuf:protobuf-kotlin-lite", version.ref = "protobuf" }
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
+wire-runtime = { group = "com.squareup.wire", name = "wire-runtime", version.ref = "wire" }
+wire-grpc = { group = "com.squareup.wire", name = "wire-grpc-client", version.ref = "wire" }
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
@@ -186,3 +196,4 @@ mullvad-utilities = { id = "mullvad.utilities" }
play-publisher = { id = "com.github.triplet.play", version.ref = "play-publisher" }
protobuf-core = { id = "com.google.protobuf", version.ref = "protobuf-gradle-plugin" }
protobuf-protoc = { id = "com.google.protobuf:protoc", version.ref = "protobuf" }
+wire = { id = "com.squareup.wire", version.ref = "wire" }
diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml
deleted file mode 100644
index 0c06a8c426..0000000000
--- a/android/gradle/verification-metadata.xml
+++ /dev/null
@@ -1,7718 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- This is a lockfile for gradle dependencies. See the following page for more information:
- https://docs.gradle.org/current/userguide/dependency_verification.html
-
- The easiest way to update this file is to run the following script:
- <repository-root>/android/scripts/lockfile -u
-
- The following trust group is only used for GitHub Actions: com.github.burrunan.multicache
-
- NOTE:
- - In order to properly generate the components, no gradle caches should be present
- (for example junit-bom-*). This is automatically handled by using the mentioned script.
- For more information see: https://github.com/gradle/gradle/issues/19228
- - Comments after the verification-metadata opening tag will automatically be removed by gradle
- when generating components.
- see: https://github.com/gradle/gradle/issues/14885
-
- WORKAROUNDS:
- - Ignore gradle wrapper source being downloaded when running "Sync Project with Gradle Files"
- https://youtrack.jetbrains.com/issue/IDEA-258328
- https://developer.android.com/build/dependency-verification#android_studio_synchronization
- Line added:
- <trust group="gradle" name="gradle"/>
--->
-<verification-metadata xmlns="https://schema.gradle.org/dependency-verification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schema.gradle.org/dependency-verification https://schema.gradle.org/dependency-verification/dependency-verification-1.3.xsd">
- <configuration>
- <verify-metadata>true</verify-metadata>
- <verify-signatures>false</verify-signatures>
- <trusted-artifacts>
- <trust group="com.github.burrunan.multicache"/>
- <trust group="gradle" name="gradle"/>
- <trust group="org.apache.groovy"/>
- <trust file=".*-javadoc[.]jar" regex="true"/>
- <trust file=".*-sources[.]jar" regex="true"/>
- <trust file=".*[.]pom" regex="true"/>
- </trusted-artifacts>
- </configuration>
- <components>
- <component group="androidx.activity" name="activity" version="1.10.1">
- <artifact name="activity-1.10.1.aar">
- <sha256 value="b62b528c917de9be497eb6f88830197c20e9d21267c3916c613492e5ee837d4d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-1.10.1.module">
- <sha256 value="893b73a4b16d19c0338675ad0b9fa5122d9c69c44f611871bd8c407d3be23a68" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity" version="1.12.2">
- <artifact name="activity-1.12.2.aar">
- <sha256 value="1d37a19022454f1e4a60fd982b3dc0256457d25257a6343c771acae864d15cd9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-1.12.2.module">
- <sha256 value="12356d2e266b930f3f81e74312f5d1d65c102ff57fba0737581e194cf278ec97" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity" version="1.2.1">
- <artifact name="activity-1.2.1.module">
- <sha256 value="7e8cd74c2fa8166d82663f75a65c8375d4fdec6f1ba880b526dae4192a29a2c9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity" version="1.2.3">
- <artifact name="activity-1.2.3.module">
- <sha256 value="e9e2dd9d99adaf343369187cf6a3f0380ff9d2544944cdfc47310efbceb1b351" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity" version="1.7.0">
- <artifact name="activity-1.7.0.aar">
- <sha256 value="e44b2032273387156982912c591ef7e2dd485ba0b2e689b528b5a42f271a4f27" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-1.7.0.module">
- <sha256 value="2a746b0126a8ab2f576e7167f1a785b452ef7ee997abd979ee0c5a29c36f6ea6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity" version="1.8.0">
- <artifact name="activity-1.8.0.aar">
- <sha256 value="d3a676709dea04f2a8506e2ae85052fff763db526ac7f16b04de50fdd05b0720" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-1.8.0.module">
- <sha256 value="d145d8b53cfd11fd26e47e7dd45c007133ef96ea24f6715cb653c737645d1df6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity" version="1.8.2">
- <artifact name="activity-1.8.2.aar">
- <sha256 value="ecc119262530a6e2f9f373207e472d476306bed3d4b216fe61b1ea42e3bef688" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-1.8.2.module">
- <sha256 value="c8923871e556cd5467addabac6773e778f3a4d3da19bfc8153bbaee0d145298f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-compose" version="1.10.1">
- <artifact name="activity-compose-1.10.1.aar">
- <sha256 value="f89af1b26ccc834634387c857c2dd4f4654d37650890039c527c2fed07db6a61" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-compose-1.10.1.module">
- <sha256 value="1ed13a50edbb885962751e1bcb5b8a4207a20cb780ea248ffa653aab3fb10fe9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-compose" version="1.12.2">
- <artifact name="activity-compose-1.12.2.aar">
- <sha256 value="8538db6f4ead968e5e768f62db9ca4ea787c4105ad87e6518f67bf293ec04776" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-compose-1.12.2.module">
- <sha256 value="a59254f7aa7719123067ccde1c4ea4e91eb77b33642af7e33b9eae2a7ddfa12f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-compose" version="1.7.0">
- <artifact name="activity-compose-1.7.0.aar">
- <sha256 value="caa72885d1ce7979c1d6c59a8b255c6097b770780d4d4da95d56979a348646cd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-compose-1.7.0.module">
- <sha256 value="f7a29bcba338575dcf89a553cff9cfad3f140340eaf2b56fd0193244da602c0a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-compose" version="1.8.2">
- <artifact name="activity-compose-1.8.2.aar">
- <sha256 value="5a67e984f14ed2afc585aa3a23edff1c1791c80caa2bf68a0f799c1b11a39038" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-compose-1.8.2.module">
- <sha256 value="0460c0a46ba9a74f92b180e4a78751745384a78f462de2cc240f32da4cefcf46" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-ktx" version="1.10.1">
- <artifact name="activity-ktx-1.10.1.aar">
- <sha256 value="f396f58dbd772c065b873696b74a3d4d087554b3766280e63b49b25dbb53ab16" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-ktx-1.10.1.module">
- <sha256 value="7c183895189a27fd7aa59fdcf5029fa64fad28e9d39129a9cb30e40b5e4267ae" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-ktx" version="1.12.2">
- <artifact name="activity-ktx-1.12.2.aar">
- <sha256 value="43107c7fcc04dff804b7541cf78f4432e813ff77a7dea7d500548f3420f29449" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-ktx-1.12.2.module">
- <sha256 value="7ea0e2e1fb9693786ab934664b580cc43f91b2917896cead5f7d7a59856aea16" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-ktx" version="1.7.0">
- <artifact name="activity-ktx-1.7.0.aar">
- <sha256 value="fce317d61a22f12967b475bfcb80c89dda66e418975e890ea703cb74e12b5b11" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-ktx-1.7.0.module">
- <sha256 value="f4001a709b6f7132b22a5e17c24f8b8a9b3c462a598de3b0f16cc57a4344bab6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-ktx" version="1.8.0">
- <artifact name="activity-ktx-1.8.0.aar">
- <sha256 value="bfee12c1c88c3f74954fbf6e6766bc183956f37478b7c024fae7f5b38493d7a5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-ktx-1.8.0.module">
- <sha256 value="0251a826d94897d5c689e6a539fc533b4b7684d3f63e240221182d7cb4b4fb13" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.activity" name="activity-ktx" version="1.8.2">
- <artifact name="activity-ktx-1.8.2.aar">
- <sha256 value="5c78283d1956b14b22cf6ad70c712a73aa084116b7535526176c3b85e6a9205a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="activity-ktx-1.8.2.module">
- <sha256 value="2c445c6709e5efb061db3551ef3b71f4a53e00db40bbbe782928f5531998980d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation" version="1.3.0">
- <artifact name="annotation-1.3.0.module">
- <sha256 value="9516c2ae44284ea0bd3d0eade0ee638879b708cbe31e3af92ba96c300604ebc3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation" version="1.7.0">
- <artifact name="annotation-1.7.0.module">
- <sha256 value="530708656d380605077ea8bca9ae1372fbd1af38e375f411d4e43263bd510c3c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation" version="1.7.0-beta01">
- <artifact name="annotation-1.7.0-beta01.module">
- <sha256 value="2a1e9e0bec82b27c6315a2a501a9bb71659b2f0245cdefd21f15b437f22555f9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation" version="1.8.0">
- <artifact name="annotation-1.8.0.module">
- <sha256 value="d590a0d8e02f405de749e8dc80b741dc503c6e3e4c9c016d614d76b65f0b59ef" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation" version="1.8.1">
- <artifact name="annotation-1.8.1.module">
- <sha256 value="e6386e85afdd865044e216575e493ed39a63a6325bd925379a21429c3941c8b5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation" version="1.9.1">
- <artifact name="annotation-1.9.1.module">
- <sha256 value="f204b05b728a97561718bc716242e47c629c0085a80ee74fca53d4d638bcbe3f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-experimental" version="1.1.0">
- <artifact name="annotation-experimental-1.1.0.module">
- <sha256 value="0361d1526a4d7501255e19779e09e93cdbd07fee0e2f5c50b7a137432d510119" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-experimental" version="1.4.0">
- <artifact name="annotation-experimental-1.4.0.module">
- <sha256 value="5930ea7f21fcb6d0deb2ba32748a0ef7c8fd2c42384860582ba7cd20deb90379" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-experimental" version="1.4.1">
- <artifact name="annotation-experimental-1.4.1.aar">
- <sha256 value="6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="annotation-experimental-1.4.1.module">
- <sha256 value="2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-jvm" version="1.7.0">
- <artifact name="annotation-jvm-1.7.0.module">
- <sha256 value="07ce60c377ab94e47c8c902589b9776030064fd1a7e4d5a01a38d700e35e5db4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-jvm" version="1.7.0-beta01">
- <artifact name="annotation-jvm-1.7.0-beta01.jar">
- <sha256 value="e36b8e4b8393a4adc74e3d4ab22ad5a36396f0cea2e40b5734eae14937dfd224" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="annotation-jvm-1.7.0-beta01.module">
- <sha256 value="61514762e567b50287f2d8792698a5f46eb9a73a4b336f0e4e25dbd7a9c980dd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-jvm" version="1.8.0">
- <artifact name="annotation-jvm-1.8.0.module">
- <sha256 value="e3cb4525539d0ed74bb238ef92c69eef22a80e422c0d2acbc51e6187febb0a13" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-jvm" version="1.8.1">
- <artifact name="annotation-jvm-1.8.1.module">
- <sha256 value="c959e3b0cdc75c15efe01605fa56aa79f033e39238e150638b8fabde6aa121a0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.annotation" name="annotation-jvm" version="1.9.1">
- <artifact name="annotation-jvm-1.9.1.jar">
- <sha256 value="1e343917ebf27ba96fe4dc52b1cad7fd32b738fbc6355bb6cd5b3b305d7212d0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="annotation-jvm-1.9.1.module">
- <sha256 value="03fb659177c8618e47425925c11bc91f384703ea26c265be9b25cd79292b511c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.appcompat" name="appcompat" version="1.7.1">
- <artifact name="appcompat-1.7.1.aar">
- <sha256 value="2ad334a323b28046e89b738c77d184cb3dcca32a551ab048851b2fda23a3ba26" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="appcompat-1.7.1.module">
- <sha256 value="8bbf16792c81cc2dd083681783a5382f573007eee8157182932f1b454e2b7f04" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.appcompat" name="appcompat-resources" version="1.7.0">
- <artifact name="appcompat-resources-1.7.0.module">
- <sha256 value="d7cca0b553ec109ef20ac70ae6438f584fc6bb5eb269a7f5b4098e02c6d687f9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.appcompat" name="appcompat-resources" version="1.7.1">
- <artifact name="appcompat-resources-1.7.1.aar">
- <sha256 value="8e2db31224ca53b108c784da2b361959062716d416b210cfef3d5a3828306df0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="appcompat-resources-1.7.1.module">
- <sha256 value="163cc5e0f249433ddb0016fbd011ab8de07cf23e07e618c74644688e26cd18e8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.arch.core" name="core-common" version="2.2.0">
- <artifact name="core-common-2.2.0.jar">
- <sha256 value="65308a06b1c00ee186cb9e19321383f043b993813f1522c47f4a3e3303bdba41" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-common-2.2.0.module">
- <sha256 value="edf4200cfdc2d946232252c99e5dcb9c61bb909eb5450b2613d1d4fdc974b981" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.arch.core" name="core-runtime" version="2.2.0">
- <artifact name="core-runtime-2.2.0.aar">
- <sha256 value="a1be5e0caa2b07623862af6ae21b3ab0718123245184d0e30dea81b53f990a47" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-runtime-2.2.0.module">
- <sha256 value="a8b17513949e5db6c9601c30be19df953762dd877512f1e2cfcfae81d2440944" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.autofill" name="autofill" version="1.0.0">
- <artifact name="autofill-1.0.0.aar">
- <sha256 value="c9468f56e05006ea151a426c54957cd0799b8b83a579d2846dd22061f33e5ecd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.benchmark" name="benchmark-baseline-profile-gradle-plugin" version="1.4.1">
- <artifact name="benchmark-baseline-profile-gradle-plugin-1.4.1.jar">
- <sha256 value="407f9fb4d81f94243948d649ed58b507c1f65e1e5cf58678c4d8ed5d0f02da59" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="benchmark-baseline-profile-gradle-plugin-1.4.1.module">
- <sha256 value="c2ffeb0e07014c49e0a655318c4f1ab7ed2619b016dfd561f1018dd319870630" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.benchmark" name="benchmark-common" version="1.4.1">
- <artifact name="benchmark-common-1.4.1.aar">
- <sha256 value="54fad42120f3c4a9319c9b11ad37733a22a0dca92977ce4bfa33be6e6313c2b9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="benchmark-common-1.4.1.module">
- <sha256 value="9bd34157785fd87c8b27d0fa52fc4b02deaf46c1e2cbf0415f183f56692348ea" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.benchmark" name="benchmark-macro" version="1.4.1">
- <artifact name="benchmark-macro-1.4.1.aar">
- <sha256 value="d99732de5d713fea47fe7caa3b18438fe615bbb1225e3c6cf0fac48ec350943c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="benchmark-macro-1.4.1.module">
- <sha256 value="e38d6e3464d9199013bc0a49b2b30c1fbb8cec4642c42a676e66832c68bbc908" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.benchmark" name="benchmark-macro-junit4" version="1.4.1">
- <artifact name="benchmark-macro-junit4-1.4.1.aar">
- <sha256 value="41595999e2dad5a3e61b9ad74c18d73700c21060b7845df05f28a8fbc9a08b15" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="benchmark-macro-junit4-1.4.1.module">
- <sha256 value="87950c7db96a23b9cff5151d8e8b80e59c7537b53013cdbf77387d79c8687427" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.benchmark" name="benchmark-traceprocessor" version="1.4.1">
- <artifact name="benchmark-traceprocessor-1.4.1.module">
- <sha256 value="ef9b4701b0428f7eadc3a8a9bf926ac2ef9ec1ce2c96451a13c13de798902d88" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.benchmark" name="benchmark-traceprocessor-android" version="1.4.1">
- <artifact name="benchmark-traceprocessor-android-1.4.1.module">
- <sha256 value="7f4e77215a9ecc80cae72c4c9c0d8f4fcba42fa9bd6af2e2aaa947b58eef65ed" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="benchmark-traceprocessor.aar">
- <sha256 value="b6401616e8a834cf8882204f219433fad4cc91aa63a84e461c2fa14cbaafe16a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection" version="1.4.2">
- <artifact name="collection-1.4.2.module">
- <sha256 value="0326d2cf5adbe592312810ca1f71c6c0cc30f753c43f07c7402361b788a7784c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection" version="1.4.5">
- <artifact name="collection-1.4.5.module">
- <sha256 value="237e1efc56a3e25a8ea4ceec26558c299844bfc53aad06ff3f53ca1c835e28c8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection" version="1.5.0">
- <artifact name="collection-1.5.0.module">
- <sha256 value="bfeb7bd84f3f7dda7bd73b6709d4a1f61f5a37f843728bae08a067e3df9a0aef" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection-jvm" version="1.4.2">
- <artifact name="collection-jvm-1.4.2.module">
- <sha256 value="aad6b3536c0f0e570aa733d5141d70fa6b9b3add370f73a311ca4ca5dee25448" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection-jvm" version="1.5.0">
- <artifact name="collection-jvm-1.5.0.jar">
- <sha256 value="70b35924e4babcdffa37d0e575ee039c56a2d97123342624c48b603233704341" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="collection-jvm-1.5.0.module">
- <sha256 value="dde85e292509231b5471bb091b575099d4f43161eb281e87385038a0161072e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection-ktx" version="1.3.0">
- <artifact name="collection-ktx-1.3.0.module">
- <sha256 value="14908a30ca887e59b12759505a8959b57f153db611c242c36ee92fc59e8164ed" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection-ktx" version="1.4.2">
- <artifact name="collection-ktx-1.4.2.module">
- <sha256 value="8a68e297cd92c80789acc033e2b3d7cbd7941f9234335f00c037205df200bcf5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.collection" name="collection-ktx" version="1.5.0">
- <artifact name="collection-ktx-1.5.0.jar">
- <sha256 value="939b4a8697640e77d83e4e8b4c4a9d18f8130198c5961194af8dd9db9dc7c353" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="collection-ktx-1.5.0.module">
- <sha256 value="4228894e25eec7e17329b206ba72e8aad255bc535018dc62acc5eff3b5c7aaa5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation" version="1.10.1">
- <artifact name="animation-1.10.1.module">
- <sha256 value="87c4df4ab7bd137543e3fe9d7f7e502e2f7080e112bd3e8865004514f3b968a2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation" version="1.6.8">
- <artifact name="animation-1.6.8.module">
- <sha256 value="31e6783f9a1de6e021942c5be1f1d777e330bfe017f5429032a24f4c3a940726" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation" version="1.7.2">
- <artifact name="animation-1.7.2.module">
- <sha256 value="8a945e28051b03fcaa0124a7a528002b2388ce1cbcf07861decfc847bac80994" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation" version="1.8.1">
- <artifact name="animation-1.8.1.module">
- <sha256 value="ca7c3fa6dcb3019cf89532fab32d0da5b061a977ceaa62b12914abfe415b6b14" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-android" version="1.10.1">
- <artifact name="animation-android-1.10.1.module">
- <sha256 value="6c222e323d05b7aa8859eaab949b7c5d35d7192182ffc2261806a4fffd43ae30" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation.aar">
- <sha256 value="6192a950b96674bd879178b291924c9aea4c388010aee884cfa6c63eb7e9dbe9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-android" version="1.8.1">
- <artifact name="animation-android-1.8.1.module">
- <sha256 value="9af91c6497c486d65d674f410e0d35abcdea860cacf082130beb8d996087e0d7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-release.aar">
- <sha256 value="6b651289d45649d605963d6476b51dd16783d8de8ce0e30a2e3be977707b727d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core" version="1.0.0">
- <artifact name="animation-core-1.0.0.module">
- <sha256 value="2e3502f0deaf56b098b0412075fcc3e7c2d85b95ae9bf4230ec92c2a9008f842" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core" version="1.10.1">
- <artifact name="animation-core-1.10.1.module">
- <sha256 value="3ee4ea10dc0e6eec6406050cfe8436968ec2c82b9756c1cfbfbe5d1c07262095" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core" version="1.7.2">
- <artifact name="animation-core-1.7.2.module">
- <sha256 value="ffc732d947b7983e72189b5f9d60f748b36f7c9cb3c474e825686dc4af51a9a3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core" version="1.8.1">
- <artifact name="animation-core-1.8.1.module">
- <sha256 value="209bfe0d6bc8a700597762c6944eba401f1ae920dd7f6f959738bbce3f4dd1d2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core-android" version="1.10.1">
- <artifact name="animation-core-android-1.10.1.module">
- <sha256 value="02bc98342a00d332b211af880fbfdb693ad81adde0c8a08dac6eb88f6d7441ee" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-core.aar">
- <sha256 value="3120ac55d1f847c663cee5832947d1b2df71c2b8fc18c5b2b95d5bca793e7984" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core-android" version="1.7.2">
- <artifact name="animation-core-android-1.7.2.module">
- <sha256 value="81c5eb129bdc1d09567726b7a88297c6d43def70a1065734bc64fba648403c5b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core-android" version="1.8.1">
- <artifact name="animation-core-android-1.8.1.module">
- <sha256 value="e3e4e5560766002bac433809bccf0eaaed8f2356edefccedaea3c4f3006dcd1d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-core-release.aar">
- <sha256 value="db3f2a9df5b78286bd01f75107e6146e23095b9bfdc1186773e7efe344c9ab79" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-core-jvmstubs" version="1.10.1">
- <artifact name="animation-core-jvmstubs-1.10.1.jar">
- <sha256 value="0d69b7dca5c4c38db46ca50701b13248ea62cfaee4fc0459aba36294ae3bd22b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-core-jvmstubs-1.10.1.module">
- <sha256 value="8548a4ce65337ec4f1607dac78cefed1e04ba079cc9f9616507197f4022da8be" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.animation" name="animation-jvmstubs" version="1.10.1">
- <artifact name="animation-jvmstubs-1.10.1.jar">
- <sha256 value="7116596900e3a99b8bd93454572d968fa9250823e42db63731572d506a7014b3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-jvmstubs-1.10.1.module">
- <sha256 value="6a13fb4f0e975f265371ff3302a78af6624a8a8447c36629249f94dac933998f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation" version="1.10.1">
- <artifact name="foundation-1.10.1.module">
- <sha256 value="b8671fcd4ba1e381315f472bc6db430b6e0401356848278338077de6676eb693" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation" version="1.6.8">
- <artifact name="foundation-1.6.8.module">
- <sha256 value="045615477691111fefca60926d3657707d4af3dc5d0221a9cfbbe9cf92399699" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation" version="1.7.0">
- <artifact name="foundation-1.7.0.module">
- <sha256 value="8462ad30b9671fb6afd6c757c9b0830f66bb13ff0ca4d28e554e7b151a1c7291" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation" version="1.7.2">
- <artifact name="foundation-1.7.2.module">
- <sha256 value="80a589db686d62366a09adc42f5c5ae8eba61ef4a37ebbbcad55f8277cd14170" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation" version="1.8.1">
- <artifact name="foundation-1.8.1.module">
- <sha256 value="0ae9b9099979aefafa5d8fd6007f4d795f04847ea5defb664c57c8b4680b50f2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-android" version="1.10.1">
- <artifact name="foundation-android-1.10.1.module">
- <sha256 value="d2dac8efbcfbcc249d1529b60c883b43c02c87f2ee4d7cd54767ccab73a506b8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation.aar">
- <sha256 value="431096ea941aead1cfc5d254dc9952d0f5879351c40b48c6b8b3e7116ded3883" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-android" version="1.6.8">
- <artifact name="foundation-android-1.6.8.module">
- <sha256 value="b92502e46bc91f147a8569758db9430bba34e6af477068c3cfea1207f872ab27" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-android" version="1.7.0">
- <artifact name="foundation-android-1.7.0.module">
- <sha256 value="eb664a01e8332bec4e8b66c858a5e1d59ecafd8254c09158ec815d7a44055739" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-android" version="1.8.1">
- <artifact name="foundation-android-1.8.1.module">
- <sha256 value="530a091ecafc5d911fe8025b737ae1935339db6c9c25854d793a5992d2a47624" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-release.aar">
- <sha256 value="340244b58750d91075576d30327a4d15576435278a42d4b4465d87948b1087ae" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-jvmstubs" version="1.10.1">
- <artifact name="foundation-jvmstubs-1.10.1.jar">
- <sha256 value="31dc5797ac02a248351fd538223393ea031d86c0246fd64abad8373f1daa1ced" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-jvmstubs-1.10.1.module">
- <sha256 value="a54e73465bd068bc43f70599b3e67f02112d3d16c1785c4087047d30f2a0f1fe" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout" version="1.10.1">
- <artifact name="foundation-layout-1.10.1.module">
- <sha256 value="70bacee0c64f888832d4320d8fc317ea223462e399c2f120f6a0cdf89b77a82c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout" version="1.6.8">
- <artifact name="foundation-layout-1.6.8.module">
- <sha256 value="7563a54ddec275c1428c3aed8ff4627a5e2ab405051e81b126e3c1c99502aa11" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout" version="1.7.2">
- <artifact name="foundation-layout-1.7.2.module">
- <sha256 value="c2c34534180677f3189fa80ab42cdc7109b9baa27e1970a3910dd3d3a36acfc6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout" version="1.8.1">
- <artifact name="foundation-layout-1.8.1.module">
- <sha256 value="c246c7f4dc1e2da163bd2cb990caa7a9c10202cb47d1899365a1429b4a8c988c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout-android" version="1.10.1">
- <artifact name="foundation-layout-android-1.10.1.module">
- <sha256 value="95f692c2e67e3c27883ea37268ab6294ce8449e123e785a6e05e52c2740108fa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-layout.aar">
- <sha256 value="ef30d8f5c92fbb9c0004e58490a00ad62dc46b30b08c20ed6a640086f1a26b33" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout-android" version="1.6.8">
- <artifact name="foundation-layout-android-1.6.8.module">
- <sha256 value="f7769c1f05d0361bc0258291baea6865bba438bebd090ce21ff5ec1771b58c71" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout-android" version="1.7.2">
- <artifact name="foundation-layout-android-1.7.2.module">
- <sha256 value="34978d5115d736c20a6ae0aa8805a5799c8f4bd902059171a8e644b9484702f5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout-android" version="1.8.1">
- <artifact name="foundation-layout-android-1.8.1.module">
- <sha256 value="07bdd465a159d84683c1d945eac8e8b9f30fe60f0e335284a67f29b56170a0e2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-layout-release.aar">
- <sha256 value="dbe837ae9151b432e3cf89111484fc2585e4275f1bc750554cb6c686d87c7062" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout-desktop" version="1.6.8">
- <artifact name="foundation-layout-desktop-1.6.8.module">
- <sha256 value="47a7bcfbd1473204da930c9a3611e967ef1953cbfdae64e785863012573e7487" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.foundation" name="foundation-layout-jvmstubs" version="1.10.1">
- <artifact name="foundation-layout-jvmstubs-1.10.1.jar">
- <sha256 value="b1bac8977c421534ae5a857f64ba6932bc6fbbfda3fbb1161bfe1c1803d4d155" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-layout-jvmstubs-1.10.1.module">
- <sha256 value="e2d29a8efedd85097fd626aaedfdb8e8abfab525a8b8c06e750ef598b618c788" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material" version="1.0.0">
- <artifact name="material-1.0.0.aar">
- <sha256 value="5b1efb82311098418e9f61c5d3aa95d8e44fc36319d23a2901232fbe7f147d8b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-1.0.0.module">
- <sha256 value="e8ae601d866e627b361f4d686e90b1918660b55bf97947b5f31eae7df304d0bc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material" version="1.6.8">
- <artifact name="material-1.6.8.module">
- <sha256 value="85760ca4ac3b28d2e869669f042ac41976da2ad16ea17e2f280c2ae1b6f7eebd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core" version="1.0.0">
- <artifact name="material-icons-core-1.0.0.aar">
- <sha256 value="6e049492ec2ff0a6a1166a5985a924cf4de03465d17462594284f81eafe1a9dd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-icons-core-1.0.0.module">
- <sha256 value="1fb8325c6bbab3a99bd3c8a8af78f5addecc629166bfd9c86b07a4b3b120c8a8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core" version="1.6.8">
- <artifact name="material-icons-core-1.6.8.module">
- <sha256 value="ea1acaa1dfd488d6cab2d9d645010892e784b10b592adbe8290c5a8aaaf1944e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core" version="1.7.8">
- <artifact name="material-icons-core-1.7.8.module">
- <sha256 value="f9d63655bac19ff7f27abf68a9c0f38f5e42c85e365655b990e6e1a317f92e2f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core-android" version="1.6.8">
- <artifact name="material-icons-core-android-1.6.8.module">
- <sha256 value="8e0540fb09dd3a483168488cceec4806e4cc0a7946354a64c72c61e63fd415ff" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core-android" version="1.7.8">
- <artifact name="material-icons-core-android-1.7.8.module">
- <sha256 value="99a1ca83e54261a65eb96d44ea02fae43588be45ade5e97963d73e8489ea4a54" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-icons-core-release.aar">
- <sha256 value="332c06b25e662cc417fb087e76b8faa5cb249f4992ffa3360084a3d4ab882284" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core-desktop" version="1.6.8">
- <artifact name="material-icons-core-desktop-1.6.8.module">
- <sha256 value="898008d26735f253b40fef3fc1b66d34d6d593706e679b4f21d0ce6e1ad1c75a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-core-desktop" version="1.7.8">
- <artifact name="material-icons-core-desktop-1.7.8.jar">
- <sha256 value="b5729220e242132b22b0c0317a304ff167a05cc685c3e9e6483d5dfca3495f56" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-icons-core-desktop-1.7.8.module">
- <sha256 value="6593704fdf2912efa250d32c44e5fdabe484c3e052e0f5387e09991dcd32e1ee" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-extended" version="1.7.8">
- <artifact name="material-icons-extended-1.7.8.module">
- <sha256 value="db90152cc18a7f2c3d0931f2032d2c3016f35f82471bf4c9f5620702a0cded95" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-extended-android" version="1.7.8">
- <artifact name="material-icons-extended-android-1.7.8.module">
- <sha256 value="d4d502935e175255fd7730b1c2dce4261799c3a70ae427e1a6a845079fe297f1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-icons-extended-release.aar">
- <sha256 value="64e86269f1106848981dd76f0046f81b46f3bd92efb22645de8fd044c0402b61" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-icons-extended-desktop" version="1.7.8">
- <artifact name="material-icons-extended-desktop-1.7.8.jar">
- <sha256 value="0ade0b7d55cb008136d7b58b71100ce017dedb84be20af6da2e76b58b090f699" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-icons-extended-desktop-1.7.8.module">
- <sha256 value="d9bad8628c4b705f232676aa67aee1c4d0782621482e75330d1fcde6e3893618" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-ripple" version="1.0.0">
- <artifact name="material-ripple-1.0.0.aar">
- <sha256 value="0d3ac24c815fba15c57e1ca03f406399cd69ac1e41e390f61258c22a3226f550" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-ripple-1.0.0.module">
- <sha256 value="03eb853a7cb720707b49a50c29a16089033cc905b6cabe3220358c34902100b1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-ripple" version="1.8.1">
- <artifact name="material-ripple-1.8.1.module">
- <sha256 value="468be652f6a39a6cc5f0652d5727dc143b219393ee38d66c8ee836859e747117" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-ripple-android" version="1.8.1">
- <artifact name="material-ripple-android-1.8.1.module">
- <sha256 value="7295c78e59a1489f20bf0fe3fc685c4a1f9ac201c97b48159fee133bf9f4fda5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-ripple-release.aar">
- <sha256 value="a6bc5eb03cd1d714e06339b8e48944462d9994a9e88eb7519af4cf3ec20e3afa" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material" name="material-ripple-jvmstubs" version="1.8.1">
- <artifact name="material-ripple-jvmstubs-1.8.1.jar">
- <sha256 value="2ccb18d62db2bb78fa136205f51efa34c749866a2e2f7dc4bbfa0e20e6064661" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material-ripple-jvmstubs-1.8.1.module">
- <sha256 value="34bbcfa3da891bb9bd3647c33328003f23c63cb2ba315fe1b73874b163578aaa" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material3" name="material3" version="1.4.0">
- <artifact name="material3-1.4.0.module">
- <sha256 value="757081d128daf8801c1dd9acc431fa5269e656b28a0a490ae98ccee68e9c3452" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material3" name="material3-android" version="1.4.0">
- <artifact name="material3-android-1.4.0.module">
- <sha256 value="fccd6a8d0d33fcf7c3277bc43eb452c73803ec620597c81dbc4a79e290a71a97" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material3.aar">
- <sha256 value="3a37e8b36df3822fe1e6059f0f9fafda8800388860477624ac1b9422c418a36e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.material3" name="material3-jvmstubs" version="1.4.0">
- <artifact name="material3-jvmstubs-1.4.0.jar">
- <sha256 value="a30c3680b527829ac1f058b306df566e81625d1728aca68739bb9fb10925daf2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="material3-jvmstubs-1.4.0.module">
- <sha256 value="23f6c9753a99718baa2be29538f62d1518ac53d6dc19992fc2c510473310cba0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime" version="1.10.1">
- <artifact name="runtime-1.10.1.module">
- <sha256 value="eac58fd707246b3298c1e2e6a1002fe6548fe27c4f98bad4528f79fc869b26d8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime" version="1.6.8">
- <artifact name="runtime-1.6.8.module">
- <sha256 value="15d27ca9a22e02345d2193c1d1ab509f77c714c6b3533df1a5a2c268e667b097" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime" version="1.7.0">
- <artifact name="runtime-1.7.0.module">
- <sha256 value="7b9351b0ff6df9276d02d40f12765ae55bf5c6dfb8ff8df4c77dfca138fb9fc1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime" version="1.9.0">
- <artifact name="runtime-1.9.0.module">
- <sha256 value="b11e9b641b65477f686e19b499daa435baf420d13bb79e98db05ec01892db22e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-android" version="1.10.1">
- <artifact name="runtime-android-1.10.1.module">
- <sha256 value="b94baea483870aa366add826c44a1ec7a0be3bc951da63b0fb354c0fe6ca581f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime.aar">
- <sha256 value="a0fab62bf959e887a477e926ed4900cc2e975d071708c388661df2a337621f1b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-android" version="1.7.0">
- <artifact name="runtime-android-1.7.0.module">
- <sha256 value="a3420bad0eedce8adfe63e6a2446f770bee0bc8d17ecc3e146f357ae384ae5d0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-annotation" version="1.10.1">
- <artifact name="runtime-annotation-1.10.1.module">
- <sha256 value="67fe9a41e315183aed5f909e1335f860d2460a2b42727f2497889f827145ccc5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-annotation" version="1.9.0">
- <artifact name="runtime-annotation-1.9.0.module">
- <sha256 value="688fcf7a90c7c7ab2ee2017eadeb9cda29f35ae17e6aadec72dfd0740f02e624" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-annotation-android" version="1.10.1">
- <artifact name="runtime-annotation-android-1.10.1.module">
- <sha256 value="2833e67cf47c99c972e1c9baa47214b06b1f56b2d51f8398ed3e38d840efff02" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-annotation.aar">
- <sha256 value="01cacc62d944707b3554a3247f6e35a6259df3144072683939a07c8e502e9f90" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-annotation-jvm" version="1.10.1">
- <artifact name="runtime-annotation-jvm-1.10.1.jar">
- <sha256 value="f89dda8bcd73876d0fc16568844b2bd79443ee7ca62810874d25c7dcaa394bd6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-annotation-jvm-1.10.1.module">
- <sha256 value="17346907eaf7a7cc4ba57dd39065e8abc7ee5b4577b7ff2b832ebd6376039885" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-desktop" version="1.10.1">
- <artifact name="runtime-desktop-1.10.1.jar">
- <sha256 value="b195860542f612de0512b54a75353e0f6d58815f0c9530a03bc5b0e734474829" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-desktop-1.10.1.module">
- <sha256 value="55b848c093c40c810ec27d3259fd40171e02e8fedc5c0d1cbf10dfea4edbcd9c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-desktop" version="1.7.0">
- <artifact name="runtime-desktop-1.7.0.module">
- <sha256 value="0811db42406174bee682606d340d14e7e84e9c4d576d0ac6bef17601cc4790c8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-retain" version="1.10.1">
- <artifact name="runtime-retain-1.10.1.module">
- <sha256 value="96134c48c3040f088594528f2119c34f64914ac3374e6673ddcf8f396e5ffea1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-retain-android" version="1.10.1">
- <artifact name="runtime-retain-android-1.10.1.module">
- <sha256 value="1a0217ba85151a3fe8768f0303724298ad32d9bda4644353e21ab4febcfa9450" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-retain.aar">
- <sha256 value="6d9e8d72d8fecae226970d9b0048e1887fb1f43479ee607af9d3aebe329dbd9e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-retain-desktop" version="1.10.1">
- <artifact name="runtime-retain-desktop-1.10.1.jar">
- <sha256 value="463ee9c1e93d1b913458bfecc96d128a3574a802f41c8c9781d7320c3b55ed8b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-retain-desktop-1.10.1.module">
- <sha256 value="07019e42e9ae663dda7521f2d79413edffde3f254043c4b64e9819f5d3d33591" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-saveable" version="1.10.1">
- <artifact name="runtime-saveable-1.10.1.module">
- <sha256 value="7b549d8ea9c583240df193a3944660cb9d6615ae22c20dce6c4553a133923cf9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-saveable" version="1.7.0">
- <artifact name="runtime-saveable-1.7.0.module">
- <sha256 value="574f7a02d2aa493ed9a34a5f385672266e974bbeea350327454ea008bdd2ed97" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-saveable-android" version="1.10.1">
- <artifact name="runtime-saveable-android-1.10.1.module">
- <sha256 value="dbdf26e4041b28703a5c7059be6e9e6b1fd7fddcba0dd7af468686553c1d3c12" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-saveable.aar">
- <sha256 value="1074272cef1e17f3b339636e3663ae7a26b2ec91bbbf328f580c62b366d87744" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-saveable-android" version="1.7.0">
- <artifact name="runtime-saveable-android-1.7.0.module">
- <sha256 value="14f53cf2c80105c75eeb5bf19904439ad5dfa4327ddd944829dcb7283ada0960" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-saveable-desktop" version="1.10.1">
- <artifact name="runtime-saveable-desktop-1.10.1.jar">
- <sha256 value="ef24e24cc8c9c3b9871007fbdf589ed9aaaecf95979a66b7484806f9f0e24d91" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-saveable-desktop-1.10.1.module">
- <sha256 value="9c73a11f241e277ae285fcb0194ed55d10776d1fba7fa7ce66766233a8a09faf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.runtime" name="runtime-saveable-desktop" version="1.7.0">
- <artifact name="runtime-saveable-desktop-1.7.0.module">
- <sha256 value="1743735da40e39b36a2ac1593a10e9d385e8eec8142a67a72a7cb4b1eae9bda2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui" version="1.10.1">
- <artifact name="ui-1.10.1.module">
- <sha256 value="31911857b1dd3123b0bbf6b688a93f9d26e9379b59b60d6ca083c7edeb26dc0d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-android" version="1.10.1">
- <artifact name="ui-android-1.10.1.module">
- <sha256 value="f1ab6a98142b4b6d0e51e79099fd5a1895200097563c9d2fd37af37c04c93fb6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui.aar">
- <sha256 value="8aab713abd894bd9c7693fabd9015d1220b32a9a89142689ab71c05300aeec95" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-geometry" version="1.10.1">
- <artifact name="ui-geometry-1.10.1.module">
- <sha256 value="ffc4744f63acffbffb9e20f5c3a2d085bb73cd289c20eeb4b7c78f8e79b5385c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-geometry-android" version="1.10.1">
- <artifact name="ui-geometry-android-1.10.1.module">
- <sha256 value="2efa473688cb1ca4c1f2c0a1af41b82612a533514b33dd2f9e37d0a9bcaf3e31" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-geometry.aar">
- <sha256 value="ecb9b5a80a3ffcb8f2fb20a130f6a13f8e791680d5e72470eb3685b4cf2eef25" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-geometry-jvmstubs" version="1.10.1">
- <artifact name="ui-geometry-jvmstubs-1.10.1.jar">
- <sha256 value="240e51943c60b684a0a7b8a3586101e68a4ea690d9756881a5b67ebb0e6bf2b0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-geometry-jvmstubs-1.10.1.module">
- <sha256 value="5fa3f6f44550ce480297fdddaaf29f4222bb78677d39346b6e8b6347ab306218" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-graphics" version="1.10.1">
- <artifact name="ui-graphics-1.10.1.module">
- <sha256 value="9679b5bddb1f04369f82b7afd3094e61821c394fd274ab0c1e17ecdfbbc5eed0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-graphics" version="1.6.8">
- <artifact name="ui-graphics-1.6.8.module">
- <sha256 value="eb4d03821a8d2c7919743a8b80ba9f96186c6022bd7ecec02940bc1555abee20" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-graphics-android" version="1.10.1">
- <artifact name="ui-graphics-android-1.10.1.module">
- <sha256 value="a21222d41d8eb8d436650304e8b457dd732e0c13d37c1644f3c4bcd57e282943" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-graphics.aar">
- <sha256 value="58f2ff030a9f311dccc4cca651f8054d6d2895b075fb0b8f8d7f81366d9528bb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-graphics-android" version="1.6.8">
- <artifact name="ui-graphics-android-1.6.8.module">
- <sha256 value="39bece706d28b44b3fb2a3ae5b1508f3247ba35d5d405d96033378c98e615965" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-graphics-desktop" version="1.6.8">
- <artifact name="ui-graphics-desktop-1.6.8.module">
- <sha256 value="fa97e899602712311a5669bbf8db536ea06617fc1c5da87a640a155ddd8c3a0f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-graphics-jvmstubs" version="1.10.1">
- <artifact name="ui-graphics-jvmstubs-1.10.1.jar">
- <sha256 value="73aa4ba83d85f4e6cef816b96d87090b8645e4f643c7cfb8ba800d8cae9c497f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-graphics-jvmstubs-1.10.1.module">
- <sha256 value="b8675c356e04dbfcfc3dbf29ba99c8e79d6792be53a7516ef315fa605fbcb4a2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-jvmstubs" version="1.10.1">
- <artifact name="ui-jvmstubs-1.10.1.jar">
- <sha256 value="3db880b255ff5ce940f9b6f0d46d266ee6d86f1664c6c6c32572390f012f0468" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-jvmstubs-1.10.1.module">
- <sha256 value="2f448f7746de744ade65f66a7639c964a2517950e9a2d50d83b5ae4c563d6bcc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-test" version="1.10.1">
- <artifact name="ui-test-1.10.1.module">
- <sha256 value="1d76a0ac5c555701611a44a815cc6a63d9981b769b6a6ac05d1dd2c34b07aee5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-test-android" version="1.10.1">
- <artifact name="ui-test-android-1.10.1.module">
- <sha256 value="5fd9e8e0e79113050b112f8414622d93304f3879f79c6ce7cbade8d0713a3695" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-test.aar">
- <sha256 value="0458e156db9c78319f031b5d7a267d6af9e90a555101f716ea7aed7f97aabd2d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-test-junit4" version="1.10.1">
- <artifact name="ui-test-junit4-1.10.1.module">
- <sha256 value="24286bca49813d63f6ee7ced30b55a55171264d6f1f93bca10eb17a5f8f58e97" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-test-junit4-android" version="1.10.1">
- <artifact name="ui-test-junit4-android-1.10.1.module">
- <sha256 value="00f7eab1cb52af1a564b7d7841acd7157dcdb0b76f10aacbaf48aef98f1bbde6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-test-junit4.aar">
- <sha256 value="9fb5c94f418ff87d57ec357118c3463e0af864ad1cf5ab33e520584b103dc11c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-test-manifest" version="1.10.1">
- <artifact name="ui-test-manifest-1.10.1.aar">
- <sha256 value="c95e300bae7955be0b5c52d3a4a0f71a91f0d3d44809fe9f67c9c7c98165b3f8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-test-manifest-1.10.1.module">
- <sha256 value="602a2981e77325132a2432036e10771de89529c3388f5c94b5af60464d9ae3f9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text" version="1.10.1">
- <artifact name="ui-text-1.10.1.module">
- <sha256 value="7756b5c214c7b60e8d3e6656e9fc1b18850d0e6e8cb55b6a28063853a4bf5248" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text" version="1.6.8">
- <artifact name="ui-text-1.6.8.module">
- <sha256 value="0fae7dc013e91f4792b34b13b36416684cd1750cbb360e498d09e79bd7ce4af7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text" version="1.8.1">
- <artifact name="ui-text-1.8.1.module">
- <sha256 value="01f8d932c3ccf6a2e744f54f8c8aaf3298d64a5844f49b44295ff24e1d29fbda" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text-android" version="1.10.1">
- <artifact name="ui-text-android-1.10.1.module">
- <sha256 value="8f9ab92e51851e6fc4f8526a33232d8808a3bb11b9c6ed9b36a05f9111c12a8a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-text.aar">
- <sha256 value="15b1a15ae2a07bb47d621c126867deb4c3441dab0effbad941452097540b2648" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text-android" version="1.6.8">
- <artifact name="ui-text-android-1.6.8.module">
- <sha256 value="31c5457679534b6bdeaffa0071266614f6fb9af0b7119928427eb2fb00ff6748" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text-desktop" version="1.6.8">
- <artifact name="ui-text-desktop-1.6.8.module">
- <sha256 value="2a1b6730f557edeb9464aad73f46739df1139c0105c6efd5161c900397255985" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-text-jvmstubs" version="1.10.1">
- <artifact name="ui-text-jvmstubs-1.10.1.jar">
- <sha256 value="610b6f9953f944a6152ba610a5ffa1290a3c1b535f094721f2641525d2bb893b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-text-jvmstubs-1.10.1.module">
- <sha256 value="e246e664e30f0b3534139e7bc17eaacf2460f1a42f246f22b2090c8c7092d326" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling" version="1.10.1">
- <artifact name="ui-tooling-1.10.1.module">
- <sha256 value="45d388a807d216418d66072c1c0044b63be3b2ee97cb4411280e2e98c84c8111" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-android" version="1.10.1">
- <artifact name="ui-tooling-android-1.10.1.module">
- <sha256 value="d56d42a6fcc4116b95ca32bcc98485ed1ff7bdd1d6850e260c4289ed803b8f29" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-tooling.aar">
- <sha256 value="70af288e487023e9cf59099553f594da4613dce1fc24216c99e160a4c9d1b86c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-data" version="1.10.1">
- <artifact name="ui-tooling-data-1.10.1.module">
- <sha256 value="de6c570e31f405246b7121f408cc081be71a00c91e674bf7a5f70fea1c59dd11" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-data-android" version="1.10.1">
- <artifact name="ui-tooling-data-android-1.10.1.module">
- <sha256 value="7fb7f82865ca5461962c5b3da8eac6c0545437858282d827d07efcff85b7b48e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-tooling-data.aar">
- <sha256 value="24660d7f7cab8c0e90ce78fc4ccd715dcac12e9dffc7ef3792d168f0023f471b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-data-jvmstubs" version="1.10.1">
- <artifact name="ui-tooling-data-jvmstubs-1.10.1.jar">
- <sha256 value="7841df35ea79b9f9a10ec9c62b5035e95c392ce96dff24528d826c47e35e6cf6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-tooling-data-jvmstubs-1.10.1.module">
- <sha256 value="e436b1e7ce7c996cf3e82e043840024cbc49ba023f60b5b45d0bbc99096c0007" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-jvmstubs" version="1.10.1">
- <artifact name="ui-tooling-jvmstubs-1.10.1.jar">
- <sha256 value="d0ecb5dda9df8a6abb393b85d5ea35bf597a73a6f021990b92022219cefbf46c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-tooling-jvmstubs-1.10.1.module">
- <sha256 value="d88bbf50f58bed341c3c241eb34fce96b42eac6cc40bee509084bd45361fa121" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-preview" version="1.10.1">
- <artifact name="ui-tooling-preview-1.10.1.module">
- <sha256 value="6270c20c3d84e869406c9f2f96ed165707467c66632d9b9c3d204c38fb3aff15" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-preview-android" version="1.10.1">
- <artifact name="ui-tooling-preview-android-1.10.1.module">
- <sha256 value="934ca16159a1b478d8804fb406ceea13f5f63ff0ee484608b7d8bc7b85289938" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-tooling-preview.aar">
- <sha256 value="d04d5e0710861f698a184acc996bc0808b4dcf27fe2ab8e418d6852b38bbc399" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-tooling-preview-jvmstubs" version="1.10.1">
- <artifact name="ui-tooling-preview-jvmstubs-1.10.1.jar">
- <sha256 value="86ad4caea887474750a06f289e0cd16af988a2daa2705110f0cc9f6b5ed2cd1f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-tooling-preview-jvmstubs-1.10.1.module">
- <sha256 value="455450d82eae38571fd951322d86813afe6385be19c0d5e1f81d28f0837ae04c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-unit" version="1.10.1">
- <artifact name="ui-unit-1.10.1.module">
- <sha256 value="11da243fd10156fcff2ddcb51171f223e06d71896bf4b442239f2cc8d90c1b46" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-unit" version="1.7.2">
- <artifact name="ui-unit-1.7.2.module">
- <sha256 value="d67c73d878486c33c5b0b5a60187558687052605223beaef2643b926bdfbdde8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-unit-android" version="1.10.1">
- <artifact name="ui-unit-android-1.10.1.module">
- <sha256 value="7769c2d483f3f288aaab9d9415e4f29784b1035316b8a3e201f0976f71043032" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-unit.aar">
- <sha256 value="de674e778cc0d757ff36fd26dbf65301c9cb02b36716ed7e4ba78ab63a7f9773" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-unit-jvmstubs" version="1.10.1">
- <artifact name="ui-unit-jvmstubs-1.10.1.jar">
- <sha256 value="17ecb11065f561cd1c6aaec63bce3f7d3d9945856e81cab9f9ce00ad3e82d769" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-unit-jvmstubs-1.10.1.module">
- <sha256 value="f4b127a8e78bdcca3f17eb105aa0dc09f66bfadc97f2aa9b4962bccfad601c1f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-util" version="1.10.1">
- <artifact name="ui-util-1.10.1.module">
- <sha256 value="70948fe2af2803035ec1f6782997a2feb53ad863d174cd09607c71158a764744" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-util" version="1.6.8">
- <artifact name="ui-util-1.6.8.module">
- <sha256 value="c91b6fe99cd05baae7c6858dc0d52dd643c9ce3edf15308b51b6c6e6bb22873c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-util" version="1.8.1">
- <artifact name="ui-util-1.8.1.module">
- <sha256 value="7f9dbf2390cd0113f67f0ebfb4606f69c4f1fc67d8912c1c921c88050ae763e2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-util-android" version="1.10.1">
- <artifact name="ui-util-android-1.10.1.module">
- <sha256 value="0e3a6c377f9f1bce0732d7df0ba4704b1031d90ce60b39b61e7b95091a3ce1dc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-util.aar">
- <sha256 value="81cfe0e26b9c494772e1bad5a617ac8c2342226ef373f51507075fb932f0df12" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-util-android" version="1.6.8">
- <artifact name="ui-util-android-1.6.8.module">
- <sha256 value="c6fccb2b21c7187a0905c5b667939680c8996b7cbe0c33a8c8a477a2f6b5e53c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.compose.ui" name="ui-util-jvmstubs" version="1.10.1">
- <artifact name="ui-util-jvmstubs-1.10.1.jar">
- <sha256 value="427c413f27ea49926ef453eefa6f8f14d802e866dd1ec742e31ebb2e41639f36" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-util-jvmstubs-1.10.1.module">
- <sha256 value="cc5da985b18026bd4e617c84321c69e694bc1ea7a68cde36f251007e53c53584" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.concurrent" name="concurrent-futures" version="1.1.0">
- <artifact name="concurrent-futures-1.1.0.jar">
- <sha256 value="0ce067c514a0d1049d1bebdf709e344ed3266fe9744275682937cdcb13334e9e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="concurrent-futures-1.1.0.module">
- <sha256 value="77639a0b051e22510bad93affcea0ebd781ef124bf9b7621a95749937bcfcdfd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.concurrent" name="concurrent-futures" version="1.2.0">
- <artifact name="concurrent-futures-1.2.0.jar">
- <sha256 value="4810315a798690b5d3bb40c92bcd41c045fd2c36bbfc50b27cbac3d6a0eda190" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="concurrent-futures-1.2.0.module">
- <sha256 value="afd7094d3a07422be2e991bc87048542ae9724a5c42bd54b5cae3029c7970a1d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.concurrent" name="concurrent-futures-ktx" version="1.1.0">
- <artifact name="concurrent-futures-ktx-1.1.0.jar">
- <sha256 value="1968bf52039e38636aa6f114cd17d7256919d1e8997417716fef9d1da1f24d85" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="concurrent-futures-ktx-1.1.0.module">
- <sha256 value="69b79724566d49140846700690b8d2165231c577e93e66726a443e8f976bbe19" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.concurrent" name="concurrent-futures-ktx" version="1.2.0">
- <artifact name="concurrent-futures-ktx-1.2.0.jar">
- <sha256 value="e1f3e17bb4358ccd6c77ca45f70635c9aba237261f19eaa4f64a0218c00e2a3e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="concurrent-futures-ktx-1.2.0.module">
- <sha256 value="823f469acd984adfd30b3d0a577eb4f7796a03742a526ef70c1583b594b43b80" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.constraintlayout" name="constraintlayout-compose" version="1.1.1">
- <artifact name="constraintlayout-compose-1.1.1.module">
- <sha256 value="0e855b3cf7210648017ddaa17e7d133e84de9111f52536d8056d89e3b6ebbe5e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.constraintlayout" name="constraintlayout-compose-android" version="1.1.1">
- <artifact name="constraintlayout-compose-android-1.1.1.module">
- <sha256 value="b55be08a931554e1976ca415958ee90dc72cde5c206f991d3818756895675b94" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="constraintlayout-compose-release.aar">
- <sha256 value="08f8d883041a10d32e65f938fc4cc198b15fd219bb082142038981c97aaebfd4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.constraintlayout" name="constraintlayout-core" version="1.1.1">
- <artifact name="constraintlayout-core-1.1.1.jar">
- <sha256 value="3c2054328328831eb6e69b4014f6ef9faa117fd4b811929f3a91d3db375f2c02" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="constraintlayout-core-1.1.1.module">
- <sha256 value="d4ac5714d051734c2087a482a7dcd4fcc0b7f9e011c81d2cddf4b0f94580e30b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core" version="1.13.0">
- <artifact name="core-1.13.0.module">
- <sha256 value="2e0e6e5c1205b7462a0c5c3e32b58c2e525435812ed89946c7be6737493b51e3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core" version="1.15.0">
- <artifact name="core-1.15.0.module">
- <sha256 value="e8a6c386e1765d870012fed2221173d4a2e8d2fd5aec732c51afb4a9f4684519" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core" version="1.16.0">
- <artifact name="core-1.16.0.aar">
- <sha256 value="6bf03d39dbe3744acce227d3b697374c3625aae1025fbec8ad9fd7bd58bce431" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-1.16.0.module">
- <sha256 value="4ab4a3b0bc1664e3a2c60dec699af635778e15c6ee373971690948f073dd721e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core" version="1.17.0">
- <artifact name="core-1.17.0.aar">
- <sha256 value="e1bd22bbcf5cee3a992dedb7d2d3c3b31c9f761c01e56d00ea443c8aaa981182" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-1.17.0.module">
- <sha256 value="6006fde98c6fa98a9180b940bb44971aa5c9243e39f947ad6caddf386fc9cfea" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core" version="1.9.0">
- <artifact name="core-1.9.0.module">
- <sha256 value="8674ade1d12962469dd2d1e6edc03b465f20d180b0840a129bc40b351e8651d1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core-ktx" version="1.13.0">
- <artifact name="core-ktx-1.13.0.module">
- <sha256 value="a3e6a0692e05fd59e6ac380715ed72b325c625a3627646c69d108bdcddc4260f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core-ktx" version="1.16.0">
- <artifact name="core-ktx-1.16.0.aar">
- <sha256 value="1766dbd82f64a12dcd359ecb6f15f3cf35db4d66d22961a7c51b2ffc6468314c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-ktx-1.16.0.module">
- <sha256 value="89fb92ca127594cdcd11c5efb5ab0e8eb23466bc41b8df7579514d2fef6e1281" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core-ktx" version="1.17.0">
- <artifact name="core-ktx-1.17.0.aar">
- <sha256 value="4d23190b8623b8abb3c5247a0a7727eca347062d026335c427a09e82711b15f8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-ktx-1.17.0.module">
- <sha256 value="ed7bcadc39c62d00daee44f4a78a23ca83fbc399f22fa90ace4e859b415c9048" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core-splashscreen" version="1.2.0">
- <artifact name="core-splashscreen-1.2.0.aar">
- <sha256 value="5ace865c4eb7e0f24369790d2c76eddafd0dbb1ebea3288f55c18d9605ea0ee0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-splashscreen-1.2.0.module">
- <sha256 value="1c88106406cdfa69d3b0dbd69e5aef4c376a405999c8e8dbbead2c7281f4abb2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.core" name="core-viewtree" version="1.0.0">
- <artifact name="core-viewtree-1.0.0.aar">
- <sha256 value="dc1b678d58ebcf2bfa1587be68ff826694ce3d221251b9ef30d4d4b36297e6de" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-viewtree-1.0.0.module">
- <sha256 value="11386cfa46cbbfddb6a4059f14354c00691cf65d3d63c3618818a83326ef3c7f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.credentials" name="credentials" version="1.5.0">
- <artifact name="credentials-1.5.0.aar">
- <sha256 value="00162f3d0244a42a8b9527f3cc6fb3bf36d655960c65b979bef250e5116f1453" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="credentials-1.5.0.module">
- <sha256 value="8c66e6e20db02c8e8fc2e795e2f7ecb5340d76e87f42f4d49e512e45be140511" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.cursoradapter" name="cursoradapter" version="1.0.0">
- <artifact name="cursoradapter-1.0.0.aar">
- <sha256 value="a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.customview" name="customview" version="1.0.0">
- <artifact name="customview-1.0.0.aar">
- <sha256 value="20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.customview" name="customview-poolingcontainer" version="1.0.0">
- <artifact name="customview-poolingcontainer-1.0.0.aar">
- <sha256 value="3584102fc49bf399c56e3b7be4bfe12000c46112320cd8cf85cc0a8f93f3e752" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="customview-poolingcontainer-1.0.0.module">
- <sha256 value="903034d5152dd2e0162b1468ea25a22e1ca384006b3d282d5a143cc760321a01" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.databinding" name="databinding-common" version="8.13.1">
- <artifact name="databinding-common-8.13.1.jar">
- <sha256 value="66cab82639dac0f6c2433464c093b074d608c4bb887ec38a9b8bc4ac98126732" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.databinding" name="databinding-common" version="8.13.2">
- <artifact name="databinding-common-8.13.2.jar">
- <sha256 value="66cab82639dac0f6c2433464c093b074d608c4bb887ec38a9b8bc4ac98126732" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.databinding" name="databinding-compiler-common" version="8.13.1">
- <artifact name="databinding-compiler-common-8.13.1.jar">
- <sha256 value="b24d86eb25e78c88834fba1fa3bc87f4e48b534cf74ba929cfcc37713f42ae6c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.databinding" name="databinding-compiler-common" version="8.13.2">
- <artifact name="databinding-compiler-common-8.13.2.jar">
- <sha256 value="a2c3fff0c39ac72c4c21c415017066c263efe170d8aeb9d339a3eca7c0d79f1e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore" version="1.2.0">
- <artifact name="datastore-1.2.0.module">
- <sha256 value="7b17c30c92b82b2f89f65fbbd21965bf811b5a40ca58e2b16f4dafd62e0e3808" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-android" version="1.2.0">
- <artifact name="datastore-android-1.2.0.module">
- <sha256 value="53f900550b4756761060fef8e4192c4ea792b55df16b1d82ca7fb3a6357df7e4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="datastore.aar">
- <sha256 value="db3e04ca1ee9abd7748000116d460ca60ad6ed2e4d2cd5bae6821e7d9b269b9b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-core" version="1.2.0">
- <artifact name="datastore-core-1.2.0.module">
- <sha256 value="f813a54fd0a40a9a1e2346635b695b9fe56013ee2462bb07e86bff0b2c17022d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-core-android" version="1.2.0">
- <artifact name="datastore-core-android-1.2.0.module">
- <sha256 value="15435e67c669fabc2fc52b75c38f48b6876696d975307de95096cc6817b8c7d3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="datastore-core.aar">
- <sha256 value="f30eba14b55a924db7ced577b9c38eb4b6701081002a495388005efda07c36d5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-core-jvm" version="1.2.0">
- <artifact name="datastore-core-jvm-1.2.0.jar">
- <sha256 value="dd2d080fc16eb0bea1e02e5551d43496fb9e5177855c5b72c6aaf6e16ab1c5c1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="datastore-core-jvm-1.2.0.module">
- <sha256 value="0eb6d0f12e4899c9d7ddffd6bc2596a131a736cd1745a2b3a528f99ff6a3e062" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-core-okio" version="1.2.0">
- <artifact name="datastore-core-okio-1.2.0.module">
- <sha256 value="a8ea09328d33223e5685fb420b7506a8e7ba091dc1db10829c94afed4f25769b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-core-okio-jvm" version="1.2.0">
- <artifact name="datastore-core-okio-jvm-1.2.0.jar">
- <sha256 value="7ade6239a67674834f5724428e772c4176229ed30be253ac7e52082a2907ee05" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="datastore-core-okio-jvm-1.2.0.module">
- <sha256 value="0adda8049f038f862eb4f7e6a78cbff5ec6f66e92faa3702d822504d5acaef8c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.datastore" name="datastore-jvm" version="1.2.0">
- <artifact name="datastore-jvm-1.2.0.jar">
- <sha256 value="1ce3073ce9cf1b21afdef04b3116ea002709ec2cfd0f57e0652ef90526345220" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="datastore-jvm-1.2.0.module">
- <sha256 value="df2f60cb454d6d4fa6581c2d5baf340e74ca6ad91838c411186eaeb023dd4816" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.documentfile" name="documentfile" version="1.0.0">
- <artifact name="documentfile-1.0.0.aar">
- <sha256 value="865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.drawerlayout" name="drawerlayout" version="1.0.0">
- <artifact name="drawerlayout-1.0.0.aar">
- <sha256 value="9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.dynamicanimation" name="dynamicanimation" version="1.0.0">
- <artifact name="dynamicanimation-1.0.0.aar">
- <sha256 value="ce005162c229bf308d2d5b12fb6cad0874069cbbeaccee63a8193bd08d40de04" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.emoji2" name="emoji2" version="1.2.0">
- <artifact name="emoji2-1.2.0.module">
- <sha256 value="9d1996cca03777baa1f27cd15531db983a633dae37b90f85bd53501acb56699d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.emoji2" name="emoji2" version="1.3.0">
- <artifact name="emoji2-1.3.0.aar">
- <sha256 value="2bf23818b23a996ddaa1b5fd5bb32129daff6bbb2dce15166e2fccdd2010b1a5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="emoji2-1.3.0.module">
- <sha256 value="ddc851edba65fd15a7a1bc3ad18648e2f732dd5ad8ef3602224bce0647f5b4d1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.emoji2" name="emoji2" version="1.4.0">
- <artifact name="emoji2-1.4.0.aar">
- <sha256 value="433febd3434a45667176c76a64f3f205ca6335a6b544c5b5d57f25a38a375242" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="emoji2-1.4.0.module">
- <sha256 value="92be16cccb757f807bddd92f1fca95a038a810ccca051c4149c11682478954b8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.emoji2" name="emoji2-views-helper" version="1.2.0">
- <artifact name="emoji2-views-helper-1.2.0.module">
- <sha256 value="a3a9db581abf1787b01ff15c40f059530e8e64f3937caa2d788f42eb39893268" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.emoji2" name="emoji2-views-helper" version="1.3.0">
- <artifact name="emoji2-views-helper-1.3.0.aar">
- <sha256 value="9a1351295a4f739df0efe8344adaa9afb34856c3af584d4a9afbec105a45b90b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="emoji2-views-helper-1.3.0.module">
- <sha256 value="09974bb5ef9780de9d56715d71171a35c78fb2e17fd865773b0c83a3acac039c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.emoji2" name="emoji2-views-helper" version="1.4.0">
- <artifact name="emoji2-views-helper-1.4.0.aar">
- <sha256 value="ed5d3ed772a5fbf0d570f7526f585cd61a180e60f9372584c328a68e2cff3375" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="emoji2-views-helper-1.4.0.module">
- <sha256 value="248aa276fdba8116e656233cac3f3fd541444df2305de93e6813795fcd0ba26a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.fragment" name="fragment" version="1.5.4">
- <artifact name="fragment-1.5.4.aar">
- <sha256 value="bc3c2431dda42e94bb9511c587eae890d276e4aafe393a8da7b00169186dafde" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="fragment-1.5.4.module">
- <sha256 value="af3260808dceb6532efc2d7215be45872c24a699dada7d77bff738ce3b85a7f0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.fragment" name="fragment" version="1.8.9">
- <artifact name="fragment-1.8.9.aar">
- <sha256 value="12de5b89ab6641c1d8da82b63dc816652622b06d2781b949b6fbd2dff9fac492" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="fragment-1.8.9.module">
- <sha256 value="67af03fb14d0e2bae2a7c62185d3a5607a915ed1fc494952afb165cd12b00b7c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.fragment" name="fragment-ktx" version="1.8.9">
- <artifact name="fragment-ktx-1.8.9.aar">
- <sha256 value="078ad5877b04f4bf7350198579d81f9c8796fa20e46b4ade3f231a370456c5ad" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="fragment-ktx-1.8.9.module">
- <sha256 value="4e66c1b0f47b94d3e0dc41607d3af6b292996e98f065debedcbf8c791400081f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.graphics" name="graphics-path" version="1.0.1">
- <artifact name="graphics-path-1.0.1.aar">
- <sha256 value="8ca4032b6d79b351f0b59ad4b580eddbb9423e1652f7c958830687f1eee2ec03" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="graphics-path-1.0.1.module">
- <sha256 value="3f6fc7e96f8a1fd21045da7f2e332aef528aa1f56b6455fb8f25043aafa0e1b8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.interpolator" name="interpolator" version="1.0.0">
- <artifact name="interpolator-1.0.0.aar">
- <sha256 value="33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.legacy" name="legacy-support-core-utils" version="1.0.0">
- <artifact name="legacy-support-core-utils-1.0.0.aar">
- <sha256 value="a7edcf01d5b52b3034073027bc4775b78a4764bb6202bb91d61c829add8dd1c7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.10.0">
- <artifact name="lifecycle-common-2.10.0.module">
- <sha256 value="5d1247b1edfbdc9ddedcbe525c9d2629567b1c538cb7a9c620cd044a124b5c73" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.3.1">
- <artifact name="lifecycle-common-2.3.1.jar">
- <sha256 value="15848fb56db32f4c7cdc72b324003183d52a4884d6bf09be708ac7f587d139b5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-common-2.3.1.module">
- <sha256 value="5fb7c8514d8c56cada5e29ef89dc0289e71942ab4cb0b2e6dca137b9dcb8fdd4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.6.1">
- <artifact name="lifecycle-common-2.6.1.module">
- <sha256 value="93747a9145cb36bc71005f598ede32e2b1149ade5a16e62b0e4969345bc62d85" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.6.2">
- <artifact name="lifecycle-common-2.6.2.module">
- <sha256 value="0fa7f28f5cff8a406a4f7870b243cb0d6d7a7c20faa7a2becaff5907ae12f9cc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.9.0">
- <artifact name="lifecycle-common-2.9.0.module">
- <sha256 value="67a89ee16389d5eb31792d8ceaccc3cf200900c14c20bb947536e326c16ce0ad" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.9.2">
- <artifact name="lifecycle-common-2.9.2.module">
- <sha256 value="4833f88e39a1bd264ed5ea18722023ebe51e74b19a0411246aa3d740e16e9081" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common" version="2.9.4">
- <artifact name="lifecycle-common-2.9.4.module">
- <sha256 value="c578bd755ea46d7a77811309a3539538e2d7fb86a05fc2ad81c655ecf7dff7a4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-java8" version="2.10.0">
- <artifact name="lifecycle-common-java8-2.10.0.jar">
- <sha256 value="497dd84de9f2fd46324f25f9a3af032d3a23d087e87af515c4b19435f6d6a651" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-common-java8-2.10.0.module">
- <sha256 value="45328f75ac077a36381dc53d68c05288ba198137cabc41fdd4d24dc447eeddba" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-java8" version="2.6.1">
- <artifact name="lifecycle-common-java8-2.6.1.module">
- <sha256 value="1beb0b9fffb630a005deca1d3583d2acbec8685d6de809a3a6e0e433f418b6c3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-java8" version="2.9.2">
- <artifact name="lifecycle-common-java8-2.9.2.module">
- <sha256 value="61c81ccc37c6eacf8729bce38a3b7f699ea818a7d9cb5d584bd94e7de4b3dbe1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-java8" version="2.9.4">
- <artifact name="lifecycle-common-java8-2.9.4.jar">
- <sha256 value="497dd84de9f2fd46324f25f9a3af032d3a23d087e87af515c4b19435f6d6a651" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-common-java8-2.9.4.module">
- <sha256 value="07bab59d012bc806f03debd192f93e312d72bca56b25178234a21a6812daf041" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-jvm" version="2.10.0">
- <artifact name="lifecycle-common-jvm-2.10.0.jar">
- <sha256 value="15943082d87bcd78830398fa377f2c8b12643de290d0906ed8e49a2d335ddb54" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-common-jvm-2.10.0.module">
- <sha256 value="93d9016b3afd03639a407f51a119d5ca4dae988de376c380f0e51dd9d88e686d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-jvm" version="2.9.0">
- <artifact name="lifecycle-common-jvm-2.9.0.module">
- <sha256 value="73fad6c31db3b94608ac90854736012c9c12cf3f42fa1438997280baac0520a6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-jvm" version="2.9.2">
- <artifact name="lifecycle-common-jvm-2.9.2.module">
- <sha256 value="72369df9266203a42a7b38c4e49f67e6e7962f9e48e228627ed7ef466b051481" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-common-jvm" version="2.9.4">
- <artifact name="lifecycle-common-jvm-2.9.4.jar">
- <sha256 value="37d89b2101f074ac6c260917dabb185607645ee200aa3018c7c5bde70edcf184" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-common-jvm-2.9.4.module">
- <sha256 value="1d1837f3942b33ea30aa2301fdcea2639408a0fd6fd4368c22478fa8153aebbf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata" version="2.10.0">
- <artifact name="lifecycle-livedata-2.10.0.aar">
- <sha256 value="3e8c009fc88da1c52e4ed05a81269d5ac9bd405046f300307f5e3a17e201a6df" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-livedata-2.10.0.module">
- <sha256 value="3a6d473b3104c983501de4883d6ba7684dc83330c460ef958390a8265b078310" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata" version="2.6.1">
- <artifact name="lifecycle-livedata-2.6.1.module">
- <sha256 value="e2659e87e890b52b66f300471828b387a205e5387a392713190166f399ecf641" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata" version="2.6.2">
- <artifact name="lifecycle-livedata-2.6.2.module">
- <sha256 value="19a287b46d1b1ffe297bee0df7dee5183aeba95600ec0de8742adeb5b67c8bab" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata" version="2.9.2">
- <artifact name="lifecycle-livedata-2.9.2.module">
- <sha256 value="2975f3a75db5a555fed0abb7a3c6606e30be059784a870b254b32a62abd9be98" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata" version="2.9.4">
- <artifact name="lifecycle-livedata-2.9.4.aar">
- <sha256 value="f240c2c94a96d4a5eae5d379c2a8589d426a33b989d83ae9f0e01f69502c0181" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-livedata-2.9.4.module">
- <sha256 value="9a8153a07ae2edd8b7919a34ad9195847005eaed69fa3e5060636208a728c312" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core" version="2.10.0">
- <artifact name="lifecycle-livedata-core-2.10.0.aar">
- <sha256 value="12dd61a9843ccebb4547d3ebe2f6d030ca8f6988d22f8fad19c0af93b4a97e95" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-livedata-core-2.10.0.module">
- <sha256 value="1d83bd5f3ccc1298eda25b9ed128e8c187f830e7f3af8d0294be688abb03c35d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core" version="2.5.1">
- <artifact name="lifecycle-livedata-core-2.5.1.module">
- <sha256 value="3f388e9e078901970c2bfcfc02fecae948de4b46be5211919ae07d012ca2980d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core" version="2.6.1">
- <artifact name="lifecycle-livedata-core-2.6.1.module">
- <sha256 value="e9c0dc3f0ac54419c0cfed8ff5cecb82943a7c58f7a54169f0d849b2c60a3552" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core" version="2.6.2">
- <artifact name="lifecycle-livedata-core-2.6.2.module">
- <sha256 value="527d0e1ac467d1f47cc20ed7c30db170217299fabb868154cf5d1765e4e4dad9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core" version="2.9.2">
- <artifact name="lifecycle-livedata-core-2.9.2.module">
- <sha256 value="d945acad1c04d31a8461b20f8a9ba04a1ad4607c3414d3af2ab477a9d481dd00" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core" version="2.9.4">
- <artifact name="lifecycle-livedata-core-2.9.4.aar">
- <sha256 value="ea866f0c379d1f92837994010ab5ac0a5d5499dbab521efc71b3bc2b497d6ba4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-livedata-core-2.9.4.module">
- <sha256 value="dee60656abb194da028d93b9bd652b4b164cdab35a000b475d63303c5d00994b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core-ktx" version="2.10.0">
- <artifact name="lifecycle-livedata-core-ktx-2.10.0.aar">
- <sha256 value="5f18429749a183e19178d8665ae42bf7b6310b50358ae9e0e0cc452afd6e0bc3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-livedata-core-ktx-2.10.0.module">
- <sha256 value="2b28a03201f3077b2ae3e2853f983944afdf518b02939acfc9fe9e5fcab87275" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core-ktx" version="2.9.2">
- <artifact name="lifecycle-livedata-core-ktx-2.9.2.module">
- <sha256 value="640a62efb9df85f2de02d747f3a5ddfd00143b768bb01a6ccacb64695ff8f9fd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-livedata-core-ktx" version="2.9.4">
- <artifact name="lifecycle-livedata-core-ktx-2.9.4.aar">
- <sha256 value="f55b7a8d433e9b8163154ccaa42fa2be55c70cd1ede5eeea521a4b4b884dd4fe" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-livedata-core-ktx-2.9.4.module">
- <sha256 value="0a940e79e256cc7fbec69d8eb35362ac79599ab4b21ab4846aba64ba4960a192" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-process" version="2.10.0">
- <artifact name="lifecycle-process-2.10.0.aar">
- <sha256 value="10bb5bb12773dca11d8343c014cfd17dfb40967d6ece37e8f15d04d8ceb0775c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-process-2.10.0.module">
- <sha256 value="c68aec7cc1d0d19f51328e7d28c91dcfb4ac8e1a9843cfd6181e1aa94ae19c9b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-process" version="2.4.1">
- <artifact name="lifecycle-process-2.4.1.module">
- <sha256 value="e3aae3ed04b4744ff31452e98fd299e3adfd28d3b5723661d9678b92fa09ceb4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-process" version="2.6.1">
- <artifact name="lifecycle-process-2.6.1.module">
- <sha256 value="58c9e27371ccf7a22a233f44926d348c9d07e78c41a56588a4265ff6ae76645a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-process" version="2.6.2">
- <artifact name="lifecycle-process-2.6.2.module">
- <sha256 value="d927d41903a2ff02ba1b9fefa4c25cb58187b1ce3a054945f43ce6a29918a3f3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-process" version="2.9.2">
- <artifact name="lifecycle-process-2.9.2.module">
- <sha256 value="b0b493ecdc35e2f99ef5fde534060c3d0a9eef4606a1cc4c78c63ea793637b45" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-process" version="2.9.4">
- <artifact name="lifecycle-process-2.9.4.aar">
- <sha256 value="4784b8d083c211e076d9115bfa1737f7e0f62b553e801cf50caa4400e34a95d6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-process-2.9.4.module">
- <sha256 value="f7cd5051bacb3f4b8ec7dc40ac6342a61eea1147592dda9f364a24cf882c7ddb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime" version="2.10.0">
- <artifact name="lifecycle-runtime-2.10.0.module">
- <sha256 value="da805fa017a4acce13f501469a75a3f306248eebc58f5bcc28019b0015dfba65" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime" version="2.3.1">
- <artifact name="lifecycle-runtime-2.3.1.module">
- <sha256 value="2a7b90e5049b674b36bccfd68677b3a0b3178b3f7c2ef7ddf618d3895598c4ce" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime" version="2.6.1">
- <artifact name="lifecycle-runtime-2.6.1.module">
- <sha256 value="a4cbb01a42d07047bd8d870017c96a1b0b7b4673320e86b66317a13be2ec10c7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime" version="2.6.2">
- <artifact name="lifecycle-runtime-2.6.2.module">
- <sha256 value="ea0131846abe1fe9dea59ac6dfe1f0fb9d8b6d600c9eff9a1fd4ad5ee5e7cbc7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime" version="2.9.2">
- <artifact name="lifecycle-runtime-2.9.2.module">
- <sha256 value="4edd85fb1a176ca7e83b15b4765b5cee1a934aa317e41710fa0ac13341d7383a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime" version="2.9.4">
- <artifact name="lifecycle-runtime-2.9.4.module">
- <sha256 value="dcbc5b5b50666e84258a74bfd8e514918c593a4ffcef0c0358562a02fbd80c58" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-android" version="2.10.0">
- <artifact name="lifecycle-runtime-android-2.10.0.module">
- <sha256 value="749b6e7a4422914581e0795d9d48fb4f96daa3fee97747421ff4234860185f47" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime.aar">
- <sha256 value="2193a1573d623f37b20c7d27d1a8f903a72f651cc6f32e5794f85dda744fee75" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-android" version="2.9.2">
- <artifact name="lifecycle-runtime-android-2.9.2.module">
- <sha256 value="43a5859db25f12e20a4456b7491042545355fe238d7c36c7a9fbec40b2ba15d9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-android" version="2.9.4">
- <artifact name="lifecycle-runtime-android-2.9.4.module">
- <sha256 value="c7888e850c40fd059fb2c1ec5bf46e88313e9b5d5152133c385a1aafb8433f47" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-release.aar">
- <sha256 value="86f16a1330eb23600ba90d0334b3e1db38d3a30c8b1efcd92ca21aa85afa8173" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose" version="2.10.0">
- <artifact name="lifecycle-runtime-compose-2.10.0.module">
- <sha256 value="632ba85b243a0404f6f33ad6e7c996f7ba9a42f377db084734ae7a318eaa6ec8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose" version="2.8.7">
- <artifact name="lifecycle-runtime-compose-2.8.7.module">
- <sha256 value="cc98a8849d81dab3064bc9ff871e43e91b48e0ba7d521f7c99ba26afec25657c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose" version="2.9.0">
- <artifact name="lifecycle-runtime-compose-2.9.0.module">
- <sha256 value="53974619ca92981f4c935cbdb1c46c0c7f64108e66ade3cd085a6dfb2203a458" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose" version="2.9.2">
- <artifact name="lifecycle-runtime-compose-2.9.2.module">
- <sha256 value="d1972085e294acc109c2fc34bfbd94407fee76a848a1a8f7fe29b8d3efd5131f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose" version="2.9.4">
- <artifact name="lifecycle-runtime-compose-2.9.4.module">
- <sha256 value="27d864f40ca30b967b85daac6b917bbdaea637d63e123948c95045c21be58483" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose-android" version="2.10.0">
- <artifact name="lifecycle-runtime-compose-android-2.10.0.module">
- <sha256 value="a594f7eb93930fef52c2cbb194f8f41b2590679f9e66aec335954c451a2c08f8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-compose.aar">
- <sha256 value="46e996d526829596f6db4626169a967f056fde7103507ff596bcd177b73c3675" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose-android" version="2.8.7">
- <artifact name="lifecycle-runtime-compose-android-2.8.7.module">
- <sha256 value="c024a16694c8b5c41ec8ef0ede2365eb612f8a3da25017fdf2ff343029f33902" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose-android" version="2.9.0">
- <artifact name="lifecycle-runtime-compose-android-2.9.0.module">
- <sha256 value="7fc6dceef502c0132d8c5f5ec8ff2901e80eec40388f7d473c3c13f8d0427ccb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose-android" version="2.9.4">
- <artifact name="lifecycle-runtime-compose-android-2.9.4.module">
- <sha256 value="e087a2c2bdfe360497339335ba51dbcdd1503c0a7c9f4f8285db7023e0429439" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-compose-release.aar">
- <sha256 value="b6803f906a89fd85c77df343dd4aeeb349125ca79e12d55d68d4cf42f42231f6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-compose-desktop" version="2.10.0">
- <artifact name="lifecycle-runtime-compose-desktop-2.10.0.jar">
- <sha256 value="4d233eeecc6e2769a76442830c5fd1884057c36d0ce2745167193a10cc8976f8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-compose-desktop-2.10.0.module">
- <sha256 value="257b0bc6df73ad860e6b378b94890867964c7430da9c884a65f667cfe5cbdc10" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-desktop" version="2.10.0">
- <artifact name="lifecycle-runtime-desktop-2.10.0.jar">
- <sha256 value="6f70b76fb7a262f47b99317c23271c28a89ad18400547b4bfefbd2ef04500f90" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-desktop-2.10.0.module">
- <sha256 value="2eeef8084cf67129e199227a3fabacf8506f57faeecb0aab0f765d5c4e59040a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx" version="2.10.0">
- <artifact name="lifecycle-runtime-ktx-2.10.0.module">
- <sha256 value="556f15957376858b6e3abc08fb3df566ea5eb4067149253194bf2a049606db4e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx" version="2.6.1">
- <artifact name="lifecycle-runtime-ktx-2.6.1.module">
- <sha256 value="39854f32c9b010f652f4e5041ca4ce06981dcb6954128c1e8e1cc02e63ab185f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx" version="2.6.2">
- <artifact name="lifecycle-runtime-ktx-2.6.2.module">
- <sha256 value="3c9af03a3a543394e67ab599b727ba331e6f330a55829f6d52f63a8772f4cbdc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx" version="2.9.2">
- <artifact name="lifecycle-runtime-ktx-2.9.2.module">
- <sha256 value="fde76a7ceca66db49b1300faad7d2220760624059226909eabbfed1ef4cd78a4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx" version="2.9.4">
- <artifact name="lifecycle-runtime-ktx-2.9.4.module">
- <sha256 value="05e5788e0005d3aa33e2d65a5dcb51bdab06094a254c135b820316d64931abc7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx-android" version="2.10.0">
- <artifact name="lifecycle-runtime-ktx-android-2.10.0.module">
- <sha256 value="980a1be146cafa16ab3b1680991dde14b2077a4b13d5b31427cb98dc8930f24b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-ktx.aar">
- <sha256 value="871883703339f87284d232cb436e317c6f4af5612d92b43f27c6b13b92109fa7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx-android" version="2.9.2">
- <artifact name="lifecycle-runtime-ktx-android-2.9.2.module">
- <sha256 value="28f729748616381d49e909bda028561fa2d151131352e5d0e9864cf3cfb385f5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-runtime-ktx-android" version="2.9.4">
- <artifact name="lifecycle-runtime-ktx-android-2.9.4.module">
- <sha256 value="6a2070e9d9243bd3b5d5a108b9db5583bcc4c742b32efb45fe33f49429eb7193" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-ktx.aar">
- <sha256 value="970199c9ed1ac13d620aa8de7f8abbc28ce80653c3ce328d0ac2f15272b56e1b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-service" version="2.10.0">
- <artifact name="lifecycle-service-2.10.0.aar">
- <sha256 value="60bea13bbea42b6aa007e5a48c0b432c9b3dd05887482a43baa8f5a9042dc2e2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-service-2.10.0.module">
- <sha256 value="4f13973559bff5ea98e056556488c526a705df7776559d6551bfefaecf15a79a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel" version="2.10.0">
- <artifact name="lifecycle-viewmodel-2.10.0.aar">
- <sha256 value="4b809cf9eb7323d200504e95921feb777ff080215cadb8237742d5ed0ba5b792" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-2.10.0.module">
- <sha256 value="4fd71df733245c46e4b88e85b4a90b82c9af4a359ef31f2bdf250f93a02c7452" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel" version="2.3.1">
- <artifact name="lifecycle-viewmodel-2.3.1.module">
- <sha256 value="a531853dfe316c90b7466d24be94dbe60a60ef54a52c904c86381986202e51f4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel" version="2.6.1">
- <artifact name="lifecycle-viewmodel-2.6.1.module">
- <sha256 value="2b406faea5c12f2b8df4b7a60931f846648f2e1f4d78361e198d1184f19a4797" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel" version="2.9.0">
- <artifact name="lifecycle-viewmodel-2.9.0.module">
- <sha256 value="e8a90f3642f71d6db034598c77bcdfc3f76e7c5f6db2bb986962dd42c40cd888" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel" version="2.9.2">
- <artifact name="lifecycle-viewmodel-2.9.2.module">
- <sha256 value="b814fc0293df1ea37e19f206ad183703ff9bb254dd6daaef5e5e7d1f857fe18c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel" version="2.9.4">
- <artifact name="lifecycle-viewmodel-2.9.4.aar">
- <sha256 value="cab404b05d5faed209104a2aef14c0cbb316ab9fabe4a8f037b043e5d2f43435" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-2.9.4.module">
- <sha256 value="964d69d6b877296e8b79a77bb826ef5fb186aecaa7a1a7ff776fb2250c993006" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-android" version="2.10.0">
- <artifact name="lifecycle-viewmodel-android-2.10.0.module">
- <sha256 value="06b07a07ae17c7592a30c533c3d46a125fcb1bef096d7e6134e2420db2464d0a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel.aar">
- <sha256 value="9303287030027ca0b8cf98a748ddeb121ec1bfa1312c0069428e4765bbabce78" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-android" version="2.9.2">
- <artifact name="lifecycle-viewmodel-android-2.9.2.module">
- <sha256 value="d3b679a7f26a485561ed58573ff7ae0810fc616ee956f89ee48e49a50ccd8ddc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-android" version="2.9.4">
- <artifact name="lifecycle-viewmodel-android-2.9.4.module">
- <sha256 value="b637acdd8aab5348974661830874a7456bac341f43a0b281827cc6b0fcfc73c1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-release.aar">
- <sha256 value="4b236b2e504db5ca5d09334fef05aa8cdc31ee35a433c3aa4d0420efa9613332" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.10.0">
- <artifact name="lifecycle-viewmodel-compose-2.10.0.module">
- <sha256 value="27c1036d01cc82d0142b04e0d4d7db3c99100472a592beaf758bc2e8659f2ee7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.9.0">
- <artifact name="lifecycle-viewmodel-compose-2.9.0.module">
- <sha256 value="690cd4bd77dac0c984736c8e0b254d232189837a272fac9f7701710db59c630b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.9.2">
- <artifact name="lifecycle-viewmodel-compose-2.9.2.module">
- <sha256 value="adae2bf2b5966d9dd37eb7da69adb704cdca36d201e872f71b3f3b48ed0c2ff1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.9.4">
- <artifact name="lifecycle-viewmodel-compose-2.9.4.module">
- <sha256 value="3e6e2db0382a050e610bfe024fc812710e9bc9f7fc569bf8fb31a8e7002e37f4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose-android" version="2.10.0">
- <artifact name="lifecycle-viewmodel-compose-android-2.10.0.module">
- <sha256 value="552a254d62c5d9aa830bd79da2987208251e1c81afd93c3c2bffb026d42f45ca" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-compose.aar">
- <sha256 value="225904e54ad5154768630471e108b98e143c261df0c08380ff43ea7e832dad7e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose-android" version="2.9.0">
- <artifact name="lifecycle-viewmodel-compose-android-2.9.0.module">
- <sha256 value="0ab47afaead4893211d33210bdb56a2a49653f7ef9fb49ebe4ea7621e159ae8a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose-android" version="2.9.2">
- <artifact name="lifecycle-viewmodel-compose-android-2.9.2.module">
- <sha256 value="0ef6d99f989dd6cb2c5702a3452410f688ff0e9e5bdd5294880bd2d0db9ff2e1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose-android" version="2.9.4">
- <artifact name="lifecycle-viewmodel-compose-android-2.9.4.module">
- <sha256 value="eb59e629365b1b0aa4a635de45e79b1650c618a3e55acdfd87b5e9f05a6b9d79" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-compose-release.aar">
- <sha256 value="f7825a08ca661de84044b6891293084bea8fbcc84aa08d8c13a3c558fc5956c9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose-jvmstubs" version="2.10.0">
- <artifact name="lifecycle-viewmodel-compose-jvmstubs-2.10.0.jar">
- <sha256 value="e7a2558fe359d92d5ad455540589b25b2b5a9d77e4a3df7df26a139c08664c89" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-compose-jvmstubs-2.10.0.module">
- <sha256 value="9dfac7b9733b7aa0c334571548c74b0cf675daeb31125c4e5131a5e249c4c3e8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-desktop" version="2.10.0">
- <artifact name="lifecycle-viewmodel-desktop-2.10.0.jar">
- <sha256 value="e7c86a5e5c66fd41fd3cc9c9ad31a2997110b1a6380c441ba3f7b6b0b070e32b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-desktop-2.10.0.module">
- <sha256 value="cda319d7c9e32602859a72be81c0026e56d1797ef9ba67e9173e905d3f74774f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-ktx" version="2.10.0">
- <artifact name="lifecycle-viewmodel-ktx-2.10.0.aar">
- <sha256 value="54295ac86b67886dc0613e38f621c531995d0662005fc763e340e19a90994f84" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-ktx-2.10.0.module">
- <sha256 value="837bfdd848eefef77544fa289dbff4c428680dd9820641eadb841cc7a74c83f9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-ktx" version="2.9.2">
- <artifact name="lifecycle-viewmodel-ktx-2.9.2.module">
- <sha256 value="cb848bb672570563929a86ba6c836181f4a8a8842b138fa6768ebe012f5825e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-ktx" version="2.9.3">
- <artifact name="lifecycle-viewmodel-ktx-2.9.3.module">
- <sha256 value="931351330c4a4e4305b8a61fedc9c633685c4c00a188a143fc54e92ac63e89b4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-ktx" version="2.9.4">
- <artifact name="lifecycle-viewmodel-ktx-2.9.4.aar">
- <sha256 value="b7d58bb86bb8e2ccc607d1f8570e714810f7cfb3feba37d375ff1646383435a1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-ktx-2.9.4.module">
- <sha256 value="5631efeab797f79a1adba5df64b2f0cca54e08b428756df7630cb23b90098a67" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.10.0">
- <artifact name="lifecycle-viewmodel-savedstate-2.10.0.module">
- <sha256 value="50857781e3ddf8e39905e4e4a57a30496c245f9901d1b7d3f17382382188347d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.3.1">
- <artifact name="lifecycle-viewmodel-savedstate-2.3.1.module">
- <sha256 value="8083710b758ac096891e91f51d91ee56a445b265d7becf230355377327c0418b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.6.1">
- <artifact name="lifecycle-viewmodel-savedstate-2.6.1.module">
- <sha256 value="dafb8649763d29c29cda27bc22fcdab9a9efc53c0fff9ae3de90882eabaa8944" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.6.2">
- <artifact name="lifecycle-viewmodel-savedstate-2.6.2.module">
- <sha256 value="79f9d92880c2fb7827ac6739eb747264245ae456f4c21f77cf39fdb6a50a76ae" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.9.0">
- <artifact name="lifecycle-viewmodel-savedstate-2.9.0.module">
- <sha256 value="9e724daa2045fde8c2aacb0ba18a61a106c82c3c183210915b9f7eb328720ef1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.9.2">
- <artifact name="lifecycle-viewmodel-savedstate-2.9.2.module">
- <sha256 value="c1785d7133fcfe1169cf4b4f6f1804477c1da6ffd79ad560f4cedbadf16c1e8e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.9.4">
- <artifact name="lifecycle-viewmodel-savedstate-2.9.4.module">
- <sha256 value="4389cca0a9a801a71effaeb88f89f0a03d99c22be093c539a9c0f9c396295416" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate-android" version="2.10.0">
- <artifact name="lifecycle-viewmodel-savedstate-android-2.10.0.module">
- <sha256 value="949d2a862b6b584cee91af70a9e017bdb117d225bb46096da9424a1728ca79e9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-savedstate.aar">
- <sha256 value="19404239fa584322c2f81e9659e162bc011b746d29dc950a11d260624d83225e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate-android" version="2.9.0">
- <artifact name="lifecycle-viewmodel-savedstate-android-2.9.0.module">
- <sha256 value="42783d40d49423ca9f51c1a826f4c47371856854c8ad32ee2e9a168d0c61bb43" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate-android" version="2.9.2">
- <artifact name="lifecycle-viewmodel-savedstate-android-2.9.2.module">
- <sha256 value="3dd7fbbbb8db1aec86ea92f31c36d4ebfe51d8788ca6b66a6fda4419369dd0fe" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate-android" version="2.9.4">
- <artifact name="lifecycle-viewmodel-savedstate-android-2.9.4.module">
- <sha256 value="bf64c4c3cf5ad5fe5d6fd0e07787ec68054cc226f9f670e05af5ef9da67c2593" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-savedstate-release.aar">
- <sha256 value="079441c43fa3ff8ea7a02df3b12eec483c3e57583f832cfaff663750527c1421" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate-desktop" version="2.10.0">
- <artifact name="lifecycle-viewmodel-savedstate-desktop-2.10.0.jar">
- <sha256 value="92944597842a697623d0746d719d8af3acb9f4c780da611062fa60d993944d2c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-savedstate-desktop-2.10.0.module">
- <sha256 value="59b7367fbd82b74a6053291a12743cac0c2cf1fe96929378c51d82bf8fe9a95d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.loader" name="loader" version="1.0.0">
- <artifact name="loader-1.0.0.aar">
- <sha256 value="11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.localbroadcastmanager" name="localbroadcastmanager" version="1.0.0">
- <artifact name="localbroadcastmanager-1.0.0.aar">
- <sha256 value="e71c328ceef5c4a7d76f2d86df1b65d65fe2acf868b1a4efd84a3f34336186d8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-common" version="2.9.5">
- <artifact name="navigation-common-2.9.5.module">
- <sha256 value="0f8c9fea1b1f7f89f4f434bb32781e3a609ad74ea7b7fde1913e1c076ff679ec" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-common-android" version="2.9.5">
- <artifact name="navigation-common-android-2.9.5.module">
- <sha256 value="3a3ed9d63be82a8cc545175a4df32507155c61a2da670eaa5fe1c2429bad6b9d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigation-common-release.aar">
- <sha256 value="7c481cce19c7aac371ea93e88e68b6e9fb649f711d4f730f16fd97bf2ea7e6d0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-common-jvmstubs" version="2.9.5">
- <artifact name="navigation-common-jvmstubs-2.9.5.jar">
- <sha256 value="1f5f6ba6164f96706ef445ef88a408a8911e6053df55356a893a8240e4a6e742" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigation-common-jvmstubs-2.9.5.module">
- <sha256 value="211cd29855742476ebe65342c6600af29f878ffdfdf10f0f8653cc928aa8fbb4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-compose" version="2.9.5">
- <artifact name="navigation-compose-2.9.5.module">
- <sha256 value="281fc513e0b37531b7204c8110353edb51d3f776e08a3361712b0406de87bd85" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-compose-android" version="2.9.5">
- <artifact name="navigation-compose-android-2.9.5.module">
- <sha256 value="77a3e19bda661168415d1c1e58170e7350c5255035bd2baf55cb425288111d9d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigation-compose-release.aar">
- <sha256 value="c94c63d7112d63694ea5c53651547fbeb70bba432d2edaa09f8d775aaee84a5b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-compose-jvmstubs" version="2.9.5">
- <artifact name="navigation-compose-jvmstubs-2.9.5.jar">
- <sha256 value="c064695ace62dda8680415ba275a0fe8ed52a374593ed91f30cd188b008d12d3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigation-compose-jvmstubs-2.9.5.module">
- <sha256 value="5b8d1b0cd10146508f5f4243dbf7d94e3e85ec1d22ebf81feed03d35fe8a9afd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-runtime" version="2.9.5">
- <artifact name="navigation-runtime-2.9.5.module">
- <sha256 value="86ce7a70bb2801d54784229543351e65cc8e3c14094f1285505ff804bd176903" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-runtime-android" version="2.9.5">
- <artifact name="navigation-runtime-android-2.9.5.module">
- <sha256 value="42c29b6e69b7a17f6c1fccccdb30d7aac337c320421addd1f64763d505ab8bf7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigation-runtime-release.aar">
- <sha256 value="f32c910e24922546ab45d208b526e4ddccd58822283be4023a269b9afb75c45d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigation" name="navigation-runtime-jvmstubs" version="2.9.5">
- <artifact name="navigation-runtime-jvmstubs-2.9.5.jar">
- <sha256 value="28a68c1219cd2111f34700784b89f8e652cdb655893b7217474685b57538e4e8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigation-runtime-jvmstubs-2.9.5.module">
- <sha256 value="06c1235fd65ab6327ca48cd0c2679458c60131986eb76298bb62bc2cb777d8ab" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigationevent" name="navigationevent" version="1.0.1">
- <artifact name="navigationevent-1.0.1.module">
- <sha256 value="36b448d7126c496d9b12bcab28dcd682ec48ec83fac7e562cd2e4b652781ef11" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigationevent" name="navigationevent-android" version="1.0.1">
- <artifact name="navigationevent-android-1.0.1.module">
- <sha256 value="30cd6ebde7134612c938be8ac8a1bb50fc868ab6900a309e822d5eb577473f6d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigationevent.aar">
- <sha256 value="c2acf20ffb1da29fa622b0ebb3b1a87eca889ba4cc724d24bcd7e09867e8cafc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigationevent" name="navigationevent-compose" version="1.0.1">
- <artifact name="navigationevent-compose-1.0.1.module">
- <sha256 value="2802d477a0f0f4267dfafa3231177682c6acc43a2e113eaf37b86002a1c5c117" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigationevent" name="navigationevent-compose-android" version="1.0.1">
- <artifact name="navigationevent-compose-android-1.0.1.module">
- <sha256 value="4811bbd7849788189fb538bac4578fbdd4d77424221ecbbe6c0caac1253b76a9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigationevent-compose.aar">
- <sha256 value="582cce7129aa0f6db8b2c7e067268c1ae1341d8b30ff14cf3b4b59dd109e97c1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigationevent" name="navigationevent-compose-jvmstubs" version="1.0.1">
- <artifact name="navigationevent-compose-jvmstubs-1.0.1.jar">
- <sha256 value="179d61de7c231d81bb4e4cb7f857b3b6a75a0905faccff5ad903907c51ef2db2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigationevent-compose-jvmstubs-1.0.1.module">
- <sha256 value="f6c829e19b188804267224cb717f1ef8ce08381d7ccaef2135b9e0c50f56971b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.navigationevent" name="navigationevent-desktop" version="1.0.1">
- <artifact name="navigationevent-desktop-1.0.1.jar">
- <sha256 value="43deeb5774fd737fa945e09a47f93b6f1a508d17fac8f3b65f1c863e7f7d0660" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="navigationevent-desktop-1.0.1.module">
- <sha256 value="909e3a53b8760751d79aef5865f4bf491a16095d9e1afbdfb9e48ac68bd1fc68" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.print" name="print" version="1.0.0">
- <artifact name="print-1.0.0.aar">
- <sha256 value="1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.profileinstaller" name="profileinstaller" version="1.3.1">
- <artifact name="profileinstaller-1.3.1.module">
- <sha256 value="cc7eed0ed4b669de84b852f78797a50018a4f30002e1e38aaa668af22ca5b460" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.profileinstaller" name="profileinstaller" version="1.4.0">
- <artifact name="profileinstaller-1.4.0.aar">
- <sha256 value="d502141fcce902430f62b674c32aecd0f75262e7ee2cd15c74adb617cd13130a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="profileinstaller-1.4.0.module">
- <sha256 value="39bf997a28d8eed2cb319819f6f352a1ba3a78b9c979004fbe05e26b8f7d160b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.profileinstaller" name="profileinstaller" version="1.4.1">
- <artifact name="profileinstaller-1.4.1.aar">
- <sha256 value="b519f9317ded1e2c1c2993038c0692e30da326ca99097d9331ff2d3a5861a428" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="profileinstaller-1.4.1.module">
- <sha256 value="6f11cf65e4bf8444995cc73e5aa3f81b082d66e720c0592bc5fc80d3f73850f7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.resourceinspection" name="resourceinspection-annotation" version="1.0.1">
- <artifact name="resourceinspection-annotation-1.0.1.jar">
- <sha256 value="8cff870ec6fb31db48a52f4a792335b4bf8de07e03bd37823181526433ccd5cb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="resourceinspection-annotation-1.0.1.module">
- <sha256 value="352a11a8d8a4c1bd6cd2c2fefff9c94ca954d7b5202a0656959db95297f6a2b7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.room" name="room-common" version="2.7.0">
- <artifact name="room-common-2.7.0.module">
- <sha256 value="ec76c3bf85ad4589fd08c3522001affa78970eb7772107cb5e06ef60e37a74eb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.room" name="room-common-jvm" version="2.7.0">
- <artifact name="room-common-jvm-2.7.0.jar">
- <sha256 value="b2a00b88c8b8d810d07ecbdf92fdff47db7f0ea884efe5c31cda7a526c9b1ae5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="room-common-jvm-2.7.0.module">
- <sha256 value="b29a34cc1e3375fd92029536ab2721f520a73b1c00000739f77e48ebce069eb3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.room" name="room-runtime" version="2.7.0">
- <artifact name="room-runtime-2.7.0.module">
- <sha256 value="845bce3ed66b0d2de3e7dcd72c859e0b0efe295efe0d2b57e9fe29b617ad7964" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.room" name="room-runtime-android" version="2.7.0">
- <artifact name="room-runtime-android-2.7.0.module">
- <sha256 value="6a3dd8e44c3e2aad173c5a0fde2242d32eab7b6444a02aa6b6ee14f9ec08f44e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="room-runtime-release.aar">
- <sha256 value="8310b9ba101646bd78f9dd65a5c8ae8c82171bcfa8341fc646893c9e8cc9a850" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.room" name="room-runtime-jvm" version="2.7.0">
- <artifact name="room-runtime-jvm-2.7.0.jar">
- <sha256 value="44485dbe00e644e93b64c570ef3b8084e26a25ecf23d305472095994dd12382c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="room-runtime-jvm-2.7.0.module">
- <sha256 value="9c4ccac4f4a3723ccc61814ee9bdf7703b960d7c7d4056cb2242344d986a9d57" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate" version="1.1.0">
- <artifact name="savedstate-1.1.0.module">
- <sha256 value="6eea2bc150828c8fcba777e93037038e2ee3ec441c43d6acecf2c5cd9ddc5374" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate" version="1.2.1">
- <artifact name="savedstate-1.2.1.module">
- <sha256 value="5bb656fc760d9e3996b535160cbb4106033c9f736e9089e6ef4eb0c669785066" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate" version="1.3.0">
- <artifact name="savedstate-1.3.0.module">
- <sha256 value="19d2501e044c61f224e24fec5869cbc9dbf2010920f64765905ef4d1941a5e6b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate" version="1.3.1">
- <artifact name="savedstate-1.3.1.module">
- <sha256 value="7f444f65fe979e88183672dad5aaf1bd39f91d80cac9716d3d84e0664c95933e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate" version="1.3.2">
- <artifact name="savedstate-1.3.2.module">
- <sha256 value="320e8d0ad2fe7476f2242ae28d923fc74c8f785b78fa658707497b99ac950f4a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate" version="1.4.0">
- <artifact name="savedstate-1.4.0.module">
- <sha256 value="a0f2ac5a076063f0c813cf75a46dfb780bd5a5a2c8677240bca8551554da8fd2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-android" version="1.3.0">
- <artifact name="savedstate-android-1.3.0.module">
- <sha256 value="b1d6f10a9442ad3243ee7d4ba1074d4ab7019e19d72222a2654e8158bf7c06e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-android" version="1.3.1">
- <artifact name="savedstate-android-1.3.1.module">
- <sha256 value="e994994c7def60c071171928edc45a01e3b07e369261c669f5082d306a1b885f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-android" version="1.3.2">
- <artifact name="savedstate-android-1.3.2.module">
- <sha256 value="5d962b8d6a4bc5284492a40003c9867fd392ac6979ab440bdecdd427899741bb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-release.aar">
- <sha256 value="1e26f137705596d09d3f4f52559a29026d9a1a6688be7f1a948316a4f1e39b20" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-android" version="1.4.0">
- <artifact name="savedstate-android-1.4.0.module">
- <sha256 value="0062514dcb80c2ea7e0411fa8be54550853bab7bf6b1bf14c2517c2ef874ff50" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate.aar">
- <sha256 value="1656ce62cd233d488bdbbd42e533b80b22435b7a690acae6dbe7302392512c14" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose" version="1.3.0">
- <artifact name="savedstate-compose-1.3.0.module">
- <sha256 value="15a07a0fdb8ed58a48ca21e981d38ab72b2bbfd96463c33a7050df1c27699a75" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose" version="1.3.1">
- <artifact name="savedstate-compose-1.3.1.module">
- <sha256 value="23c1fa4559a0fcb59beab64e4e70ad7be45930607e0e2f4f2751529b8d3371c7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose" version="1.3.2">
- <artifact name="savedstate-compose-1.3.2.module">
- <sha256 value="3e4b8353f8b738e7bf497b8a15631bf5fdf6abd09dcd125c13aeb5048fa6bc13" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose" version="1.4.0">
- <artifact name="savedstate-compose-1.4.0.module">
- <sha256 value="7275211901a07ee3973e40a3455e8ad12955d1d234dc2489f8686fcfc820b8a8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-android" version="1.3.0">
- <artifact name="savedstate-compose-android-1.3.0.module">
- <sha256 value="823a95006413fc1fd7676241df3a60e0e7102ede3b73a0a1514dfb82b4a6f018" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-android" version="1.3.1">
- <artifact name="savedstate-compose-android-1.3.1.module">
- <sha256 value="40bb4d8dc8847944729a27aa6686d7ce65ab2337dcf21a5acdd863f70c2837d5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-android" version="1.3.2">
- <artifact name="savedstate-compose-android-1.3.2.module">
- <sha256 value="8376ee32d654f97712f817275e785880daef1e44448f38272a7734ec091ce401" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-compose.aar">
- <sha256 value="93426691f25441cc3179494b25f401a8a468aabbee4c40b90c0327413fd65523" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-android" version="1.4.0">
- <artifact name="savedstate-compose-android-1.4.0.module">
- <sha256 value="2be8c753a07c920cf2f5d63d66e8743fb08a933d04c02b7a388b77b66fca848f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-compose.aar">
- <sha256 value="0f0ae3032d6c6eea834ee22179c8976160d09d841d30e47f53f56b1b3438774b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-desktop" version="1.3.2">
- <artifact name="savedstate-compose-desktop-1.3.2.module">
- <sha256 value="c98b1c15495468d63d592be4048a347949a5715a4f86ed3227cc902778ea64c4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-desktop" version="1.4.0">
- <artifact name="savedstate-compose-desktop-1.4.0.jar">
- <sha256 value="c02a98b0c2b35cdde245c0bfe6e7ff453c7b6d06a5eb8681d25b7f54b874ea48" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-compose-desktop-1.4.0.module">
- <sha256 value="808ff723a153acce160489a5bc4b58ca1d7033fe84a9060f52d17db227eaa4cd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-compose-jvmstubs" version="1.3.0">
- <artifact name="savedstate-compose-jvmstubs-1.3.0.module">
- <sha256 value="7d1e95ef376b3b5c528c579d461ea88ccea6ce15946bff9085af59f11116113f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-desktop" version="1.4.0">
- <artifact name="savedstate-desktop-1.4.0.jar">
- <sha256 value="e965ed7a011be83a271ac7d82249a776368479ee3a2b07948c3445b51d640856" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-desktop-1.4.0.module">
- <sha256 value="e73f2cf8818ece347d8b5dff990d0db639a7dfb8fcc85eeecb2618383f7ecef7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-ktx" version="1.2.1">
- <artifact name="savedstate-ktx-1.2.1.module">
- <sha256 value="94359184b2ba51c0f498a2b9055d37b372231ef9bcc54a4972ac99f0303afff1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-ktx" version="1.3.0">
- <artifact name="savedstate-ktx-1.3.0.module">
- <sha256 value="dcf657881d46352128aa0bf48f32775b55e3661361ebf2d2c217ed117fad881f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-ktx" version="1.3.1">
- <artifact name="savedstate-ktx-1.3.1.module">
- <sha256 value="59007d8d33cf166fdfd1a9bf56ccfd212e9822c04b3a741966face5918610655" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-ktx" version="1.3.2">
- <artifact name="savedstate-ktx-1.3.2.aar">
- <sha256 value="1c300732ece8e9d0001fb19cc693b0f77f19e77cdf90ca5c4cd56d5e6951d02b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-ktx-1.3.2.module">
- <sha256 value="f7fc8a13f9fbe5cf092128299aff529392f3eee54e6d3fe5f0a2f82fc6c5f3db" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.savedstate" name="savedstate-ktx" version="1.4.0">
- <artifact name="savedstate-ktx-1.4.0.aar">
- <sha256 value="23593939446bc5a154a1e35fddd87b82f19e2adf072207f115bf29a8b431c1d3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-ktx-1.4.0.module">
- <sha256 value="7cf86881220aa594c4ad1685ebd0f295e3d97b9c0fdc31b28300f4318a5045a8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.sqlite" name="sqlite" version="2.5.0">
- <artifact name="sqlite-2.5.0.module">
- <sha256 value="3699481c9fc5879f42bc6f5f22fffcb6e5d23f75862e66f007eff631d7169779" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.sqlite" name="sqlite-android" version="2.5.0">
- <artifact name="sqlite-android-2.5.0.module">
- <sha256 value="dd3ec0b45d421d00b487cedad0da58a5de355e5bccc5bf5938a1474d1a5e06c4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="sqlite-release.aar">
- <sha256 value="2b02be3aed8d2994021afe072185af94e29422ffe8066df88868efaca1161ef0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.sqlite" name="sqlite-framework" version="2.5.0">
- <artifact name="sqlite-framework-2.5.0.module">
- <sha256 value="156ea5562df341a063dcbe3e84036415ee81b7c9023a58a69358887e5deb04bf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.sqlite" name="sqlite-framework-android" version="2.5.0">
- <artifact name="sqlite-framework-android-2.5.0.module">
- <sha256 value="467a3d0d860e0bcb016ad4fc71ab7e8b3b60c1373363db95b6293ec74eb41cc0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="sqlite-framework-release.aar">
- <sha256 value="850de703d95b91f504774981a90fa829799cdfc9eab203692d24a0c40d7e71e7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.sqlite" name="sqlite-jvm" version="2.5.0">
- <artifact name="sqlite-jvm-2.5.0.jar">
- <sha256 value="bfc28821f72a832c47a756c7d09149bdb01171dcb0d5b703e785a1d0722efe2b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="sqlite-jvm-2.5.0.module">
- <sha256 value="e45f7412b83308d77893dbdbdc433e794e2424e2ce12d5fb1ffeba5045724c1a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.startup" name="startup-runtime" version="1.0.0">
- <artifact name="startup-runtime-1.0.0.module">
- <sha256 value="40effca0d6ee1fde32bc296897e54ebbcc4cf4aa29b0c531036cbd2a824a3c24" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.startup" name="startup-runtime" version="1.1.1">
- <artifact name="startup-runtime-1.1.1.aar">
- <sha256 value="e0a6329a371262fe4c450372b70fdaf33b769ef6917094723787cfce896b1dd3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="startup-runtime-1.1.1.module">
- <sha256 value="cfd96cf6450c6e2b697598924729ad9a0495c5a4fcf4ebee7e2f81b07e415865" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="annotation" version="1.0.1">
- <artifact name="annotation-1.0.1.aar">
- <sha256 value="c0754928effe1968c3a9a7b55d1dfc7ceb1e1e7c9f3f09f98afd42431f712492" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="core" version="1.6.1">
- <artifact name="core-1.6.1.aar">
- <sha256 value="7a7af31c21785ddb7c4319c838847e6d4d9b5bb531f3a951481ec3b98780bf51" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="core" version="1.7.0">
- <artifact name="core-1.7.0.aar">
- <sha256 value="f4dacd8edceeec48e0c76ecf28339b28f4b4f6b74f8e34e9e59b472c27d9eb81" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="monitor" version="1.7.1">
- <artifact name="monitor-1.7.1.aar">
- <sha256 value="b31e7d7a3564f9d5504c86bed9bfb8fee429feb3d1b81ffd1f2c149948c51d19" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="monitor" version="1.7.2">
- <artifact name="monitor-1.7.2.aar">
- <sha256 value="868cc120d10d024b886fa157e1e1eaee0e6a8e5d55e7f765ef41d8fc0fea775b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="monitor" version="1.8.0">
- <artifact name="monitor-1.8.0.aar">
- <sha256 value="56cb7496a06d9f2dca7d3ff76c50a8a30bd18e00a24a3b267d5a31437b278e67" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="orchestrator" version="1.6.1">
- <artifact name="orchestrator-1.6.1.apk">
- <sha256 value="0a8aa1f18da0613d863be7be26e2a5c8de2f6892660b86577848a122ff7df6c5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="rules" version="1.7.0">
- <artifact name="rules-1.7.0.aar">
- <sha256 value="f5ae82d9b8b20864dcaaad69dcd0b5e4112b666850599865a58e8badb5fb4d0e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="runner" version="1.6.1">
- <artifact name="runner-1.6.1.aar">
- <sha256 value="5bc564d0c35b55fd4b323d00a9fd16ac30d84d84a459f8d15896d4c87986c2a3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="runner" version="1.6.2">
- <artifact name="runner-1.6.2.aar">
- <sha256 value="d8eac6d9864f432b15962b2c2739a7b31685c87777364ac97323c9e4b2c94744" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test" name="runner" version="1.7.0">
- <artifact name="runner-1.7.0.aar">
- <sha256 value="970311c47119928a2e406a88892a3d270387cc5a49a181a1c44511105b41b818" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.espresso" name="espresso-core" version="3.6.1">
- <artifact name="espresso-core-3.6.1.aar">
- <sha256 value="2495daa4d35cc0e6e6de4566d53a6e04cc13c316fe32c1a7ede13571ff11ffdd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.espresso" name="espresso-core" version="3.7.0">
- <artifact name="espresso-core-3.7.0.aar">
- <sha256 value="5dd90e366838bf044cb52eae06474debd285df18a7a77c40441ac8e8951bb00f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.espresso" name="espresso-idling-resource" version="3.6.1">
- <artifact name="espresso-idling-resource-3.6.1.aar">
- <sha256 value="bc63a8780f1c707724e389f530cb2e1a6847da97f6a8114604c002aba2fd86ca" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.espresso" name="espresso-idling-resource" version="3.7.0">
- <artifact name="espresso-idling-resource-3.7.0.aar">
- <sha256 value="5ff62326b49c308c1d060466ae3cf4aa0e3deaf9295f077a6886048dda3e9b14" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.ext" name="junit" version="1.1.5">
- <artifact name="junit-1.1.5.aar">
- <sha256 value="4307c0e60f5d701db9c59bcd9115af705113c36a9132fa3dbad58db1294e9bfd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.ext" name="junit" version="1.3.0">
- <artifact name="junit-1.3.0.aar">
- <sha256 value="3363df84da4540ba8daff02c3f7cd65471037a6a5370591a7e6deba377b36e7f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.services" name="storage" version="1.5.0">
- <artifact name="storage-1.5.0.aar">
- <sha256 value="d59621845cff5ff5e8a6906445ef1b2d83624d796cbfad9a52e86a3ab42f8c48" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.services" name="storage" version="1.6.0">
- <artifact name="storage-1.6.0.aar">
- <sha256 value="f97e3cf6aaf4e3fb97ef219d37a9c0a0720183c1f6db87b37642521e26fb6d30" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.services" name="test-services" version="1.6.0">
- <artifact name="test-services-1.6.0.apk">
- <sha256 value="3369693a0d79965888e674f0d05a3474d647ff46c4a62a5c8ea410a0126a20bf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.uiautomator" name="uiautomator" version="2.4.0-alpha07">
- <artifact name="uiautomator-2.4.0-alpha07.aar">
- <sha256 value="ffba7e9f60822b92fdf19e65488ad49f9233e90897066609d6874de5b92deed4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="uiautomator-2.4.0-alpha07.module">
- <sha256 value="7213a6bed152ecd40f5a8f9f3b168817195056dd80c4823b0e3395065b846494" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.uiautomator" name="uiautomator-shell" version="1.0.0-alpha03">
- <artifact name="uiautomator-shell-1.0.0-alpha03.module">
- <sha256 value="0a3784d007a5554ac2fbe09a87dac049f24dc383738e4c8a26dfa31b01d8cd7f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.test.uiautomator" name="uiautomator-shell-android" version="1.0.0-alpha03">
- <artifact name="uiautomator-shell-android-1.0.0-alpha03.module">
- <sha256 value="9b16926d664d766f621df654bbbe43c2944f3171339d04df6e3d26c1ceeeb889" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="uiautomator-shell.aar">
- <sha256 value="4874009569bd9fe85e57d459968fc81cea76ae2c4717dd9ea808814c5d8b8a6b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing" version="1.0.0">
- <artifact name="tracing-1.0.0.module">
- <sha256 value="fc8b21ebe5fa3a7c96ee098bcdcd00f077ebce73f243fa858e2b0671615f75d8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing" version="1.1.0">
- <artifact name="tracing-1.1.0.aar">
- <sha256 value="5b78e2c618fc10b3d14decc01df76158f15954ad746aacf0607766721da081f6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tracing-1.1.0.module">
- <sha256 value="b1fed4309623b6f20bc817d8fbd70e4ea7085e40647694cd399ae58d2f0049e3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing" version="1.2.0">
- <artifact name="tracing-1.2.0.aar">
- <sha256 value="6faa90390d1fdbf0adb9a99bf99de67b94c6c6f35aea9510593a9d17973736a2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tracing-1.2.0.module">
- <sha256 value="d0d8d486b6bd33206dbf3f1a6d167e9b43c268ea63c3321c886b1543ad05ece3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing-ktx" version="1.0.0">
- <artifact name="tracing-ktx-1.0.0.module">
- <sha256 value="f426e636a23a05db8c7fabf2b959f4dab80c9ca97b5131bf411d422555c48c18" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing-ktx" version="1.1.0">
- <artifact name="tracing-ktx-1.1.0.module">
- <sha256 value="6ec8aa998df9b964424c7ab215738237a9b2cc4301da135bb9b8cdc62325fb3e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing-ktx" version="1.2.0">
- <artifact name="tracing-ktx-1.2.0.aar">
- <sha256 value="c33f9cbd931e6190ca38aa09bf8a7a8a19391d4b0fb7a7605a6b59f2d42580d1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tracing-ktx-1.2.0.module">
- <sha256 value="39288b23c71a4391132aec9951f5e27f41727a2cdff69c6e4b4ece49f63e540c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing-perfetto" version="1.0.0">
- <artifact name="tracing-perfetto-1.0.0.aar">
- <sha256 value="a9a21fb415cc42497216004f4a35dc45f3158e4ba5ea1a01b449a20180b25a5e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tracing-perfetto-1.0.0.module">
- <sha256 value="c2ae89cb6f81abf51cae72f6a0e5e091267a9ab0b381d2bd30d66fb9b8c5e692" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing-perfetto-binary" version="1.0.0">
- <artifact name="tracing-perfetto-binary-1.0.0.aar">
- <sha256 value="e36809d054202758488687ec60ed81a3cbd87bd027a87f05aa3f64451e6d3098" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tracing-perfetto-binary-1.0.0.module">
- <sha256 value="7d113c1199223c2a13ac27a00b588b1aa9312663923edc4a2c70d28710f5d0e9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tracing" name="tracing-perfetto-handshake" version="1.0.0">
- <artifact name="tracing-perfetto-handshake-1.0.0.jar">
- <sha256 value="2f2ee5c58561d72cabe9207c43669fe92d6c1386f8c1c2624489e6ab367b121e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tracing-perfetto-handshake-1.0.0.module">
- <sha256 value="baba97bfc2834fbd29275ce3e250ac814305bd0d4beb8b3594248424cc6ff385" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.transition" name="transition" version="1.6.0">
- <artifact name="transition-1.6.0.aar">
- <sha256 value="248c45e1254d31181d2047b0b01394f09a2e539a5d9e89b773d53c62c96860f6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="transition-1.6.0.module">
- <sha256 value="c763c376fd6d39e51477c902b315e58ca2a1f47d4b099cb99f49a148bd61c560" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.tv" name="tv-material" version="1.0.1">
- <artifact name="tv-material-1.0.1.aar">
- <sha256 value="36cb476b940d5cecfaa55dafeb2bd9e9468b8405ba579bf66ca33e5251e052cf" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="tv-material-1.0.1.module">
- <sha256 value="a3ddac7e3123d978491badc2ea478adf8f8a4d0d6ad785c84e367d0a9d4c69a7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.vectordrawable" name="vectordrawable" version="1.1.0">
- <artifact name="vectordrawable-1.1.0.aar">
- <sha256 value="46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.vectordrawable" name="vectordrawable-animated" version="1.1.0">
- <artifact name="vectordrawable-animated-1.1.0.aar">
- <sha256 value="76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.versionedparcelable" name="versionedparcelable" version="1.1.1">
- <artifact name="versionedparcelable-1.1.1.aar">
- <sha256 value="57e8d93260d18d5b9007c9eed3c64ad159de90c8609ebfc74a347cbd514535a4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.viewpager" name="viewpager" version="1.0.0">
- <artifact name="viewpager-1.0.0.aar">
- <sha256 value="147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.window" name="window" version="1.5.0">
- <artifact name="window-1.5.0.aar">
- <sha256 value="5de2d48aa578402f46deb5294a955cee62f0c7d8c1840ef626fc7afb8abe22f9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="window-1.5.0.module">
- <sha256 value="8ac5d2772e97c957dddcbcb1c1198229d4afe57cdf5ecd5eb3cd436a05190743" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.window" name="window-core" version="1.5.0">
- <artifact name="window-core-1.5.0.module">
- <sha256 value="595604f055a12508ec3c774f2d90c5e56414ba6246c754172d9c95c8a00ec04f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.window" name="window-core-android" version="1.5.0">
- <artifact name="window-core-android-1.5.0.module">
- <sha256 value="5bd818686803bf3c037f61a0e96af4441e884aa8a4d91062d2ad57876f917b50" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="window-core.aar">
- <sha256 value="d0d50db0756194a6d49a66ad8dafd17b24b4c5fbd8379375056e2eb9bdfeaf22" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.work" name="work-runtime" version="2.11.0">
- <artifact name="work-runtime-2.11.0.aar">
- <sha256 value="85b0b63f4164f423a507c0055022406eecbe1cd399db0430e9e935edf6fba5a6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="work-runtime-2.11.0.module">
- <sha256 value="775fc13c42fae8b610c4f3904ce304833180178dda95c8172240db2aab85fa5f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="androidx.work" name="work-runtime-ktx" version="2.11.0">
- <artifact name="work-runtime-ktx-2.11.0.aar">
- <sha256 value="e0ab52221e25579c7134ac6dc9779d6e2d4639aa29f1217306c4ca4db26ae6d5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="work-runtime-ktx-2.11.0.module">
- <sha256 value="0a30a7aa9eb709521172c8df28b7f389013d75e2f1a426124fd1666a9704fcbf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="app.cash.turbine" name="turbine" version="1.2.1">
- <artifact name="turbine-1.2.1.module">
- <sha256 value="16d51c2207d4a889372ebf7d4c0f8ea1da841db0a4a47069c7c0c7d706183432" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="app.cash.turbine" name="turbine-jvm" version="1.2.1">
- <artifact name="Turbine-jvm.jar">
- <sha256 value="d1a853be08d6c3562fdfef98ac25b7048e669d9cb1203a42fc36c56d17c037d5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="turbine-jvm-1.2.1.module">
- <sha256 value="32f2a3e984aa1769a016ba09c5b7342b8118e18f8f669b68ac39a0db9a2de015" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit" version="2.0.8">
- <artifact name="kermit-2.0.8.module">
- <sha256 value="1566007a8c1b323d48965cd9468353e062f439d709dcdd9bf1e52d59de48202c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-android" version="2.0.8">
- <artifact name="kermit-android-2.0.8.module">
- <sha256 value="a7595c5b8374e660379fe3a31fb9ecb30df0d1d07a1eb24588ca9f392e8d845d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kermit-release.aar">
- <sha256 value="1295b860e099be9e2a3e466c4288c3b1e8bf0aeb1a4c3898be718256119fe86f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-android-debug" version="2.0.8">
- <artifact name="kermit-android-debug-2.0.8.module">
- <sha256 value="b42f387926d670c1cfc8c5f42b6c98f92fef81689a2140542085f2aea7e9c119" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kermit-debug.aar">
- <sha256 value="0e2ab0d67d6afb5bffc37e850a1c3ee35971dd681496dcf8280014ecf81886cc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-core" version="2.0.8">
- <artifact name="kermit-core-2.0.8.module">
- <sha256 value="15d2b12ab371ff4554c6e703549e2604adb24b0861c5febfaa6e44ac93b858db" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-core-android" version="2.0.8">
- <artifact name="kermit-core-android-2.0.8.module">
- <sha256 value="778cc8249a035f61ddaad1232f210dc8ceb5b6095bd9747675cc5c31ffcdbc9e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kermit-core-release.aar">
- <sha256 value="8a93fecb2a6eaf59321d8970e45626cfe26886bcf9a07ce44ced2b005051ef4a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-core-android-debug" version="2.0.8">
- <artifact name="kermit-core-android-debug-2.0.8.module">
- <sha256 value="1079e0911f549add4cace11de6935168d7d856947b38842810aed04c53252938" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kermit-core-debug.aar">
- <sha256 value="aa4f7780d845639bfff4f4ca80d30b506a6559cd225506d57728a56b7e8ac9ac" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-core-jvm" version="2.0.8">
- <artifact name="kermit-core-jvm-2.0.8.jar">
- <sha256 value="a3bf8a83a4353f3dd4729323b288edd1b7f0474c7d3251e161b241a1d070543a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kermit-core-jvm-2.0.8.module">
- <sha256 value="974f5b70f9acd24bd554a95df5942d20d879aadbaef1799aa8f46d58e2e5fc36" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="kermit-jvm" version="2.0.8">
- <artifact name="kermit-jvm-2.0.8.jar">
- <sha256 value="86e89f9f294b616d65fc36ba7e51fb4b9e3f905cd3851dfdc35d926c65b3b6e9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kermit-jvm-2.0.8.module">
- <sha256 value="a74f5b3ca2a422839c3da46cb14c56b07ea0098a430c608bc7436d7eeb2362df" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="stately-concurrency" version="2.1.0">
- <artifact name="stately-concurrency-2.1.0.module">
- <sha256 value="125e5b65cd558b89a15e7645ffacc26c1bcc06e41daf0e395dd30a7092a8d97c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="stately-concurrency-jvm" version="2.1.0">
- <artifact name="stately-concurrency-jvm-2.1.0.jar">
- <sha256 value="86739675892fb1c17d6bd36d05347e89ff313957421bb01a45a743ce774e8e29" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="stately-concurrency-jvm-2.1.0.module">
- <sha256 value="0fa965642e092d8fb3a2565c142810045af33b7b705e65c4ed71a818ac6b07c5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="stately-concurrent-collections" version="2.1.0">
- <artifact name="stately-concurrent-collections-2.1.0.module">
- <sha256 value="db9042734b1096e69d0a14f86195c1c7ab7414a1891185c1a5f4a934e8d37d39" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="stately-concurrent-collections-jvm" version="2.1.0">
- <artifact name="stately-concurrent-collections-jvm-2.1.0.jar">
- <sha256 value="0e0d9e7f20eaee18f7862309064c8db58ce6a3a861d8871f561546af63df1893" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="stately-concurrent-collections-jvm-2.1.0.module">
- <sha256 value="d99f3d1153b34ae21196888f71bf37dc27727c8e9b26bf0542119319ae85f01a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="stately-strict" version="2.1.0">
- <artifact name="stately-strict-2.1.0.module">
- <sha256 value="c79317ae270fea9b75b2e811671423a06f82fa88244cf946ff795985b4f0b701" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="co.touchlab" name="stately-strict-jvm" version="2.1.0">
- <artifact name="stately-strict-jvm-2.1.0.jar">
- <sha256 value="581070db2802cbad81f6e6e2d9d2494835443153b314458d53aa43c68260c9fa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="stately-strict-jvm-2.1.0.module">
- <sha256 value="92abd9e60006984cf4790aaf84c79d0f384286e326ece0f3921f693cda089b94" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android" name="signflinger" version="8.13.1">
- <artifact name="signflinger-8.13.1.jar">
- <sha256 value="c1dca2c683634ee1a294298f9c7179578af6a86e080bdc40f961915bc5c8142f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android" name="signflinger" version="8.13.2">
- <artifact name="signflinger-8.13.2.jar">
- <sha256 value="c1dca2c683634ee1a294298f9c7179578af6a86e080bdc40f961915bc5c8142f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android" name="zipflinger" version="8.13.1">
- <artifact name="zipflinger-8.13.1.jar">
- <sha256 value="07060069c35e469d7c343abc15f1d6362bc1356b81bf462539db88a53ed653f1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android" name="zipflinger" version="8.13.2">
- <artifact name="zipflinger-8.13.2.jar">
- <sha256 value="07060069c35e469d7c343abc15f1d6362bc1356b81bf462539db88a53ed653f1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.billingclient" name="billing" version="8.0.0">
- <artifact name="billing-8.0.0.aar">
- <sha256 value="76b3d92c30d2d5e8d22599f8d9c6d46cda031f3477fcdf2732fe1a88748c4f75" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.billingclient" name="billing-ktx" version="8.0.0">
- <artifact name="billing-ktx-8.0.0.aar">
- <sha256 value="0179e3b9d0789672f722ef496413517ed742390c191f2763452412796e394c30" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.databinding" name="baseLibrary" version="8.13.1">
- <artifact name="baseLibrary-8.13.1.jar">
- <sha256 value="794113709dab21b06c262b3795e73cb708fbacae61715f34361e1af6237a1870" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.databinding" name="baseLibrary" version="8.13.2">
- <artifact name="baseLibrary-8.13.2.jar">
- <sha256 value="794113709dab21b06c262b3795e73cb708fbacae61715f34361e1af6237a1870" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="annotations" version="31.13.1">
- <artifact name="annotations-31.13.1.jar">
- <sha256 value="3b4bb9620c17d19e5bd91ac1988080553573b4c3b739fdd92416f42f2daf3e78" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="annotations" version="31.13.2">
- <artifact name="annotations-31.13.2.jar">
- <sha256 value="3b4bb9620c17d19e5bd91ac1988080553573b4c3b739fdd92416f42f2daf3e78" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="common" version="31.13.1">
- <artifact name="common-31.13.1.jar">
- <sha256 value="f4699f6ba9a6f374b89967fd345988698d734e2d89c8216c80b33390a898dcd7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="common" version="31.13.2">
- <artifact name="common-31.13.2.jar">
- <sha256 value="d4ebe1711de0cf509c4d562245624ba21ab147944bcdde6351bfb6e8daccf826" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="dvlib" version="31.13.1">
- <artifact name="dvlib-31.13.1.jar">
- <sha256 value="e3cf3fdc947788dee8d5baa76cb72a66571174bc4741edf0e3bab97a7ca90e1b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="dvlib" version="31.13.2">
- <artifact name="dvlib-31.13.2.jar">
- <sha256 value="e3cf3fdc947788dee8d5baa76cb72a66571174bc4741edf0e3bab97a7ca90e1b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="play-sdk-proto" version="31.13.2">
- <artifact name="play-sdk-proto-31.13.2.jar">
- <sha256 value="c6fc15a5c203064cfd2c8a176fdeac72ae0a2d743ec47a2e66a0238d8d870b6b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="repository" version="31.13.1">
- <artifact name="repository-31.13.1.jar">
- <sha256 value="e9509b30d088e899948f8cb0d73293c1efd2e1f121fccbbe25d533b648b93fa1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="repository" version="31.13.2">
- <artifact name="repository-31.13.2.jar">
- <sha256 value="e9509b30d088e899948f8cb0d73293c1efd2e1f121fccbbe25d533b648b93fa1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="sdk-common" version="31.13.1">
- <artifact name="sdk-common-31.13.1.jar">
- <sha256 value="8cfdf99d6f17689e7dd3bcf1834d734f6dd1c64d8c43904632c65d5469565934" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="sdk-common" version="31.13.2">
- <artifact name="sdk-common-31.13.2.jar">
- <sha256 value="8cfdf99d6f17689e7dd3bcf1834d734f6dd1c64d8c43904632c65d5469565934" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="sdklib" version="31.13.1">
- <artifact name="sdklib-31.13.1.jar">
- <sha256 value="def9b0e7f44e54add385cac1715483724f827f166511ebc0c10319742aa80865" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools" name="sdklib" version="31.13.2">
- <artifact name="sdklib-31.13.2.jar">
- <sha256 value="def9b0e7f44e54add385cac1715483724f827f166511ebc0c10319742aa80865" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="crash" version="31.13.1">
- <artifact name="crash-31.13.1.jar">
- <sha256 value="cca97ac29a1329bd310a3e832b6e57f46227e501aa529c00a63df217c5d7df41" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="crash" version="31.13.2">
- <artifact name="crash-31.13.2.jar">
- <sha256 value="cca97ac29a1329bd310a3e832b6e57f46227e501aa529c00a63df217c5d7df41" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="protos" version="31.13.1">
- <artifact name="protos-31.13.1.jar">
- <sha256 value="b2ded20a897fba9649efeb18ba2fc062ee39e500d4eb712045cb0e34b43b5efb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="protos" version="31.13.2">
- <artifact name="protos-31.13.2.jar">
- <sha256 value="b2ded20a897fba9649efeb18ba2fc062ee39e500d4eb712045cb0e34b43b5efb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="shared" version="31.13.1">
- <artifact name="shared-31.13.1.jar">
- <sha256 value="75435816f202b7a3c84d9caf312a895625a244991f8fc52d0446239e3ae29a9c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="shared" version="31.13.2">
- <artifact name="shared-31.13.2.jar">
- <sha256 value="75435816f202b7a3c84d9caf312a895625a244991f8fc52d0446239e3ae29a9c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="tracker" version="31.13.1">
- <artifact name="tracker-31.13.1.jar">
- <sha256 value="1b66514bf29152422ee8a19b98e0200d92eb0a3d28048eb4857564e9a1c7b85b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.analytics-library" name="tracker" version="31.13.2">
- <artifact name="tracker-31.13.2.jar">
- <sha256 value="1b66514bf29152422ee8a19b98e0200d92eb0a3d28048eb4857564e9a1c7b85b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="aapt2" version="8.13.2-14304508">
- <artifact name="aapt2-8.13.2-14304508-linux.jar">
- <sha256 value="839609d6d776d6dd60a02aa577d97193ce3e650cf1deaabf062321e23bbd6bf6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="aapt2-8.13.2-14304508-osx.jar">
- <sha256 value="0d47f17c3924e5472b6125aa608d949dd7f46510889729671f31f2f4d801e8e7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="aapt2-8.13.2-14304508-windows.jar">
- <sha256 value="5dc730c3dc454b76d779a46036c06fd9c874039a31e22214434ecdbe64c3300a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="aapt2-proto" version="8.13.1-13719691">
- <artifact name="aapt2-proto-8.13.1-13719691.jar">
- <sha256 value="58d0bc0324d2ab6478c332f134caee9a0d0a8fa3707f59b8fffcd7efa1400671" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="aapt2-proto-8.13.1-13719691.module">
- <sha256 value="0b25bd782669081714d83cb3a79c0d3dbc0066019c7a4865a2c9a3306a82f91e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="aapt2-proto" version="8.13.2-14304508">
- <artifact name="aapt2-proto-8.13.2-14304508.jar">
- <sha256 value="a6cda82d508ec3b325a9e37f78f9fa84556ff340cf43bb23c627b0f39e746f0e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="aapt2-proto-8.13.2-14304508.module">
- <sha256 value="7d5b7285f476c82008f0d39f506b0b8c53f1b026bd624d7adc688216be8ea5be" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="aaptcompiler" version="8.13.1">
- <artifact name="aaptcompiler-8.13.1.jar">
- <sha256 value="ddd512e14cc27a380ba1ce8474eb232cd98f91fbce6c9a5dd305e98ce6bd1bf0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="aaptcompiler-8.13.1.module">
- <sha256 value="c71490996687f337723686042c027e781419c04466af6239b3f271112ff84321" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="aaptcompiler" version="8.13.2">
- <artifact name="aaptcompiler-8.13.2.jar">
- <sha256 value="f6f6706d3b7a261e242820da5c855123d3c23738159ca3726e0c34e482b80770" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="aaptcompiler-8.13.2.module">
- <sha256 value="0e3ba6b43ad98fa69131de1d8b6c6a7541b3af71443dcb5d52a2cffc2558ee6b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="apksig" version="8.13.1">
- <artifact name="apksig-8.13.1.jar">
- <sha256 value="c070ed1394629d74641aa0906f60b2ffa1ee77e6366a1f93437f59717b1aeb89" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="apksig" version="8.13.2">
- <artifact name="apksig-8.13.2.jar">
- <sha256 value="c070ed1394629d74641aa0906f60b2ffa1ee77e6366a1f93437f59717b1aeb89" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="apkzlib" version="8.13.1">
- <artifact name="apkzlib-8.13.1.jar">
- <sha256 value="29091c9457252f997ddfeafb33dd65a373ad45840128f945832d8eafd9118561" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="apkzlib" version="8.13.2">
- <artifact name="apkzlib-8.13.2.jar">
- <sha256 value="29091c9457252f997ddfeafb33dd65a373ad45840128f945832d8eafd9118561" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="builder" version="8.13.1">
- <artifact name="builder-8.13.1.jar">
- <sha256 value="8f139ffd353fbd57f7f532ba420afc4bc50e1e09c750ff914702abb4a47eb505" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="builder-8.13.1.module">
- <sha256 value="9d1d1db351210aea23d4b22e1de5ec890301cba27807d392651274dba32e4066" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="builder" version="8.13.2">
- <artifact name="builder-8.13.2.jar">
- <sha256 value="7d393f8553120c7d7a869cb33c4279aad9485986773f63af97af08ea2e1ff37a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="builder-8.13.2.module">
- <sha256 value="4a8a108de5f04142a6757861a0a57a298b936b7b7f7f9c5b91e5caa9a7efda90" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="builder-model" version="8.13.1">
- <artifact name="builder-model-8.13.1.jar">
- <sha256 value="0252ee3ec5f95efeca163d2c84eb694d671304bc34baa2b17a61935d4d97d7ee" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="builder-model-8.13.1.module">
- <sha256 value="c735833fc72fb0a25c8c6c32f1ad2c74fd4e865074f2524cc62d705553e4c3a7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="builder-model" version="8.13.2">
- <artifact name="builder-model-8.13.2.jar">
- <sha256 value="ae5e95515ab348d34a35be83ed315c5fb7e8c0667e186f4e156c65dfaa2615fe" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="builder-model-8.13.2.module">
- <sha256 value="5ae11d7a40857e1a4b0bc6a7f4218255c96169b7011535f9a30b77b5f6e327a1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="builder-test-api" version="8.13.1">
- <artifact name="builder-test-api-8.13.1.jar">
- <sha256 value="c3a7fd8569a544287faf6684e126bd80b5987025160304a2e1d7612b8b13b9a8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="builder-test-api-8.13.1.module">
- <sha256 value="93d2e03be15245a100978bca3b1d555969199451ca88aa242123628f72cb928e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="builder-test-api" version="8.13.2">
- <artifact name="builder-test-api-8.13.2.jar">
- <sha256 value="3cfed0baec2e7d0e64566f6808a00ef5e051ad76fc4fba9d464d11a3c2f986a9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="builder-test-api-8.13.2.module">
- <sha256 value="4f72f3a9fd3e9f516c36cefac6978dcc040496210b8cfad7d2954c83bba0e990" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="bundletool" version="1.18.1">
- <artifact name="bundletool-1.18.1.jar">
- <sha256 value="a73341a7945abcb0e6b8971c7b1b2801bd765006447ca0d2437a4260d572ceac" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle" version="8.13.1">
- <artifact name="gradle-8.13.1.jar">
- <sha256 value="70ac2052cf9dc79fdc4822b8bd83ca2fdb9719d4d9a8321a9cae237bdf5c20fc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-8.13.1.module">
- <sha256 value="43f368bb8c3b68f4147e8a76c55ec0632274f864ffa6449c6d378d5958b842b0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle" version="8.13.2">
- <artifact name="gradle-8.13.2.jar">
- <sha256 value="e494f7ce75ca6c1abff301d4a70b18fdd3d6af855875f4f85082bb7608f041de" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-8.13.2.module">
- <sha256 value="0aac0bee1a4fc65cd69a6788548a7e21d246250c858017e11e3bf23163cb75a7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle-api" version="8.13.1">
- <artifact name="gradle-api-8.13.1.jar">
- <sha256 value="2d4ff6772e4b912a6f49eda65a5fb8c84c7f2d4f5d52605d926ffeb92bce451f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-api-8.13.1.module">
- <sha256 value="7590a334c02c7e9fa33f9d3074573835a51621c83399edd270900bdf0c822dd9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle-api" version="8.13.2">
- <artifact name="gradle-api-8.13.2.jar">
- <sha256 value="a8dcdc6f1338f7055f6b1bc265317e14d65833e6c7f72b2102c5568e1df4d792" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-api-8.13.2.module">
- <sha256 value="1be00181670666873cd0128e9dec6ee99cd2ae207bab909ecc11ff0cf729bc5d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle-common-api" version="8.13.1">
- <artifact name="gradle-common-api-8.13.1.jar">
- <sha256 value="ea68987edcb89c05d98e66e2ea4b4e173b5583259cc3df03f820e17a57fbc66a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-common-api-8.13.1.module">
- <sha256 value="0e45b1a530177a06f5afce9e4bccf9263396bb272db4f05f60a1665d160e8f1d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle-common-api" version="8.13.2">
- <artifact name="gradle-common-api-8.13.2.jar">
- <sha256 value="fcde805fcd5739aed607a9cdc325316f422fa05a46e140a291d2f24eca3a59fe" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-common-api-8.13.2.module">
- <sha256 value="9e6edcd959f6ed87a2273b85de0f4efac26e7cdcbf4bd6a4a3f4e05c8e7e7c1c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle-settings-api" version="8.13.1">
- <artifact name="gradle-settings-api-8.13.1.jar">
- <sha256 value="b5c3d12fa67cd5be46af19483f060e1ce06afb91c64606102b5d0845fb566ab5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-settings-api-8.13.1.module">
- <sha256 value="0d382614e05140a3e95abba505937de35e3164a881a729e6130a03199ba29e0f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="gradle-settings-api" version="8.13.2">
- <artifact name="gradle-settings-api-8.13.2.jar">
- <sha256 value="370438bcf7782d8c5b407370365b047bf063f99a7745e1f5f1853183398d07a6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-settings-api-8.13.2.module">
- <sha256 value="e5cac798c13234eea43adb084c5c81c20ad1c36cc4b5b57f3922d91f4ec024d6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="manifest-merger" version="31.13.1">
- <artifact name="manifest-merger-31.13.1.jar">
- <sha256 value="5c034df6ca2ff5df7304838a46768ca0feaf794f6816059c040db0cd8dd4f008" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="manifest-merger-31.13.1.module">
- <sha256 value="8871cdec52a86567a8c6e38767450961e2c3b6bc4e35c32fd5e0add3125c512c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="manifest-merger" version="31.13.2">
- <artifact name="manifest-merger-31.13.2.jar">
- <sha256 value="40d25f5940c2e50bf7e18e325f7fbb9c86cf45db5a85d1cef8ef985404227a1f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="manifest-merger-31.13.2.module">
- <sha256 value="4bd9d47df07b78174a72faa92423935af29d17c9896a84b658b921f6f1a92348" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build" name="transform-api" version="2.0.0-deprecated-use-gradle-api">
- <artifact name="transform-api-2.0.0-deprecated-use-gradle-api.jar">
- <sha256 value="4de4a3d05e1c534c2db9e4588bf34082bb2bd232d8abb9727c430290ce225740" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build.jetifier" name="jetifier-core" version="1.0.0-beta10">
- <artifact name="jetifier-core-1.0.0-beta10.jar">
- <sha256 value="26abb4a13927d9062169c504c9e94fe80e9ae3a4f7b5ab8875ab007536a91f5e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="jetifier-core-1.0.0-beta10.module">
- <sha256 value="f0917589a42d276163f10040ab5842e91883dcbdb1d48bfd1f1fcaa72c1ca7b7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.build.jetifier" name="jetifier-processor" version="1.0.0-beta10">
- <artifact name="jetifier-processor-1.0.0-beta10.jar">
- <sha256 value="c5067a7b928237a1271a5e9cb5710e9f80b4973293945bc51e3a4c864ea4bfed" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="jetifier-processor-1.0.0-beta10.module">
- <sha256 value="36c25576b19993df360170528cc62b7246c37776d6158154a67cdf8fc2d58e13" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.ddms" name="ddmlib" version="31.13.1">
- <artifact name="ddmlib-31.13.1.jar">
- <sha256 value="839957f961100713ea0eed628a8684cc39aa479631c36249793e6df7e0cd63d8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.ddms" name="ddmlib" version="31.13.2">
- <artifact name="ddmlib-31.13.2.jar">
- <sha256 value="839957f961100713ea0eed628a8684cc39aa479631c36249793e6df7e0cd63d8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.emulator" name="proto" version="31.13.2">
- <artifact name="proto-31.13.2.jar">
- <sha256 value="b77f81cc0751d79393ec4b2eb046f910d21abcd7608b5b0f5a1efea1b3243b48" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.external.com-intellij" name="intellij-core" version="31.13.2">
- <artifact name="intellij-core-31.13.2.jar">
- <sha256 value="9a6faa6061d0f3d54a64decb61944c1b2c6927f8d325cd298c82c2a8d867ee68" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.external.com-intellij" name="kotlin-compiler" version="31.13.2">
- <artifact name="kotlin-compiler-31.13.2.jar">
- <sha256 value="552dfaffe295d08504870816c27fc09007e1231fb9b14c1ff9bbf861f9b35990" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.external.org-jetbrains" name="uast" version="31.13.2">
- <artifact name="uast-31.13.2.jar">
- <sha256 value="78f18ac2b2509fb6cb19058e8fc9585c361b97990dd7d5db0c2a94744dfb0a96" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.13.1">
- <artifact name="layoutlib-api-31.13.1.jar">
- <sha256 value="d06bc650247632a4a4e6596b87312019f45e900267c5476c47a5bfa6e3fd3132" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.13.2">
- <artifact name="layoutlib-api-31.13.2.jar">
- <sha256 value="d06bc650247632a4a4e6596b87312019f45e900267c5476c47a5bfa6e3fd3132" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint" version="31.13.2">
- <artifact name="lint-31.13.2.jar">
- <sha256 value="7f875a980ee23916439d368d073cfbc2ee4e4d99ffe1b3e13da794fef347f29a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-api" version="31.13.2">
- <artifact name="lint-api-31.13.2.jar">
- <sha256 value="8f770657dba33f305e583c62953a4f174c75a7b1cd2da7d31134be36a96ae2ac" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-checks" version="31.13.2">
- <artifact name="lint-checks-31.13.2.jar">
- <sha256 value="3b64f395ae17fcea104882b00a4acdc7dc691f5daca5dff2bdde89fa052bb199" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-gradle" version="31.13.2">
- <artifact name="lint-gradle-31.13.2.jar">
- <sha256 value="a42b6a41c436d90ca31a13d67afba1157b157efc892a7496f67432bf8a831cbd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-model" version="31.13.1">
- <artifact name="lint-model-31.13.1.jar">
- <sha256 value="9ee55d8fd002736ed95ee97fb05f4df7ae01f4f976f738fbf37ecab795e59319" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-model" version="31.13.2">
- <artifact name="lint-model-31.13.2.jar">
- <sha256 value="9ee55d8fd002736ed95ee97fb05f4df7ae01f4f976f738fbf37ecab795e59319" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-typedef-remover" version="31.13.1">
- <artifact name="lint-typedef-remover-31.13.1.jar">
- <sha256 value="4a3ba3babfd79e6fc67bcef647fb4ecfeaf59b481b108f7c2eba4d1c5c6dea8e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.lint" name="lint-typedef-remover" version="31.13.2">
- <artifact name="lint-typedef-remover-31.13.2.jar">
- <sha256 value="4a3ba3babfd79e6fc67bcef647fb4ecfeaf59b481b108f7c2eba4d1c5c6dea8e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-device-provider-ddmlib" version="31.13.2">
- <artifact name="android-device-provider-ddmlib-31.13.2.jar">
- <sha256 value="b16ebfef5b63b03b803ead0a5e194ee34e0dd361c1e191557d998f01534744ff" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-device-provider-ddmlib-31.13.2.module">
- <sha256 value="15745704fb951a3629b1a2635ac6e21085b0f6e6325966d47725e50c3a5fac5b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.13.1">
- <artifact name="android-device-provider-ddmlib-proto-31.13.1.jar">
- <sha256 value="047aecdd66e106137f77a52c442f1b83db7d6e8496899800251f206c7f39de65" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.13.2">
- <artifact name="android-device-provider-ddmlib-proto-31.13.2.jar">
- <sha256 value="047aecdd66e106137f77a52c442f1b83db7d6e8496899800251f206c7f39de65" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-device-provider-profile" version="31.13.2">
- <artifact name="android-device-provider-profile-31.13.2.jar">
- <sha256 value="9560c25859c9c15c77144cbb58370bad394882ecc3169fd5e589b7d4e52e866f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-device-provider-profile-31.13.2.module">
- <sha256 value="7cce606becb5853221ca900b7540d0e6cbb8c1ed4c2adf0b06ee39c36d0e4de9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-device-provider-profile-proto" version="31.13.1">
- <artifact name="android-device-provider-profile-proto-31.13.1.jar">
- <sha256 value="3e7b098f6e3ecae31b6f7909c343b4ec09aa18d8a89f41bf92077ba4b056f453" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-device-provider-profile-proto" version="31.13.2">
- <artifact name="android-device-provider-profile-proto-31.13.2.jar">
- <sha256 value="3e7b098f6e3ecae31b6f7909c343b4ec09aa18d8a89f41bf92077ba4b056f453" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output" version="31.13.2">
- <artifact name="android-test-plugin-host-additional-test-output-31.13.2.jar">
- <sha256 value="faae42a16cf76d7529b59b1b9a4dbf9cb1bedca58118eba824fddb8312dc7655" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-host-additional-test-output-31.13.2.module">
- <sha256 value="b0a3c5b358d6b6267448eb6abfeaf6ad025ab1f07cb3b650af52fd702badfc05" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.13.1">
- <artifact name="android-test-plugin-host-additional-test-output-proto-31.13.1.jar">
- <sha256 value="6ba7e6ac2208d74c1bb5f1d1464abafc6a45d8710b20455a2dc02adf8726bc83" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.13.2">
- <artifact name="android-test-plugin-host-additional-test-output-proto-31.13.2.jar">
- <sha256 value="6ba7e6ac2208d74c1bb5f1d1464abafc6a45d8710b20455a2dc02adf8726bc83" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-apk-installer" version="31.13.2">
- <artifact name="android-test-plugin-host-apk-installer-31.13.2.jar">
- <sha256 value="949c6f65122129d3ecd59b0899860e8e24e9682cec1c008d1f11a5cc93366f64" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-host-apk-installer-31.13.2.module">
- <sha256 value="ae4945c1102dc8f53075f61eba8a0f666c7437ffebe2b9fb1671968cc4547313" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-apk-installer-proto" version="31.13.1">
- <artifact name="android-test-plugin-host-apk-installer-proto-31.13.1.jar">
- <sha256 value="4f2b610542e91a35a396b04368a784036e42b8787021460550b9a3495bb8245b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-apk-installer-proto" version="31.13.2">
- <artifact name="android-test-plugin-host-apk-installer-proto-31.13.2.jar">
- <sha256 value="4f2b610542e91a35a396b04368a784036e42b8787021460550b9a3495bb8245b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-coverage" version="31.13.2">
- <artifact name="android-test-plugin-host-coverage-31.13.2.jar">
- <sha256 value="4993a95049e52c4d3147e9c4dfc696cc5a76af8303a4206bb60c2bfabc563ae9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-host-coverage-31.13.2.module">
- <sha256 value="daf1f2792529dc44cec6897f97fc845dbaa63fec2d6939c97e27c2feea4db3f6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.13.1">
- <artifact name="android-test-plugin-host-coverage-proto-31.13.1.jar">
- <sha256 value="fa86719a3dc5de465f7e0c023184414c27f8fd53a34fd557289c0bf6df340244" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.13.2">
- <artifact name="android-test-plugin-host-coverage-proto-31.13.2.jar">
- <sha256 value="fa86719a3dc5de465f7e0c023184414c27f8fd53a34fd557289c0bf6df340244" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-device-info" version="31.13.2">
- <artifact name="android-test-plugin-host-device-info-31.13.2.jar">
- <sha256 value="a53b9f764d80bed29e0f2e0ee62576dc09b87386608bb62ef1453d032f976968" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-host-device-info-31.13.2.module">
- <sha256 value="6c1222b83fe4d4cc584f6f4419f6a4e95723dcaa453c7a32469ff24c0809e2a0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-device-info-proto" version="31.13.2">
- <artifact name="android-test-plugin-host-device-info-proto-31.13.2.jar">
- <sha256 value="9683ac7648a7a41be9a1349f6981592944f627164898c3c8925a0beede8bb8bb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-emulator-control" version="31.13.2">
- <artifact name="android-test-plugin-host-emulator-control-31.13.2.jar">
- <sha256 value="73022c2a2779eeacfbfce67dda7cfbb21e3b3cf5610a54e35fc30d8fcc860930" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-host-emulator-control-31.13.2.module">
- <sha256 value="01961125568e18cb312446f0e1c4edfd3669fc8a90c459ff505729efe2e073ce" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-emulator-control-proto" version="31.13.1">
- <artifact name="android-test-plugin-host-emulator-control-proto-31.13.1.jar">
- <sha256 value="a4f34aae0f9ffa026dbf7151436dd7ae53becb72622b40f2c479cac8943d9319" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-emulator-control-proto" version="31.13.2">
- <artifact name="android-test-plugin-host-emulator-control-proto-31.13.2.jar">
- <sha256 value="a4f34aae0f9ffa026dbf7151436dd7ae53becb72622b40f2c479cac8943d9319" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-logcat" version="31.13.2">
- <artifact name="android-test-plugin-host-logcat-31.13.2.jar">
- <sha256 value="f559b7c544e29ac3547339805c5e98d938e2a2764691d74ebabeb36e1fca0fba" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-host-logcat-31.13.2.module">
- <sha256 value="df3d289ffba6ff28fa8875462477d911f009cc094c7ca55973b96b31da0269e9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-logcat-proto" version="31.13.1">
- <artifact name="android-test-plugin-host-logcat-proto-31.13.1.jar">
- <sha256 value="c1f6ebbacdad559b6efe4eaa29561552b33156395f069cd9703fda09c462dea6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-logcat-proto" version="31.13.2">
- <artifact name="android-test-plugin-host-logcat-proto-31.13.2.jar">
- <sha256 value="c1f6ebbacdad559b6efe4eaa29561552b33156395f069cd9703fda09c462dea6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle" version="31.13.2">
- <artifact name="android-test-plugin-result-listener-gradle-31.13.2.jar">
- <sha256 value="f5ed39ecda77684730b2616d112d69f92f509e3d6c38828abc6a863ef77fe0e5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-test-plugin-result-listener-gradle-31.13.2.module">
- <sha256 value="689acf1e56994bfe74015218bd89595d57fec14157c5ce66a1c75c7e011f889f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.13.1">
- <artifact name="android-test-plugin-result-listener-gradle-proto-31.13.1.jar">
- <sha256 value="d429b9312dffa0503381d1ee1b18a999bd901e7456612b2fb48c6a5d5a2caf88" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.13.2">
- <artifact name="android-test-plugin-result-listener-gradle-proto-31.13.2.jar">
- <sha256 value="d429b9312dffa0503381d1ee1b18a999bd901e7456612b2fb48c6a5d5a2caf88" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.android.tools.utp" name="utp-common" version="31.13.2">
- <artifact name="utp-common-31.13.2.jar">
- <sha256 value="cde678a64b13041cdd2cc9dad1685990a1d090fb04ff5da2261ff75a83598106" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.facebook" name="ktfmt" version="0.59">
- <artifact name="ktfmt-0.59-with-dependencies.jar">
- <sha256 value="a493271c137074436a133d72e9e323f91604c97e0c40555629ec39598efead54" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktfmt-0.59.jar">
- <sha256 value="3265ed9cea2cec39d1e2abb9034d9206372a5e447a72747933debe6321b7441e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktfmt-0.59.module">
- <sha256 value="b415f24105e0836d5cd637eb6e8baea740dd1cd9e85845591b7658a5b9dc3ab5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.colormath" name="colormath" version="3.6.0">
- <artifact name="colormath-3.6.0.module">
- <sha256 value="6907aa497adb9af63812c75366389ced3e6bb8bee80e7b239adb4c53673f8884" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.colormath" name="colormath-jvm" version="3.6.0">
- <artifact name="colormath-jvm-3.6.0.module">
- <sha256 value="3fa76730f989e0284df182fcec85620d9b48ae3221398841ac6caf88462f62f8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="colormath-jvm.jar">
- <sha256 value="59f741adfe62053066782d8b1a45afd06685a4bc64b33277e54876b993ed885c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant" version="3.0.2">
- <artifact name="mordant-3.0.2.module">
- <sha256 value="d49be54e77ff4b9610dc2f228f81dc0656aa925bc72588f62458db5998950951" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-core" version="3.0.2">
- <artifact name="mordant-core-3.0.2.module">
- <sha256 value="d1f971e5b3294e44bfff3afa440d7ce37a51d588356b0fafb090c046b0e9ce07" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-core-jvm" version="3.0.2">
- <artifact name="mordant-core-jvm-3.0.2.module">
- <sha256 value="e727b60be77c3137aebb2fa7a9d85d185fabb7904d944dc21539d42c011d3590" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mordant-jvm.jar">
- <sha256 value="651c3bd74ff4e98db4d58e3dcf4b14e8099ee0d220e672f571f8cfeee4493905" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm" version="3.0.2">
- <artifact name="mordant-jvm-3.0.2.module">
- <sha256 value="78f68446038324834daee370f597d6248b03cfafe96405adc2b6dd66cdfc3f8c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mordant-omnibus-jvm.jar">
- <sha256 value="9ed3b976fcccc78da746d49866fa8ebb8f10530a93c544ea0420259a607dd95e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm-ffm" version="3.0.2">
- <artifact name="mordant-jvm-ffm-3.0.2.module">
- <sha256 value="1bd714d3d978bab7dad56b7c9485b01fbb5addbac49d4be9c8354ac376ce3f76" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm-ffm-jvm" version="3.0.2">
- <artifact name="mordant-jvm-ffm-jvm-3.0.2.module">
- <sha256 value="4b8fe64653ae03b79216b5c5a0ec26d54ca0f9532bdc7298de4082a5a3887192" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mordant-jvm-ffm-jvm.jar">
- <sha256 value="10224784125c9f1782c1d4f1d38f3d54236fcc55c030a2ad00cbe4306e162ba4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm-graal-ffi" version="3.0.2">
- <artifact name="mordant-jvm-graal-ffi-3.0.2.module">
- <sha256 value="e504cab82b132a78ac6b96f2de2f088e63f55c78837cfa9da2e7d1dee0e9df2d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm-graal-ffi-jvm" version="3.0.2">
- <artifact name="mordant-jvm-graal-ffi-jvm-3.0.2.module">
- <sha256 value="cd30a45c0a30f71c2ccc8c83b8ec7e4ceec338718f668593f8c37cdfd398c1b0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mordant-jvm-graal-ffi-jvm.jar">
- <sha256 value="6dd4bebc164aeacddacc8f98e8f871e00fd21ce7bc2eb0d18230ea83bddfc86a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm-jna" version="3.0.2">
- <artifact name="mordant-jvm-jna-3.0.2.module">
- <sha256 value="b80a0b869dc084c11e10b5e7160ebf189e76d6e9508307916a78567fa767c3e5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ajalt.mordant" name="mordant-jvm-jna-jvm" version="3.0.2">
- <artifact name="mordant-jvm-jna-jvm-3.0.2.module">
- <sha256 value="431e55f9ef8d792c5a785e0146d835f4c2ae0e9858fa420f9de0602682a77126" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mordant-jvm-jna-jvm.jar">
- <sha256 value="41063442c8891b2774536a9b87a5062a7fd20e6f1949974c6da72f49472d6f4d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.ben-manes" name="gradle-versions-plugin" version="0.53.0">
- <artifact name="gradle-versions-plugin-0.53.0.jar">
- <sha256 value="7f2b2dbdd2397ff3f043d7b662ec0d61baabed3aaa7ab22607aef4d98ef3fa62" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-versions-plugin-0.53.0.module">
- <sha256 value="28bbd5c73299d5d198723cd7f24952e1bf514095c4e8eae9b22b1541a89c1082" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.triplet.gradle" name="android-publisher" version="3.12.1">
- <artifact name="android-publisher-3.12.1.jar">
- <sha256 value="97b478e2a8c0a27e2256a58a182d8dd509b2c107b32d838f4d42cbb2c687dca5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-publisher-3.12.1.module">
- <sha256 value="7b6a7cd576209786289b15e6f1689288b3e27d312ca0019ba1ae00d1e4ea965e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.triplet.gradle" name="common-utils" version="3.12.1">
- <artifact name="common-utils-3.12.1.jar">
- <sha256 value="787d2cbe9c47283c9698b54630fccbf2d399a73374985d5b1f63d35c1e6cd3f3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="common-utils-3.12.1.module">
- <sha256 value="062337c0759d196087439b027a06d6b3c282db4d6913ec6a1fa1db18b1c72df5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.triplet.gradle" name="common-validation" version="3.12.1">
- <artifact name="common-validation-3.12.1.jar">
- <sha256 value="9c90094dab9588cd4fd9327376600806c9455b549bfb56c0ce9a2d4b38b87471" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="common-validation-3.12.1.module">
- <sha256 value="f60e5ef98b6c1779de3f7002bbe7d49b798f54ec42a298a739495bbfc8d9118c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.github.triplet.gradle" name="play-publisher" version="3.12.1">
- <artifact name="play-publisher-3.12.1.jar">
- <sha256 value="cc7bcd13076199f99541db866dac3b76afefb3d96958c01311a79cf72332b66d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="play-publisher-3.12.1.module">
- <sha256 value="ca29ffc844a54876874d0cccca57564c744ba72fb3d7739220e4d8df3b8d3654" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.accompanist" name="accompanist-drawablepainter" version="0.37.3">
- <artifact name="accompanist-drawablepainter-0.37.3.aar">
- <sha256 value="0453c4c54ec3ef13ae18b83300f1d2a078b1ca92d3a3781437516630e3b850df" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="accompanist-drawablepainter-0.37.3.module">
- <sha256 value="33f3b5ff498a4aca7453735c731ef3a3e5f714191d1232a28de83f76d342d556" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android" name="annotations" version="4.1.1.4">
- <artifact name="annotations-4.1.1.4.jar">
- <sha256 value="ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.datatransport" name="transport-api" version="3.0.0">
- <artifact name="transport-api-3.0.0.aar">
- <sha256 value="4e6983c0703b357df6f1c6ceacb1b5dfc2c5006a789c799fec2298b2b5337466" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.datatransport" name="transport-backend-cct" version="3.1.8">
- <artifact name="transport-backend-cct-3.1.8.aar">
- <sha256 value="e17edd1ef7fd475c90baa4e39422332f27087d34bcb46cb48ce86af9a54a612e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.datatransport" name="transport-runtime" version="3.1.8">
- <artifact name="transport-runtime-3.1.8.aar">
- <sha256 value="cb9353ef1791ae17097d878ca711e25a9c32cec9042adc49b00cadfee1a7290b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.gms" name="play-services-base" version="18.5.0">
- <artifact name="play-services-base-18.5.0.aar">
- <sha256 value="59a5c0c2da12311d75d965ce1f419498536b1a167fb28ff7dfc2dfd9cefa4157" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.gms" name="play-services-basement" version="18.4.0">
- <artifact name="play-services-basement-18.4.0.aar">
- <sha256 value="ce5c936fd66814b3602f5c6a5e929911ff973d4b05f6de9996da596bef97cad2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.gms" name="play-services-location" version="19.0.0">
- <artifact name="play-services-location-19.0.0.aar">
- <sha256 value="6b205c43ba5df751eca8ce9dae7a58effafac7d637fb4fc708a7522d1b99cf80" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.gms" name="play-services-places-placereport" version="17.0.0">
- <artifact name="play-services-places-placereport-17.0.0.aar">
- <sha256 value="2c7fd63ad02f28150ae4ffe4615dac7d694d790e2c4667f777aedc8ee054e929" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.android.gms" name="play-services-tasks" version="18.2.0">
- <artifact name="play-services-tasks-18.2.0.aar">
- <sha256 value="7f2aaa8f502068eaf54356ca92aec04271d6e7c416c52c45c0d23440fcbd1654" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.api-client" name="google-api-client" version="2.2.0">
- <artifact name="google-api-client-2.2.0.jar">
- <sha256 value="58eca9fb0a869391689ffc828b3bd0b19ac76042ff9fab4881eddf7fde76903f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.api.grpc" name="proto-google-common-protos" version="2.17.0">
- <artifact name="proto-google-common-protos-2.17.0.jar">
- <sha256 value="4ef1fe0c327fc1521d1d753b0b1c4a875a54bd14ebded3afff0ca395320b6ea9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.api.grpc" name="proto-google-common-protos" version="2.48.0">
- <artifact name="proto-google-common-protos-2.48.0.jar">
- <sha256 value="43ec7807459aaa4012e838a1be4ef2d590cf233305da60af5b54f08ec8cf2302" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.apis" name="google-api-services-androidpublisher" version="v3-rev20231115-2.0.0">
- <artifact name="google-api-services-androidpublisher-v3-rev20231115-2.0.0.jar">
- <sha256 value="0d4d87be7221344629affb254b2df2daab686498beb28dc1dca028b3ed91ac49" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auth" name="google-auth-library-credentials" version="1.20.0">
- <artifact name="google-auth-library-credentials-1.20.0.jar">
- <sha256 value="b3054d8757807f8af8015b535fb288ed67456444922211f0f929f4c04e69b0b7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auth" name="google-auth-library-oauth2-http" version="1.20.0">
- <artifact name="google-auth-library-oauth2-http-1.20.0.jar">
- <sha256 value="ab3ee74eeccb12fca40f4444af4d45df9e290f2c3f4751e855697dedf52f7a73" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auto" name="auto-common" version="1.2.1">
- <artifact name="auto-common-1.2.1.jar">
- <sha256 value="f43f29fe2a6ebaf04b2598cdeec32a4e346d49a9404e990f5fc19c19f3a28d0e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auto.service" name="auto-service" version="1.1.1">
- <artifact name="auto-service-1.1.1.jar">
- <sha256 value="1f48f451503e623daba7d9ed368cca0f81e1e3815653a4560113e12c0129ebd5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auto.service" name="auto-service-annotations" version="1.1.1">
- <artifact name="auto-service-annotations-1.1.1.jar">
- <sha256 value="16a76dd00a2650568447f5d6e3a9e2c809d9a42367d56b45215cfb89731f4d24" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auto.value" name="auto-value-annotations" version="1.10.4">
- <artifact name="auto-value-annotations-1.10.4.jar">
- <sha256 value="e1c45e6beadaef9797cb0d9afd5a45621ad061cd8632012f85582853a3887825" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.auto.value" name="auto-value-annotations" version="1.6.2">
- <artifact name="auto-value-annotations-1.6.2.jar">
- <sha256 value="b48b04ddba40e8ac33bf036f06fc43995fc5084bd94bdaace807ce27d3bea3fb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.code.findbugs" name="jsr305" version="3.0.2">
- <artifact name="jsr305-3.0.2.jar">
- <sha256 value="766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.code.gson" name="gson" version="2.10.1">
- <artifact name="gson-2.10.1.jar">
- <sha256 value="4241c14a7727c34feea6507ec801318a3d4a90f070e4525681079fb94ee4c593" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.code.gson" name="gson" version="2.11.0">
- <artifact name="gson-2.11.0.jar">
- <sha256 value="57928d6e5a6edeb2abd3770a8f95ba44dce45f3b23b7a9dc2b309c581552a78b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.code.gson" name="gson" version="2.12.1">
- <artifact name="gson-2.12.1.jar">
- <sha256 value="ebee13d5fb7477cd7f1cc010e0c356df8ca80709715248da97f79e35ccb4fbec" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.code.gson" name="gson" version="2.8.9">
- <artifact name="gson-2.8.9.jar">
- <sha256 value="d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.crypto.tink" name="tink" version="1.7.0">
- <artifact name="tink-1.7.0.jar">
- <sha256 value="88970a456a08ba4c66b01b23e5846ca1095cc14e54cb48363e5d2e15a1307308" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.dagger" name="dagger" version="2.28.3">
- <artifact name="dagger-2.28.3.jar">
- <sha256 value="f1dd23f8ae34a8e91366723991ead0d6499d1a3e9163ce550c200b02d76a872b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.dagger" name="dagger" version="2.48">
- <artifact name="dagger-2.48.jar">
- <sha256 value="1fa226d2b4a02cc80950fa4d49a4a235cc8eced499b581fc358a55446a83f579" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.devtools.ksp" name="symbol-processing-aa-embeddable" version="2.3.4">
- <artifact name="symbol-processing-aa-embeddable-2.3.4.jar">
- <sha256 value="7c183299d072f9a797585c75afa8c8dad4f92d8b7d961232c96a3840f7d1db81" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.devtools.ksp" name="symbol-processing-api" version="2.2.20-2.0.2">
- <artifact name="symbol-processing-api-2.2.20-2.0.2.jar">
- <sha256 value="588d17c4ea982b11028c2c82cb1d7300d269023a8068009f9ae9fb2c9c20c6d9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="symbol-processing-api-2.2.20-2.0.2.module">
- <sha256 value="87d851c11967b0a3737a7cb30c02504eed253707253077eaac003e0782471561" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.devtools.ksp" name="symbol-processing-api" version="2.3.4">
- <artifact name="symbol-processing-api-2.3.4.jar">
- <sha256 value="a20644569ecc01467d3efe4f8b9787a8719ce27ed12b6a3475ae1d82bfb16a0e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="symbol-processing-api-2.3.4.module">
- <sha256 value="09e1e07a4ba654e2f62c6717b79aba501cd1c2cb3963899804793c85265745c0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.devtools.ksp" name="symbol-processing-common-deps" version="2.3.4">
- <artifact name="symbol-processing-common-deps-2.3.4.jar">
- <sha256 value="618db61b5aa753838ef86e726e73f359be8c29b6cd467e36871bc17ea86735d0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="symbol-processing-common-deps-2.3.4.module">
- <sha256 value="e2e8b5f29c3262279df11850c00dd8eea6795469ab0eb878f13a4fe620120471" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.devtools.ksp" name="symbol-processing-gradle-plugin" version="2.3.4">
- <artifact name="symbol-processing-gradle-plugin-2.3.4.jar">
- <sha256 value="1140059611001d61d6bfa88d9b6e9e159a6f9397972c1883ba75a36a0fd1898b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="symbol-processing-gradle-plugin-2.3.4.module">
- <sha256 value="64dc5af430ac9c7b8cd839358e7c6c615d126f797767d5ae4c54f96d8755d4dc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.18.0">
- <artifact name="error_prone_annotations-2.18.0.jar">
- <sha256 value="9e6814cb71816988a4fd1b07a993a8f21bb7058d522c162b1de849e19bea54ae" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.21.1">
- <artifact name="error_prone_annotations-2.21.1.jar">
- <sha256 value="d1f3c66aa91ac52549e00ae3b208ba4b9af7d72d68f230643553beb38e6118ac" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.23.0">
- <artifact name="error_prone_annotations-2.23.0.jar">
- <sha256 value="ec6f39f068b6ff9ac323c68e28b9299f8c0a80ca512dccb1d4a70f40ac3ec054" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.27.0">
- <artifact name="error_prone_annotations-2.27.0.jar">
- <sha256 value="24c923372c58e35d0b9f16a028929bb9aedc77521867c274f2bd0735df5ba1f5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.28.0">
- <artifact name="error_prone_annotations-2.28.0.jar">
- <sha256 value="f3fc8a3a0a4020706a373b00e7f57c2512dd26d1f83d28c7d38768f8682b231e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.30.0">
- <artifact name="error_prone_annotations-2.30.0.jar">
- <sha256 value="144f3aefbd6e27daec55d3753b2c6b13c1afdaf0cf04816cdb564588ed92f1bd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.41.0">
- <artifact name="error_prone_annotations-2.41.0.jar">
- <sha256 value="a56e782b5b50811ac204073a355a21d915a2107fce13ec711331ad036f660fcc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.44.0">
- <artifact name="error_prone_annotations-2.44.0.jar">
- <sha256 value="bcf738a525e546c926a233d0a169cf7eafcf703fe81ac9d6994f7244eda29052" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.firebase" name="firebase-encoders" version="17.0.0">
- <artifact name="firebase-encoders-17.0.0.jar">
- <sha256 value="282a5a703f9b7eb56508dde97ea918e95d73318b157050f457f7a86dca750150" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.firebase" name="firebase-encoders-json" version="18.0.0">
- <artifact name="firebase-encoders-json-18.0.0.aar">
- <sha256 value="80aece7e1ef58957ca2fc1957bc9208ec92a3a9528201331d3c63e3182570f97" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.firebase" name="firebase-encoders-proto" version="16.0.0">
- <artifact name="firebase-encoders-proto-16.0.0.jar">
- <sha256 value="293db96a0d1d43f033167881b638d8fde844e4e5495f5101cf52295765295e0e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.flatbuffers" name="flatbuffers-java" version="1.12.0">
- <artifact name="flatbuffers-java-1.12.0.jar">
- <sha256 value="3f8c088b4dd04a9858721f2e162508c94db0dd86f961e306ee63ef2eda871bf7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.googlejavaformat" name="google-java-format" version="1.23.0">
- <artifact name="google-java-format-1.23.0.jar">
- <sha256 value="f9c5f181faee5c7b380feb96c1a94bec0c55859baeb2d14e9a47d92d40bef021" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.gradle" name="osdetector-gradle-plugin" version="1.7.3">
- <artifact name="osdetector-gradle-plugin-1.7.3.jar">
- <sha256 value="6b4692f913a21b1fb603169ee78ba8f3e4ab2af9d762af9ca88b79126c1c0ad1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="failureaccess" version="1.0.1">
- <artifact name="failureaccess-1.0.1.jar">
- <sha256 value="a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="failureaccess" version="1.0.2">
- <artifact name="failureaccess-1.0.2.jar">
- <sha256 value="8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="failureaccess" version="1.0.3">
- <artifact name="failureaccess-1.0.3.jar">
- <sha256 value="cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="guava" version="32.0.1-jre">
- <artifact name="guava-32.0.1-jre.jar">
- <sha256 value="bd7fa227591fb8509677d0d1122cf95158f3b8a9f45653f58281d879f6dc48c5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="guava" version="32.1.3-jre">
- <artifact name="guava-32.1.3-jre.jar">
- <sha256 value="6d4e2b5a118aab62e6e5e29d185a0224eed82c85c40ac3d33cf04a270c3b3744" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="guava-32.1.3-jre.module">
- <sha256 value="f5fff7642c12e7627bc14289fd267e2602c17f9590e23522c3e63107f61c2942" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="guava" version="33.3.1-jre">
- <artifact name="guava-33.3.1-jre.jar">
- <sha256 value="4bf0e2c5af8e4525c96e8fde17a4f7307f97f8478f11c4c8e35a0e3298ae4e90" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="guava-33.3.1-jre.module">
- <sha256 value="41858c84753fd96a6b7c51122fccef39558c91cc08264e08506bcf20e0e63733" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="guava" version="33.5.0-android">
- <artifact name="guava-33.5.0-android.jar">
- <sha256 value="e380b435404653753e894be80ee6fdd5252d55b07f663d8a004b4e5898ecfaa0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="guava-33.5.0-android.module">
- <sha256 value="5419414be6210e38945e861b5f61e82ccf690a7954877db0e9083bca73b5c0d2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="guava-33.5.0-jre.jar">
- <sha256 value="1e301f0c52ac248b0b14fdc3d12283c77252d4d6f48521d572e7d8c4c2cc4ac7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="guava" version="33.5.0-jre">
- <artifact name="guava-33.5.0-jre.jar">
- <sha256 value="1e301f0c52ac248b0b14fdc3d12283c77252d4d6f48521d572e7d8c4c2cc4ac7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="guava-33.5.0-jre.module">
- <sha256 value="77ed42c8c8b2cebbb93ac9e07543ff6418aa24bdb8517580cf5324e9a6510956" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="listenablefuture" version="1.0">
- <artifact name="listenablefuture-1.0.jar">
- <sha256 value="e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.guava" name="listenablefuture" version="9999.0-empty-to-avoid-conflict-with-guava">
- <artifact name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar">
- <sha256 value="b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.http-client" name="google-http-client" version="1.43.3">
- <artifact name="google-http-client-1.43.3.jar">
- <sha256 value="60aca7428c5a1ff3655b70541a98ff3d70dded48ac1324dae1af39f1b61914af" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.http-client" name="google-http-client-apache-v2" version="1.43.3">
- <artifact name="google-http-client-apache-v2-1.43.3.jar">
- <sha256 value="4cc8485bdda05607c7d8b95b130168ac82ad80bb3618c608fbf941047a96ac3b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.http-client" name="google-http-client-gson" version="1.43.3">
- <artifact name="google-http-client-gson-1.43.3.jar">
- <sha256 value="e31a4edcb9c83954a2587e14fa2f3f8f4aad56152381b3321a3bd0bcae03fa26" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.j2objc" name="j2objc-annotations" version="2.8">
- <artifact name="j2objc-annotations-2.8.jar">
- <sha256 value="f02a95fa1a5e95edb3ed859fd0fb7df709d121a35290eff8b74dce2ab7f4d6ed" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.j2objc" name="j2objc-annotations" version="3.0.0">
- <artifact name="j2objc-annotations-3.0.0.jar">
- <sha256 value="88241573467ddca44ffd4d74aa04c2bbfd11bf7c17e0c342c94c9de7a70a7c64" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.j2objc" name="j2objc-annotations" version="3.1">
- <artifact name="j2objc-annotations-3.1.jar">
- <sha256 value="84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.jimfs" name="jimfs" version="1.1">
- <artifact name="jimfs-1.1.jar">
- <sha256 value="c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.oauth-client" name="google-oauth-client" version="1.34.1">
- <artifact name="google-oauth-client-1.34.1.jar">
- <sha256 value="193edf97aefa28b93c5892bdc598bac34fa4c396588030084f290b1440e8b98a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-gradle-plugin" version="0.9.6">
- <artifact name="protobuf-gradle-plugin-0.9.6.jar">
- <sha256 value="9c0915441a71647b1ddfae79b0ab28e2de763ee5fde1c4a6dd22d58d9389e966" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-java" version="3.24.4">
- <artifact name="protobuf-java-3.24.4.jar">
- <sha256 value="e5655522be1aa5cc1f2f092aa036b0445157f294928eedf1332ac938c7b69686" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-java" version="3.25.5">
- <artifact name="protobuf-java-3.25.5.jar">
- <sha256 value="8540247fad9e06baefa8fb45eb313802d019f485f14300e0f9d6b556ed88e753" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-java-util" version="3.22.3">
- <artifact name="protobuf-java-util-3.22.3.jar">
- <sha256 value="c615f76879dc5c303e4df5b94a6afa39534058c7545db2d483fd95d9f63c8bfe" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-java-util" version="3.24.4">
- <artifact name="protobuf-java-util-3.24.4.jar">
- <sha256 value="133c929e2cfe3990a105d18eaccc49122b2d2fb492b420ef02d5d9f937eaebb8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-java-util" version="3.25.5">
- <artifact name="protobuf-java-util-3.25.5.jar">
- <sha256 value="dacc58b2c3d2fa8d4bddc1acb881e78d6cf7c137dd78bc1d67f6aca732436a8d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-javalite" version="4.33.4">
- <artifact name="protobuf-javalite-4.33.4.jar">
- <sha256 value="457a9f52dc137910b9f6181f10d9cb93f9e82745ad6e3faa3942e155c248f2eb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-kotlin" version="3.24.4">
- <artifact name="protobuf-kotlin-3.24.4.jar">
- <sha256 value="508ca13d97b50f5404eaa37eb4493cb07884162eb7971bf924d8f803d4c21bb4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protobuf-kotlin-lite" version="4.33.4">
- <artifact name="protobuf-kotlin-lite-4.33.4.jar">
- <sha256 value="3dbd1f3fd68af574e97ac5fcfab485b47ae0ae75a996c2cbe7b9d58e2f037d4c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.protobuf" name="protoc" version="4.33.4">
- <artifact name="protoc-4.33.4-linux-aarch_64.exe">
- <sha256 value="d073583627e26647723b66295a900d0486cc8129473f07284929fe0818d38866" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-linux-ppcle_64.exe">
- <sha256 value="a8132d23cd4ba8b46d6e9f08906778a5ecfbe151cf3b9b07dc8c2878b646086e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-linux-s390_64.exe">
- <sha256 value="cc74d12e5ca17544df7b85a16aeb62bfb590a1a98a9153d557e845a03a5e57fa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-linux-x86_32.exe">
- <sha256 value="9799d59556f726845e4b06cf9e1484404d04f0044c0a0d5542a7e5de3a8fdd10" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-linux-x86_64.exe">
- <sha256 value="72e5311d8f2faaea1fcb15d5475ac5f5742ec6dbba8491bb473fc060e4e29e8f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-osx-aarch_64.exe">
- <sha256 value="7307a8eb130252c433432624b87a077e981816a7d8126f8c688f99cc59c280ff" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-osx-x86_64.exe">
- <sha256 value="724e83dfa52c649f43c55553adda04e0ac3d0a0588935a815ff429e37a05c70b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-windows-x86_32.exe">
- <sha256 value="7bf5888ce337cb250b0d3b3c5b4ba184791d1fad92a0c83cfe558879bd7f1424" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-4.33.4-windows-x86_64.exe">
- <sha256 value="74780baad89d037e7fdce633da5305f15a52b499bf084dcf43bad4405a2be9c5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.testing.platform" name="android-device-provider-local" version="0.0.9-alpha03">
- <artifact name="android-device-provider-local-0.0.9-alpha03.jar">
- <sha256 value="667a4d35bbba87d3c86f5180dfa521fdbd7a4ef5c60d949154b0301f3e232e1b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.testing.platform" name="android-driver-instrumentation" version="0.0.9-alpha03">
- <artifact name="android-driver-instrumentation-0.0.9-alpha03.jar">
- <sha256 value="507c632ec7db77bcb299b5519d59b14cc6243aac541767c632fdbeddc6226b07" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.testing.platform" name="android-test-plugin" version="0.0.9-alpha03">
- <artifact name="android-test-plugin-0.0.9-alpha03.jar">
- <sha256 value="d6cb7e126f433037190bcd3c3b904b19ba842d46b17b0fd27c38cc4ccecbec90" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.testing.platform" name="core" version="0.0.9-alpha03">
- <artifact name="core-0.0.9-alpha03.jar">
- <sha256 value="6e1806d015c416596f53a45a3100e25743c313a6e3fc4f52f24e8b257f2c82ce" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.testing.platform" name="core-proto" version="0.0.9-alpha03">
- <artifact name="core-proto-0.0.9-alpha03.jar">
- <sha256 value="d001eb0ccbbfc8cb9eaa193a358e63712974639775647be949ab232c2b29b407" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.google.testing.platform" name="launcher" version="0.0.9-alpha03">
- <artifact name="launcher-0.0.9-alpha03.jar">
- <sha256 value="0012f980a059a0c4c216d0f1d0016867ab31eb8079e3f8f879f1f02b7be3a6e7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.googlecode.juniversalchardet" name="juniversalchardet" version="1.0.3">
- <artifact name="juniversalchardet-1.0.3.jar">
- <sha256 value="757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.gradle.publish" name="plugin-publish-plugin" version="2.0.0">
- <artifact name="plugin-publish-plugin-2.0.0.jar">
- <sha256 value="99e767145f0ef9ccb7d418e3efb33a77faa13592272154d9d4ddebf76fa73bf2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="plugin-publish-plugin-2.0.0.module">
- <sha256 value="df88ba3ca16035a29d041c512f3cad25def40b86420e0e87be53aaaf4aa4cb48" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.jakewharton.android.repackaged" name="dalvik-dx" version="9.0.0_r3">
- <artifact name="dalvik-dx-9.0.0_r3.jar">
- <sha256 value="b29c1c21e52ed6238cd3fed39d880a17ecf2360118604548cea8821be6801e1c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.lemonappdev" name="konsist" version="0.17.3">
- <artifact name="konsist-0.17.3.jar">
- <sha256 value="ba7a5b08838c36d6b04395869680fb40110c1821aae3898d2932644eb372d744" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="konsist-0.17.3.module">
- <sha256 value="08e51e4ee33cc2dcfa80d011cd67768a8ff226846acf118a01b5466c57f0d54d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.linkedin.dexmaker" name="dexmaker" version="2.28.6">
- <artifact name="dexmaker-2.28.6.jar">
- <sha256 value="fdb1d3632c66694ed4cd3445cd86da70286f93b55d613e30361abec6d23404ac" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="dexmaker-2.28.6.module">
- <sha256 value="ab57600b8a453d5f91cb603075b7870ace6d050e3a2b58cdd63462c4987f5e35" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.ncorti.ktfmt.gradle" name="plugin" version="0.25.0">
- <artifact name="plugin-0.25.0.jar">
- <sha256 value="779c92493e3d5f7ae12796791619192283695986a0e696279e954ee0e8ac1247" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="plugin-0.25.0.module">
- <sha256 value="3ab7ef5c172d307ddc6675d2939cd207a7aa0c2723d8d9b445faaab41785a803" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup" name="javapoet" version="1.10.0">
- <artifact name="javapoet-1.10.0.jar">
- <sha256 value="20ef4b82e43ff7c652281a21313cf3b941092467add3fa73509c26f6969efdab" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup" name="javawriter" version="2.5.0">
- <artifact name="javawriter-2.5.0.jar">
- <sha256 value="fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.curtains" name="curtains" version="1.2.4">
- <artifact name="curtains-1.2.4.aar">
- <sha256 value="7f53e22dad8df994cec6867943c6a757190d412c6a30bcc091d44d8cde15fa54" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="curtains-1.2.4.module">
- <sha256 value="0b1d5c37de8332db752e9f3dd192dc3fa712ebcce37a2876e652abc7d13169c9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-android" version="2.14">
- <artifact name="leakcanary-android-2.14.aar">
- <sha256 value="f24b5072d8319e191481861658a5bc3a4aeacec9be5c0b91d25ae4c437149daf" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-android-2.14.module">
- <sha256 value="f4e0139fa89bb8eb6e2f28be175db32a3dc425c66bb4d51b9a454f214021a815" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-android-core" version="2.14">
- <artifact name="leakcanary-android-core-2.14.aar">
- <sha256 value="204f16eb8620ec4aefa35b122afe977ace60d35f56376c07a3921cf9aa92127c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-android-core-2.14.module">
- <sha256 value="704f95694d80e9b50ab44e2aa6dbd1dfb47ae5561040cdecd71f5f609bec96b3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-android-utils" version="2.14">
- <artifact name="leakcanary-android-utils-2.14.aar">
- <sha256 value="a7f3288ad5099b0cfdb465f87547631986611c4796f08f07c7defad89749c607" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-android-utils-2.14.module">
- <sha256 value="afeb772f95cc8728a62f132b4a2ab0401164cea2e5260314297f08f18396a696" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-object-watcher" version="2.14">
- <artifact name="leakcanary-object-watcher-2.14.jar">
- <sha256 value="575a046bcc362916fa6f106373f393bacf5578f13640419a464b4c81d89e646e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-object-watcher-2.14.module">
- <sha256 value="18a260cb9dca5524881a80ba2a87397a7c3bdf47c6944fc7bf2bc038e4edbdd4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-object-watcher-android" version="2.14">
- <artifact name="leakcanary-object-watcher-android-2.14.aar">
- <sha256 value="a5fa2035838b9b91dbe9e75e30285dbc3c7285d25c6bcd0d359c4c35584d18b6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-object-watcher-android-2.14.module">
- <sha256 value="4b2af6473d45a4a90f673355e5a35ed914212c043bf0a8e5e53ca9ac140abc67" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-object-watcher-android-androidx" version="2.14">
- <artifact name="leakcanary-object-watcher-android-androidx-2.14.aar">
- <sha256 value="d853a58f6f9bdbf574893f56cc9dabbde03ef55ae998d9be57b573fdb2289edb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-object-watcher-android-androidx-2.14.module">
- <sha256 value="9d4d3e76039750512477f2fe49a6dadbd10e5ac524dd4389b31621412679cbba" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-object-watcher-android-core" version="2.14">
- <artifact name="leakcanary-object-watcher-android-core-2.14.aar">
- <sha256 value="4a1b32588657ba960c09df1bff04c78872bde038565552da8bc148d69ae41cf2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-object-watcher-android-core-2.14.module">
- <sha256 value="dcc59d25efc5a5c6ca33582116d53b03560d954338785847c018679a42d2152c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="leakcanary-object-watcher-android-support-fragments" version="2.14">
- <artifact name="leakcanary-object-watcher-android-support-fragments-2.14.aar">
- <sha256 value="32ef945b5a63c43772290867191a85030743f9401b83641d7a29a5c81b8fbb88" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="leakcanary-object-watcher-android-support-fragments-2.14.module">
- <sha256 value="9aa407190cf5fac4558cf6ae6f819207e0316ca6e4b198a3bbe162c66a73e463" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="plumber-android" version="2.14">
- <artifact name="plumber-android-2.14.aar">
- <sha256 value="deccc6849f6b84788f4fdbce5cc05c3d5a029aa365902cbb28426a21e3cdf7ac" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="plumber-android-2.14.module">
- <sha256 value="9efc4ccf3164cac22c93d8a86eefa04ad2a14205e28e05c66a79b0821dac90ba" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="plumber-android-core" version="2.14">
- <artifact name="plumber-android-core-2.14.aar">
- <sha256 value="eb595ab5d7e4b1e9d9f8a7a654e8aed42e2cdec6a6ec69acfdc6d8f3b08967a6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="plumber-android-core-2.14.module">
- <sha256 value="abd96e6d9ff9652b0db552581aa72fb1b43e6aebbd0df03d5d880abbd4b747d7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="shark" version="2.14">
- <artifact name="shark-2.14.jar">
- <sha256 value="ffadb874b3a4d4d0033afd302e37b26ade2b63d6e23f9bcd568f727304845f01" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="shark-2.14.module">
- <sha256 value="164cdd22c73320fbca801ad0a5a6496627c021298c6f3c6050e5fb31a3bf7ff4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="shark-android" version="2.14">
- <artifact name="shark-android-2.14.jar">
- <sha256 value="b79dfb05903e69018d598bb4da4f41e0f7732a585cb66a0a5ffb5b89d2076c72" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="shark-android-2.14.module">
- <sha256 value="d4ddd46980648563060903924200718e9a1d8a3268798d82d28a881db6ffeaa4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="shark-graph" version="2.14">
- <artifact name="shark-graph-2.14.jar">
- <sha256 value="7596fc9caea47e95f6001f57098b66c64beaa968c1354ab6c0aa98dee901681b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="shark-graph-2.14.module">
- <sha256 value="228d0b2b245ab443b721943e1f5280a8f0eddac6c548a36376d0563335603518" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="shark-hprof" version="2.14">
- <artifact name="shark-hprof-2.14.jar">
- <sha256 value="8f19f11585b0fb34fb8cac021504208ed1c73dfe8cb1f69b2bdb0437bb1191fa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="shark-hprof-2.14.module">
- <sha256 value="7e23b15eb1bcdeca51f267f1c4603d5ffe6fa191aac8a6ac68e7ead9eb4fe932" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.leakcanary" name="shark-log" version="2.14">
- <artifact name="shark-log-2.14.jar">
- <sha256 value="ba1011ae450664f7e8e37c5b6e5e01660b11456ddca8960b5cbe6df0e3f99926" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="shark-log-2.14.module">
- <sha256 value="52a8fef5c31eda7c6f7943ee9c9ef4cef2e448ea69a8857c213a96e074f966fc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.moshi" name="moshi" version="1.12.0">
- <artifact name="moshi-1.12.0.jar">
- <sha256 value="ee9091e1d1a5926fa9b4df2642c1fb7bb96aec08639b6219c19e0b8724d42475" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="moshi-1.12.0.module">
- <sha256 value="b86a93154471213195a442f85ca046e79a001c6d446c41d4d168936da856ebe2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.moshi" name="moshi" version="1.13.0">
- <artifact name="moshi-1.13.0.jar">
- <sha256 value="bd004dd9ba175e603ad44420bf605250291b9b7bc6b9d9e916f5741ac8663307" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="moshi-1.13.0.module">
- <sha256 value="dc5640e1a802012f7cf7171dab8a340d52e7714661a9d9dbb0b36788f1db04fc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.moshi" name="moshi-kotlin" version="1.12.0">
- <artifact name="moshi-kotlin-1.12.0.jar">
- <sha256 value="1c436c07c159cd1af032bb79351a48a98e7f781ac807cff8b5711a999b5666df" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="moshi-kotlin-1.12.0.module">
- <sha256 value="2a7bca66d6ccf16855cb5a0aa7c95158f688925a263efe4c204b237254861fa1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okhttp3" name="okhttp" version="4.12.0">
- <artifact name="okhttp-4.12.0.jar">
- <sha256 value="b1050081b14bb7a3a7e55a4d3ef01b5dcfabc453b4573a4fc019767191d5f4e0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="okhttp-4.12.0.module">
- <sha256 value="607e220ff8215b929d829bbf54f332894f1459b4d795979aeafcbcc1cea54cf3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okio" name="okio" version="3.4.0">
- <artifact name="okio-3.4.0.module">
- <sha256 value="69173608417a2113e6fa6afeb7b4540b20df70cfda3fa16c73aaa4fa702ffad3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okio" name="okio" version="3.6.0">
- <artifact name="okio-3.6.0.module">
- <sha256 value="6a47ac50364e6598459401fb86f9b6cfcdf637b9b3a3045b1cc33cbf4c408218" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okio" name="okio" version="3.9.1">
- <artifact name="okio-3.9.1.module">
- <sha256 value="9b90b4274a5ad602dd574d6d4b48903663b2de9a60b9fc3402248293d843e121" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okio" name="okio-jvm" version="3.4.0">
- <artifact name="okio-jvm-3.4.0.jar">
- <sha256 value="0139ec7a506dbbd54cad62291b019cb850534be097c8c66c1000d5fbe8edef3e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="okio-jvm-3.4.0.module">
- <sha256 value="6fec13cf3361600364bfcc68004af7c760ceaf1fc1bbcc958742ae4d61db1512" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okio" name="okio-jvm" version="3.6.0">
- <artifact name="okio-jvm-3.6.0.jar">
- <sha256 value="67543f0736fc422ae927ed0e504b98bc5e269fda0d3500579337cb713da28412" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="okio-jvm-3.6.0.module">
- <sha256 value="b1c2199e1c0cc969ef61cbbe4af2ecaf9b06411bdde01cbaf6fc9134dfe04e8a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.okio" name="okio-jvm" version="3.9.1">
- <artifact name="okio-jvm-3.9.1.jar">
- <sha256 value="fe6fe91378f9bfa7b08c3864828ce418005cf28acca12e8847eb65c565c37500" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="okio-jvm-3.9.1.module">
- <sha256 value="b0afa9192c42d7c463de38d6325936c6901d9e3b7149735ffd18a11df31034ab" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.wire" name="wire-runtime" version="5.2.1">
- <artifact name="wire-runtime-5.2.1.module">
- <sha256 value="8ab81d1979d886d962a60b56f254590de381344b82559df3303478ff9e631232" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.squareup.wire" name="wire-runtime-jvm" version="5.2.1">
- <artifact name="wire-runtime-jvm-5.2.1.jar">
- <sha256 value="da392e28917a7467dae41f50323d453722f2a66b95d479c1ac565b09b056e697" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="wire-runtime-jvm-5.2.1.module">
- <sha256 value="503c86cf21c0d68505778f3c8c512cc590c9fb6f9c15803fd71fc5003822ecdc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.sun.activation" name="javax.activation" version="1.2.0">
- <artifact name="javax.activation-1.2.0.jar">
- <sha256 value="993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.sun.istack" name="istack-commons-runtime" version="3.0.8">
- <artifact name="istack-commons-runtime-3.0.8.jar">
- <sha256 value="4ffabb06be454a05e4398e20c77fa2b6308d4b88dfbef7ca30a76b5b7d5505ef" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.sun.xml.fastinfoset" name="FastInfoset" version="1.2.16">
- <artifact name="FastInfoset-1.2.16.jar">
- <sha256 value="056f3a1e144409f21ed16afc26805f58e9a21f3fce1543c42d400719d250c511" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="com.typesafe" name="config" version="1.4.5">
- <artifact name="config-1.4.5.jar">
- <sha256 value="4a4b0affb22a9572409d3a6bde99ce3f2045c551cadc1ca7fe09690892c526c3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-codec" name="commons-codec" version="1.10">
- <artifact name="commons-codec-1.10.jar">
- <sha256 value="4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-codec" name="commons-codec" version="1.11">
- <artifact name="commons-codec-1.11.jar">
- <sha256 value="e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-codec" name="commons-codec" version="1.15">
- <artifact name="commons-codec-1.15.jar">
- <sha256 value="b3e9f6d63a790109bf0d056611fbed1cf69055826defeb9894a71369d246ed63" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-collections" name="commons-collections" version="3.2.2">
- <artifact name="commons-collections-3.2.2.jar">
- <sha256 value="eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-digester" name="commons-digester" version="2.1">
- <artifact name="commons-digester-2.1.jar">
- <sha256 value="e0b2b980a84fc6533c5ce291f1917b32c507f62bcad64198fff44368c2196a3d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-io" name="commons-io" version="2.16.1">
- <artifact name="commons-io-2.16.1.jar">
- <sha256 value="f41f7baacd716896447ace9758621f62c1c6b0a91d89acee488da26fc477c84f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-logging" name="commons-logging" version="1.2">
- <artifact name="commons-logging-1.2.jar">
- <sha256 value="daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-logging" name="commons-logging" version="1.3.5">
- <artifact name="commons-logging-1.3.5.jar">
- <sha256 value="6d7a744e4027649fbb50895df9497d109f98c766a637062fe8d2eabbb3140ba4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="commons-validator" name="commons-validator" version="1.10.1">
- <artifact name="commons-validator-1.10.1.jar">
- <sha256 value="ed74711a78d793ca37f6075e4a1e93d107233dfd20d0bb17e32bad88d38e56aa" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="de.mannodermaus.gradle.plugins" name="android-junit5" version="1.13.1.0">
- <artifact name="android-junit5-1.13.1.0.jar">
- <sha256 value="a9842515242319af833f714602de6df7d9663aedf9e5a8c5b5876fc2309222ab" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="android-junit5-1.13.1.0.module">
- <sha256 value="8acc2bd098554c9f713d0bdb7f3b3b1627e390a59449d3a4de9ed2de16a00f98" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="de.mannodermaus.junit5" name="android-test-compose" version="1.8.0">
- <artifact name="android-test-compose-1.8.0.aar">
- <sha256 value="e5862af71416d2286fa34aeeecb54e18b139bb52f97e102e50a7722b3501fb7c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="de.mannodermaus.junit5" name="android-test-core" version="1.8.0">
- <artifact name="android-test-core-1.8.0.aar">
- <sha256 value="d263d42ee93b40c90734090728c5d27685fdfa7f575db3245df6ed90926c42a5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="de.mannodermaus.junit5" name="android-test-extensions" version="1.8.0">
- <artifact name="android-test-extensions-1.8.0.aar">
- <sha256 value="ccd3bf8b2cf1215a138df7a6635b40848dabf089e7b44a4fadda5a1e86cc7ed4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="de.mannodermaus.junit5" name="android-test-runner" version="1.8.0">
- <artifact name="android-test-runner-1.8.0.aar">
- <sha256 value="dc119bd88eabb372acca9705ba3af4a1a95705dfb66e30efa2c9928fc2647e8b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="dev.drewhamilton.poko" name="poko-annotations" version="0.17.1">
- <artifact name="poko-annotations-0.17.1.module">
- <sha256 value="c7c2360e82869c48cb9c5156b835cf288189cebdf39aa637b1a70273a2314852" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="dev.drewhamilton.poko" name="poko-annotations-jvm" version="0.17.1">
- <artifact name="poko-annotations-jvm-0.17.1.jar">
- <sha256 value="940e6d50445bc6b0ae26ad414ec7b953a3e4e802dc7756cc14d56958bc97cc31" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="poko-annotations-jvm-0.17.1.module">
- <sha256 value="edcefb0416af86c7848ef10c7d4417d3db2f32bdf5854864aca9d05d76eb6ae5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-annotations" version="2.2.1.1">
- <artifact name="arrow-annotations-2.2.1.1.module">
- <sha256 value="971f269db2f2d901b555f1c7f2a684948f7021b0f7098545db541c3a4fcb4c67" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-annotations-android" version="2.2.1.1">
- <artifact name="arrow-annotations-android-2.2.1.1.module">
- <sha256 value="3db6c6e78d8eb89fde24f37585cfbb361cced1f50b424f18081e25c6162926bc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-annotations.aar">
- <sha256 value="fb18f0748d8f3131e29ca109992e2e1cacb903a25ce141c05c5c505e65bee6f3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-annotations-jvm" version="2.2.1.1">
- <artifact name="arrow-annotations-jvm-2.2.1.1.jar">
- <sha256 value="579e6b6918fab3a2ce4fe7b72d70afdef71c4097ef075ca4fc5db032973b9040" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-annotations-jvm-2.2.1.1.module">
- <sha256 value="a9a9e212d156ccb10a765dc3e6eef9acdda97affb51b391ae83348d38dfee426" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-atomic" version="2.2.1.1">
- <artifact name="arrow-atomic-2.2.1.1.module">
- <sha256 value="ed4a50c33194f45baad49a7b900ee8f997b26a95ba5577cfa6aca04a7eb5d134" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-atomic-android" version="2.2.1.1">
- <artifact name="arrow-atomic-android-2.2.1.1.module">
- <sha256 value="c308a6f828581cc58af2b680cbb7c0fdaa24c0fe23155d78bda46c73d1a4db76" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-atomic.aar">
- <sha256 value="e6289551c3507e977e97ad57fa8bb2ffd00f4a8ba0159afbe75174415cda048c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-atomic-jvm" version="2.2.1.1">
- <artifact name="arrow-atomic-jvm-2.2.1.1.jar">
- <sha256 value="4bda03d528a74ff76b215487afab361ef9038de5fef669de9f75e337f63d978e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-atomic-jvm-2.2.1.1.module">
- <sha256 value="73305f6e782c970d157b492487e9a456d61fcf3a68fc5ae75d0d89ceddc72774" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-autoclose" version="2.2.1.1">
- <artifact name="arrow-autoclose-2.2.1.1.module">
- <sha256 value="85d74131d54cf2a223abd72cf056af172607d10952b076ac2a2b6a202f7b9369" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-autoclose-android" version="2.2.1.1">
- <artifact name="arrow-autoclose-android-2.2.1.1.module">
- <sha256 value="f11702e03c9eb0166657342ab1a8234612ee1a3f1e51c3a5cce4bb398db6a6bd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-autoclose.aar">
- <sha256 value="8b2208810d2e67b05e94cc2f41b74fcd9a91ddf6e6cc004530f68373bc636753" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-autoclose-jvm" version="2.2.1.1">
- <artifact name="arrow-autoclose-jvm-2.2.1.1.jar">
- <sha256 value="d81a921e45f75ca9e3e4920cfa7b0bafc5c99413ea253f3d4be42213dadcd825" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-autoclose-jvm-2.2.1.1.module">
- <sha256 value="30e2a80f785a17346a661bc2c51feec14102c72562b71fca237f5b1db0e6e84d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-core" version="2.2.1.1">
- <artifact name="arrow-core-2.2.1.1.module">
- <sha256 value="16e9997483e44bcdf0281383f1aa82672638746f519b29e3e69890566080b179" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-core-android" version="2.2.1.1">
- <artifact name="arrow-core-android-2.2.1.1.module">
- <sha256 value="f76d407fede50dd55c88a5b8be74abde6c4cd584ebf6da68610e420a40969fae" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-core.aar">
- <sha256 value="375a1348d4aefb24b695dc419b0bd38a9f947722038f25f8aabbb3f45351769b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-core-jvm" version="2.2.1.1">
- <artifact name="arrow-core-jvm-2.2.1.1.jar">
- <sha256 value="80e205019e58969aa0ee2ad27137be985683a3facdb4b3eb9ca3916295fcbd7c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-core-jvm-2.2.1.1.module">
- <sha256 value="ec555e82885e774007cb60a32299718b364b62ecb1b5fb8e01e1bf64f2476722" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-exception-utils" version="2.2.1.1">
- <artifact name="arrow-exception-utils-2.2.1.1.module">
- <sha256 value="c4c673359ab1d80aed192805e0d8fbe3fc7abe641a739b9cae7ed0684abdbb68" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-exception-utils-android" version="2.2.1.1">
- <artifact name="arrow-exception-utils-android-2.2.1.1.module">
- <sha256 value="365481f661eb2bc944c01a595e2ab7aca74e2c6b0c5630eb0e8bc3ca828debef" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-exception-utils.aar">
- <sha256 value="fd458fca0ea228eb5396fe29dc134268da723375e20f9efef65adfc799af5c2d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-exception-utils-jvm" version="2.2.1.1">
- <artifact name="arrow-exception-utils-jvm-2.2.1.1.jar">
- <sha256 value="bd59b9e8b93e3006bb2c8849bd39238e0e9559fd2c0532678983644e56ffad16" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-exception-utils-jvm-2.2.1.1.module">
- <sha256 value="60d26b66e86f0c29ed9f567711f601ebd8a8a9fac0e960f925ff5b55685f8296" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-fx-coroutines" version="2.2.1.1">
- <artifact name="arrow-fx-coroutines-2.2.1.1.module">
- <sha256 value="ec4dccafe51c1332cc4ecfd2154ea67fa41c202920a07730e9bda67282fd9ee2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-fx-coroutines-android" version="2.2.1.1">
- <artifact name="arrow-fx-coroutines-android-2.2.1.1.module">
- <sha256 value="662dd766a59d145bfd16d3f5872f9fef4f21e7a10368279ba9135c7c83b15517" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-fx-coroutines.aar">
- <sha256 value="5b2ba6919b07ecb78ef3f5429e883d956ec565c74135b580786558b7baa4435e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-fx-coroutines-jvm" version="2.2.1.1">
- <artifact name="arrow-fx-coroutines-jvm-2.2.1.1.jar">
- <sha256 value="7ea6bf0935f70f5ff8ebd3ca7c4930d621a55f0834654c4bfb594499907927bb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-fx-coroutines-jvm-2.2.1.1.module">
- <sha256 value="136d7e483961f22666d5870c1b2ccb7b9cb35eb658a740a2d8410ec67002bb43" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-optics" version="2.2.1.1">
- <artifact name="arrow-optics-2.2.1.1.module">
- <sha256 value="3010b51855e47dc55d629ea39ac4cae3f168371a3711836c7895d5d3aa5ee41a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-optics-android" version="2.2.1.1">
- <artifact name="arrow-optics-android-2.2.1.1.module">
- <sha256 value="08cff22f854cf221fd75b5de8f7581fa96af5067e0f257586164b15c17d4fd94" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-optics.aar">
- <sha256 value="a81ec5dfec96f761bffdc12fe970c28a9a03338321e79ab652195ed2c54fe859" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-optics-jvm" version="2.2.1.1">
- <artifact name="arrow-optics-jvm-2.2.1.1.jar">
- <sha256 value="7c3f25845c71a31e893023836788f1c6f8a92310d01f8b861c06bb514e019551" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-optics-jvm-2.2.1.1.module">
- <sha256 value="04596242f755761f6dbffd02e79609205d9a109505ab9f4bc0db46821b8f031f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-optics-ksp-plugin" version="2.2.1.1">
- <artifact name="arrow-optics-ksp-plugin-2.2.1.1.jar">
- <sha256 value="0dc04364bff2f33ebb8fd6eaf8b98bd2aba662d40fefc982756a9325039f8c55" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-optics-ksp-plugin-2.2.1.1.module">
- <sha256 value="fb2a9980d2a057d0ac7d47b7d0e6ccbab522040e46b87db2d2808bd3ca8eb068" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-resilience" version="2.2.1.1">
- <artifact name="arrow-resilience-2.2.1.1.module">
- <sha256 value="f0906bf4f57eebb9274820e592a993510de111f525f014f2799aa49053dd44ed" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-resilience-android" version="2.2.1.1">
- <artifact name="arrow-resilience-android-2.2.1.1.module">
- <sha256 value="6d6db03f2047dbce90fa903f0de38ded4730ea670f1718724c880b0f2f95672d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-resilience.aar">
- <sha256 value="47f369d6a8b6de2cd251c5b4a689b029fc3aa2abc57f1d7d62f594be9ca47f28" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.arrow-kt" name="arrow-resilience-jvm" version="2.2.1.1">
- <artifact name="arrow-resilience-jvm-2.2.1.1.jar">
- <sha256 value="49407f4f91bcd1ad50102081cda0277ae620ee1e9a62fe9797a1287977877be2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="arrow-resilience-jvm-2.2.1.1.module">
- <sha256 value="7b6d9b61b2d82c0b9909e7ea5c2a8b93c9ceaa6f51054f91454b55f12257bc39" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.exoquery" name="pprint-kotlin" version="1.1.0">
- <artifact name="pprint-kotlin-1.1.0.jar">
- <sha256 value="d3e254558fc2236d37537f16d2b37b4b868049f7c813adce0172392d5a33bab6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="pprint-kotlin-1.1.0.module">
- <sha256 value="f661984e44f3ab0784f530c48365f3ed018605d1fff407f5a1e680c5bcb2706f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.davidburstrom.contester" name="contester-breakpoint" version="0.2.0">
- <artifact name="contester-breakpoint-0.2.0.jar">
- <sha256 value="672cbebb5d45a72b35dd81fd6127e187451bb6fb7fba35315bbdf2f57cfce835" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="contester-breakpoint-0.2.0.module">
- <sha256 value="2593c5d9f7a60406e6aeace60563fcd923717536fdd27806414297e93d609fe5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.detekt.sarif4k" name="sarif4k" version="0.6.0">
- <artifact name="sarif4k-0.6.0.module">
- <sha256 value="68ae13d1f4014cb8c465474ba3f1a0246016a3455c255e6edee7548f150fa8c5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.detekt.sarif4k" name="sarif4k-jvm" version="0.6.0">
- <artifact name="sarif4k-jvm-0.6.0.jar">
- <sha256 value="b3ac96dd97acba8318dbe26f6a432d6c6db91c46c780805e8928b8103e5763dc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="sarif4k-jvm-0.6.0.module">
- <sha256 value="2dfe9f7b88f728e1ad485ab9717af06a559e025ecd5f019be8b532e9352b9875" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.java-diff-utils" name="java-diff-utils" version="4.12">
- <artifact name="java-diff-utils-4.12.jar">
- <sha256 value="9990a2039778f6b4cc94790141c2868864eacee0620c6c459451121a901cd5b5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.java-diff-utils" name="java-diff-utils" version="4.16">
- <artifact name="java-diff-utils-4.16.jar">
- <sha256 value="620403030d676a4a27f780a3acec7438dee1b1651a1c804fa6bb11bb07399a6f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.pdvrieze.xmlutil" name="core" version="0.91.3">
- <artifact name="core-0.91.3.module">
- <sha256 value="b6fe2b62e61e5ff715643559bddc160190aa781f6df15c89a1bab195ffea1dac" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.pdvrieze.xmlutil" name="core-jvmcommon" version="0.91.3">
- <artifact name="core-jvmcommon-0.91.3.jar">
- <sha256 value="420a8e863b8475389690e7953568e176f17f8c6fc4f3f213b84127dcb0f1f574" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-jvmcommon-0.91.3.module">
- <sha256 value="43d1bf786fc2e7f696d466de1461b186997d4e60754efe1b69eac94386591956" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.pdvrieze.xmlutil" name="serialization" version="0.91.3">
- <artifact name="serialization-0.91.3.module">
- <sha256 value="e282270f858c4473bbf7d182559232d5f8c7a832a75446e447ac9346763cb9d8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.pdvrieze.xmlutil" name="serialization-jvm" version="0.91.3">
- <artifact name="serialization-jvm-0.91.3.jar">
- <sha256 value="c8165f1f1b5c2c8c3bba7672429ca3813c1a4ab855dd8ee4086b4a3062b9b4e6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="serialization-jvm-0.91.3.module">
- <sha256 value="7735555e6f1775672de15fb04e041fffce46fa494f0ac2190c3cd48e81a2901d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.raamcosta.compose-destinations" name="codegen" version="2.3.0">
- <artifact name="codegen-2.3.0.jar">
- <sha256 value="7714b0e7f03507d2f025de40c24effb417333702bb6c2c4ae5b56779814b65ad" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="codegen-2.3.0.module">
- <sha256 value="72309ec794d45866f91268c9f23dc6a66a517ad7ceea762f695ef9c7b8b8af57" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.raamcosta.compose-destinations" name="core" version="2.3.0">
- <artifact name="core-2.3.0.aar">
- <sha256 value="fe445387a871b71cabc64621328ff200eb895d4c6440f94476212a14eaa0dc03" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="core-2.3.0.module">
- <sha256 value="e1a8e97aaebe79cc91cfcb895fdfcfdf6a663ec4689c8bde286528f0941ace32" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.github.raamcosta.compose-destinations" name="ksp" version="2.3.0">
- <artifact name="ksp-2.3.0.jar">
- <sha256 value="74ddda3ce5f7e29e0d018b362c65a9e00be87d014161d85e5514655bd3d0139b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ksp-2.3.0.module">
- <sha256 value="3a9f4d4692f3e08e43899a4312883864f978a2f4537a41a1dc8fc5dd90aa3d7e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-api" version="1.23.8">
- <artifact name="detekt-api-1.23.8.jar">
- <sha256 value="dd5b84d420904d5c564aab115d36e6290a9d7daf6955923099015618f2b5c83f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-api-1.23.8.module">
- <sha256 value="f2ce2df727a199599396754b5a2595b89990646664166aeae5e31e8f60ad4c06" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-cli" version="1.23.8">
- <artifact name="detekt-cli-1.23.8.jar">
- <sha256 value="ead7ccd320bf304cece189438d6a384747c76545a0f880d9c91d5ca5d2d30a63" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-cli-1.23.8.module">
- <sha256 value="7d7577d1c92a32bac8b853a47c5e41bcd6636bf32687b576e33f4881052e0284" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-core" version="1.23.8">
- <artifact name="detekt-core-1.23.8.jar">
- <sha256 value="1981dea8e4e2e8541af2d83e4f8d3581ce647cfe63175b9eb9ac2a07849d74c9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-core-1.23.8.module">
- <sha256 value="5c96e642eefdb0c8544433376bb85cd63161992cd8353ca9e592104e42362177" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-gradle-plugin" version="1.23.8">
- <artifact name="detekt-gradle-plugin-1.23.8.jar">
- <sha256 value="783150e4708942c5d7705ff8b7b90f9fb5ad0179d46ad6a9b01d192b70379750" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-gradle-plugin-1.23.8.module">
- <sha256 value="bb71f9b57006989c5c03909b70242e25e28458b1555221e38a7c47ad976b2c54" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-metrics" version="1.23.8">
- <artifact name="detekt-metrics-1.23.8.jar">
- <sha256 value="718e8f71f5872986e4f5cd4887a41e26aa0aeff42e99cf4a42582291b8738cc4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-metrics-1.23.8.module">
- <sha256 value="c7ab133f17cfd40ff987a9574db6eb110fed23a1463eb15e69abb8fcde33b776" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-parser" version="1.23.8">
- <artifact name="detekt-parser-1.23.8.jar">
- <sha256 value="5cdf45a0172d934d6e7401cd43838e7b954f7adb117eed8358fcae0b177e90e5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-parser-1.23.8.module">
- <sha256 value="d0adcb2658ca096d898faf832beb199a3533c4836a47b23c1bea9cab1b0ea259" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-psi-utils" version="1.23.8">
- <artifact name="detekt-psi-utils-1.23.8.jar">
- <sha256 value="9505fa9d4f9a771d256a5d415b5d51ffd7a24e5019f6a60e5a69a12633dcf7ba" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-psi-utils-1.23.8.module">
- <sha256 value="5c565f719086060adcde9cb50d9df966a56e5b2af42ab66e49cd0d9bb8ab48a3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-report-html" version="1.23.8">
- <artifact name="detekt-report-html-1.23.8.jar">
- <sha256 value="8068a15e07718e3bdbf501ede5f666812fb5f9fb1450db060449534c05e6722a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-report-html-1.23.8.module">
- <sha256 value="dd60dc931ebbff26e5ec471f0614124c7596a728cfe65d8a62623682e09ad88a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-report-md" version="1.23.8">
- <artifact name="detekt-report-md-1.23.8.jar">
- <sha256 value="cc5b90b1476cef99e112162dbcd1db32b040284a768f3c975a49ec0b63980ca3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-report-md-1.23.8.module">
- <sha256 value="613b21c5faf549f74a954f88df24f586754ed571206bf0b61ec83abe6ee5dfa4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-report-sarif" version="1.23.8">
- <artifact name="detekt-report-sarif-1.23.8.jar">
- <sha256 value="c9f9221fc57ed1fbd1374de5c4da6c069160f892a71f83b551d3a32c8cbad13d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-report-sarif-1.23.8.module">
- <sha256 value="0e7fa062b134aaeac178750e0da6e18a7c6a96eb838e4d9148c02f312b9aa4d2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-report-txt" version="1.23.8">
- <artifact name="detekt-report-txt-1.23.8.jar">
- <sha256 value="41e85ca3587abce9a03f8dcb2a67e05fcf59b7518fa016c9350ea73c79f9c54a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-report-txt-1.23.8.module">
- <sha256 value="a6bbf8ef204b5694db1a030aa5e7b022a43d6eaf122974bc18c14d5a9b849ada" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-report-xml" version="1.23.8">
- <artifact name="detekt-report-xml-1.23.8.jar">
- <sha256 value="d71abaa98890cae8a618839b1309c013dff39c6bd7d0de0b704e6193e027ef09" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-report-xml-1.23.8.module">
- <sha256 value="81e8aa5e494ff19b992c7ea83a6b7ff6cbf736a620a877f8b96ab052b2948c5a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules" version="1.23.8">
- <artifact name="detekt-rules-1.23.8.jar">
- <sha256 value="a3ee516f3837fbc01d5c3b86f5dc7be7dba81345bfc57c4eb58af12f6923a560" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-1.23.8.module">
- <sha256 value="bf33fe0202f4dae13890c174a98205196a7b33828c80e9ea71e2885182bf3079" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-complexity" version="1.23.8">
- <artifact name="detekt-rules-complexity-1.23.8.jar">
- <sha256 value="3a169746e38b93eebb8eb7e10dedb06657ca294bc81cf675a735f85b5f371e6e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-complexity-1.23.8.module">
- <sha256 value="cd05d8568ecf63f854208860892f3da2b2826bbfdfcd7bd51882d6a0d8b4610b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-coroutines" version="1.23.8">
- <artifact name="detekt-rules-coroutines-1.23.8.jar">
- <sha256 value="afe8c973c17457f714f05795046115188c03f4506903bb25b84da846e2e56816" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-coroutines-1.23.8.module">
- <sha256 value="dc932f8dec5db770f0901f00b5e455071c13ead943308e204423ea3326c99ec5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-documentation" version="1.23.8">
- <artifact name="detekt-rules-documentation-1.23.8.jar">
- <sha256 value="d25367855d8ccd156f283e1cd6de0fd15b8f3e9530a970206f41d619fb4fbdcd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-documentation-1.23.8.module">
- <sha256 value="3e76757a8b517ee9d190a8c9586f34c95193700cd44319f0b34b0cb2946ce441" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-empty" version="1.23.8">
- <artifact name="detekt-rules-empty-1.23.8.jar">
- <sha256 value="888641114789ac43292d44836221565da47a9228f7fb7dfe0c6b3f94e7f58afa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-empty-1.23.8.module">
- <sha256 value="56904d27522cf433f5f3934bbffc7e012976c3faa53ac223547464184c60a0b8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-errorprone" version="1.23.8">
- <artifact name="detekt-rules-errorprone-1.23.8.jar">
- <sha256 value="fee1ee765168a5896162ebe39b34fa421c0a5b769abc8f150f9e3596912a49c4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-errorprone-1.23.8.module">
- <sha256 value="197f029ebbe1c6b0c01c321891299679351fd2a1358668286b88b8adaa39b3d0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-exceptions" version="1.23.8">
- <artifact name="detekt-rules-exceptions-1.23.8.jar">
- <sha256 value="889ffc72aff0624132e0b10932332c71d24f5bab8f1c10c20bf5ac592ca2caf6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-exceptions-1.23.8.module">
- <sha256 value="8654168faa565de77f198c3c5de6c3f3db825e679fedc5ab315be892ad946b71" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-naming" version="1.23.8">
- <artifact name="detekt-rules-naming-1.23.8.jar">
- <sha256 value="ed1992b1bdb0494567805b0a8145ce978f46e5ad743e2e83bf84bd5ec661baeb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-naming-1.23.8.module">
- <sha256 value="9b42a0af1c3d765d39b800961e5182b48369500ee33a1a8407f07754ab8c5bf0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-performance" version="1.23.8">
- <artifact name="detekt-rules-performance-1.23.8.jar">
- <sha256 value="dbf5e06e2fa18a6cf57ae2621e4274c163bb5bbb351a5db75f724f86f22d436b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-performance-1.23.8.module">
- <sha256 value="066a196b8ff342d566db860af43f7fee510c9544cd666a70e1d4243b33f83d9f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-rules-style" version="1.23.8">
- <artifact name="detekt-rules-style-1.23.8.jar">
- <sha256 value="af2644c226d2ba0679ea86bca52ef90c8d9f64f446efa9d74cbd0e6311b038a8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-rules-style-1.23.8.module">
- <sha256 value="1531e20afbc40b27bd6284802ca5935f0357d7d951cd6420a47f72fb28630e7a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-test" version="1.23.8">
- <artifact name="detekt-test-1.23.8.jar">
- <sha256 value="5383c41e5f22c8def6f890bd66820fe9ff438835600525fdf6eba96742499351" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-test-1.23.8.module">
- <sha256 value="03bba627552816a8e6d2562ca2c14d1945eddc3ff3cb1e6d5c61364e9ec5e24c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-test-utils" version="1.23.8">
- <artifact name="detekt-test-utils-1.23.8.jar">
- <sha256 value="c27c0673cad7cc1f2e932c89a060b7ae85749a03d69f221b4c1281f64136c702" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-test-utils-1.23.8.module">
- <sha256 value="9f3925672dc335fc7d246ac4d9ab5f6b26e4ee91c37176a3e79b2c799c925562" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-tooling" version="1.23.8">
- <artifact name="detekt-tooling-1.23.8.jar">
- <sha256 value="7e93e9a23b478f70128893b06748673f912100b7ef03040d7d0331e26d30d092" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-tooling-1.23.8.module">
- <sha256 value="a3c6af0fa6e693e606f1bf1c4003991cc29fd7ab3275f3a1099104c71808962e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.gitlab.arturbosch.detekt" name="detekt-utils" version="1.23.8">
- <artifact name="detekt-utils-1.23.8.jar">
- <sha256 value="f75fd7e924b9267d9ec661859ca913102de4a8f5895b09685ce10797dc26d056" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="detekt-utils-1.23.8.module">
- <sha256 value="4a362a0b30413da375bb4998323b1e1b9ae0dbe334e649e0518b35e9e7015f83" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-android" version="1.78.0">
- <artifact name="grpc-android-1.78.0.aar">
- <sha256 value="9bea523aa1ce50dd0c07eeb56c3e766ef8edc75727237d57e8c9c76202cf0f10" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-api" version="1.57.2">
- <artifact name="grpc-api-1.57.2.jar">
- <sha256 value="42b72e6572c084055ac3ce03e6efe433eb05ef620b3daf5136a4359fc72cc3e1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-api" version="1.69.1">
- <artifact name="grpc-api-1.69.1.jar">
- <sha256 value="a8d3d6dcc71f3ab613d668842282b488bdd93d3e99a0ef5dca7eee6fa734c283" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-api" version="1.78.0">
- <artifact name="grpc-api-1.78.0.jar">
- <sha256 value="0d8f81d9e89d29e62138b3df8f3d91844537b6b950339b3cb08072811dd7f8a2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-context" version="1.57.2">
- <artifact name="grpc-context-1.57.2.jar">
- <sha256 value="9b8ac88d9cef2819daffed7bdbd2f22680237d482c6c671fe02d36da3f08cf00" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-context" version="1.69.1">
- <artifact name="grpc-context-1.69.1.jar">
- <sha256 value="45ef95b8c158a8b5bdd3acb67b9e682ef25414bb148f488ec847438ab64715d4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-context" version="1.78.0">
- <artifact name="grpc-context-1.78.0.jar">
- <sha256 value="6bb96f6eaa7cf5414e8d357a3c64d3a986c9c1b05a06d0eac7dd34d3e0078c0f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-core" version="1.57.2">
- <artifact name="grpc-core-1.57.2.jar">
- <sha256 value="5a10070abfeb4966ec4d580961dcc4e7f69fa83ab25242f92c1765efb07b8606" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-core" version="1.69.1">
- <artifact name="grpc-core-1.69.1.jar">
- <sha256 value="51352cadaecbf9a4a4aa42d93f6f1fc728f1fd01b051680383ed09e5631ffbd0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-core" version="1.78.0">
- <artifact name="grpc-core-1.78.0.jar">
- <sha256 value="688b5c0dd65061e0f60d763aa7eeaf94f58881f77b311b64fcc4e7c70afae49f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-inprocess" version="1.69.1">
- <artifact name="grpc-inprocess-1.69.1.jar">
- <sha256 value="b7c6ac0e3abf4b8d582610d632d79417bc3da81254e1a4bcf7f01e8db7bd55ef" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-kotlin-stub" version="1.5.0">
- <artifact name="grpc-kotlin-stub-1.5.0.jar">
- <sha256 value="cc482c0e2f6b588ba90c7152d4aeee27cfee4bde1688326327dc74c6284477f0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="grpc-kotlin-stub-1.5.0.module">
- <sha256 value="d756db27c37550e9b77a5b21e046ea9a79ff7af1894513068c9b68a39f2030ee" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-netty" version="1.57.2">
- <artifact name="grpc-netty-1.57.2.jar">
- <sha256 value="9809d4c10c94d11e7b2946cdeb5b2884be20a09510289544f37569f02c877a21" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-netty" version="1.69.1">
- <artifact name="grpc-netty-1.69.1.jar">
- <sha256 value="52a86ed66f78933e83d1a3fb7162ad1667489564c4556366b7a3579c7024a447" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-okhttp" version="1.78.0">
- <artifact name="grpc-okhttp-1.78.0.jar">
- <sha256 value="a6cc3f5857e3bc56c5929f78bdbc90b1ff54ddf170f90ae21aad765315154942" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-protobuf" version="1.57.2">
- <artifact name="grpc-protobuf-1.57.2.jar">
- <sha256 value="31630d8a9e9f08a959862015e30a4863908be3680c3a686f4c1f08d2ffeaf706" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-protobuf" version="1.69.1">
- <artifact name="grpc-protobuf-1.69.1.jar">
- <sha256 value="4c52ef948fb8987a3baa7d46ba362b7bf307dd3c51f29241cd5c598398a010df" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-protobuf-lite" version="1.57.2">
- <artifact name="grpc-protobuf-lite-1.57.2.jar">
- <sha256 value="fc4917dc5d419ac810fb3f27523c14e75e1fe50372154fab29324215ee6a955a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-protobuf-lite" version="1.69.1">
- <artifact name="grpc-protobuf-lite-1.69.1.jar">
- <sha256 value="c29f90fadf3c7620f9359a243c067dd85b73bd765b28f3d95df910ac2d331555" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-protobuf-lite" version="1.78.0">
- <artifact name="grpc-protobuf-lite-1.78.0.jar">
- <sha256 value="34b348876bc40440d05f7df8274a8ff3ec01433366e1d73b5de60d494a813653" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-services" version="1.57.2">
- <artifact name="grpc-services-1.57.2.jar">
- <sha256 value="057a43ba647833756ab2f851bac80a3b9f8dce026fc1ac1f17d4f315648f4172" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-stub" version="1.57.2">
- <artifact name="grpc-stub-1.57.2.jar">
- <sha256 value="84d2af12719168f76375f2afdfd6eb5133a865edba9244d40e6b968e3adde1d3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-stub" version="1.69.1">
- <artifact name="grpc-stub-1.69.1.jar">
- <sha256 value="e39c63273d53052ebe9f638d8ae98176735ec567328d9a17092cddb6f239b8c2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-stub" version="1.78.0">
- <artifact name="grpc-stub-1.78.0.jar">
- <sha256 value="a59bc67a90e1909206a7d2a41dfaa647acb81461d11386917e7fa58a28728510" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-util" version="1.69.1">
- <artifact name="grpc-util-1.69.1.jar">
- <sha256 value="dd597bd675eaa042f3e3578648d9050c813c4595c5de6869ef9ddbb449006031" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="grpc-util" version="1.78.0">
- <artifact name="grpc-util-1.78.0.jar">
- <sha256 value="1a5d48a3f97705cfa7001ba9606d96d4e0e0e29f10ed74a21a5346c26e49be15" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="protoc-gen-grpc-java" version="1.78.0">
- <artifact name="protoc-gen-grpc-java-1.78.0-linux-aarch_64.exe">
- <sha256 value="c95caf0ab8a27e01e53f8cff8e8947f6a8841afaa357fa4b0679b4af45731886" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-linux-ppcle_64.exe">
- <sha256 value="c03ee0ddc1c8d6b5dbe9141e996eff0fdc3aa85de89b4f70724353a181dad415" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-linux-s390_64.exe">
- <sha256 value="0ee6e49fe5feddf60ecbe49e5ba5794314aa3e2cc63d90685d24a5a87ba7e7a9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-linux-x86_32.exe">
- <sha256 value="00b61e056cbf22386614e1b42e58f996e08eb526012ad808b2374329c20feaff" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-linux-x86_64.exe">
- <sha256 value="c02dd4d757b6794072a1675c2a9f232631b64c3d53c1ec19effb0504859a82ff" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-osx-aarch_64.exe">
- <sha256 value="b0722795401320a71130395f1a3d8a6534b7311008cce8d78f8cb7ce176daa26" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-osx-x86_64.exe">
- <sha256 value="b0722795401320a71130395f1a3d8a6534b7311008cce8d78f8cb7ce176daa26" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-windows-x86_32.exe">
- <sha256 value="6c851051abdec812ab781c0116bf68dd1b7242bddc6fefd37db1b1a7c5b2b8f8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="protoc-gen-grpc-java-1.78.0-windows-x86_64.exe">
- <sha256 value="0c7c71d2baf6c1fc5fa51425277f41748ee409498ef2b4d7dc91ef18a75201e0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.grpc" name="protoc-gen-grpc-kotlin" version="1.5.0">
- <artifact name="protoc-gen-grpc-kotlin-1.5.0-jdk8.jar">
- <sha256 value="da938e9047a7973d53916eee33a1465adce1e72dce75127474b8808388023026" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-android" version="4.1.1">
- <artifact name="koin-android-4.1.1.aar">
- <sha256 value="7c757df91199d105444509d8aff9cc9e048e64c3eead3205e8530d562534a33d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-android-4.1.1.module">
- <sha256 value="3487186758e39af8727630ed7023d6d75d838dfcd4e7a37ab48f0c275451017c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-androidx-compose" version="4.1.1">
- <artifact name="koin-androidx-compose-4.1.1.aar">
- <sha256 value="e2e86f3d8c09a5b6927c8f76c3443f3698cf35cb9e010b4db9c1ebe218296aad" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-androidx-compose-4.1.1.module">
- <sha256 value="6f3ddca17ed958ab379fd7c4021839569917eb41588dc401ef6d8c488c11bd74" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-compose" version="4.1.1">
- <artifact name="koin-compose-4.1.1.module">
- <sha256 value="5d6dff244aecbaae9f63cc6d6a020d390c60c6e882afa8845eda249f96d1dd88" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-compose-android" version="4.1.1">
- <artifact name="koin-compose-android-4.1.1.module">
- <sha256 value="c38a73d92babdb13c4dd31c419c527436deff4d5690525359f40538675d70717" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-compose-release.aar">
- <sha256 value="97f370101070aecaf346e077e73c8d252ecaebde9bd816c2688ae92f7ee2884c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-compose-jvm" version="4.1.1">
- <artifact name="koin-compose-jvm-4.1.1.jar">
- <sha256 value="0163801509f51abe5d98ef19f3098caf2b59fcf6f4ea24bf3c3f89b0f26c207b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-compose-jvm-4.1.1.module">
- <sha256 value="d7dbbba1ea670f36d7661bcb1ef78da3227498e07b0e2c751f640be9a2ce9031" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-compose-viewmodel" version="4.1.1">
- <artifact name="koin-compose-viewmodel-4.1.1.module">
- <sha256 value="87feb361e569bc3e0c1e14d3e03df402a8067975132cacab34d925d29f7d6904" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-compose-viewmodel-android" version="4.1.1">
- <artifact name="koin-compose-viewmodel-android-4.1.1.module">
- <sha256 value="6e74613b0a889626e9189daa9d39ef8fa27cc20573ee8e2d497bf5dc77ee7484" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-compose-viewmodel-release.aar">
- <sha256 value="f5a2108572fce0f5421aee0d0faae8e5b244c10f91d3d3b3b665700e5e6cde8b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-compose-viewmodel-jvm" version="4.1.1">
- <artifact name="koin-compose-viewmodel-jvm-4.1.1.jar">
- <sha256 value="7624ecef2361256258cc774add26263696d43d444a5a9e171603794c57ce5daa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-compose-viewmodel-jvm-4.1.1.module">
- <sha256 value="00321e4e9b185204931a92fc2b454757976beeebd7ae50c04b85c04e6bea9f13" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core" version="4.1.1">
- <artifact name="koin-core-4.1.1.module">
- <sha256 value="5fe4606c9e622fd6ec1de8323444dd4ed70e64008d064c9ba5a6913501ae1cc4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core-annotations" version="4.1.1">
- <artifact name="koin-core-annotations-4.1.1.module">
- <sha256 value="34ad5cd25baf3759451f70b4a5fcdc62415063b3b7cbc8de280f0c46a5e81ce2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core-annotations-jvm" version="4.1.1">
- <artifact name="koin-core-annotations-jvm-4.1.1.jar">
- <sha256 value="b1e47a6320dce1749fde8429887f19d12a452bee749a5c0590ab528b32063be2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-core-annotations-jvm-4.1.1.module">
- <sha256 value="53f1b13908f2d42e78855020f0e80bf92d79a26062ed52313cb120bd6139c28e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core-jvm" version="4.1.1">
- <artifact name="koin-core-jvm-4.1.1.jar">
- <sha256 value="90a8e98c0de5351325804db39a2154ab283503a6d92981609da3dcc16b0d15ca" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-core-jvm-4.1.1.module">
- <sha256 value="7fc53e2f13eb232b18a8ffd3f0c6419aebb012eb2b43920fc6c355694de19064" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core-viewmodel" version="4.1.1">
- <artifact name="koin-core-viewmodel-4.1.1.module">
- <sha256 value="ea8f364c0282fd843973e3b3e1ae51bda11a69217d7c3a5ce1cc4ab6ef1b4c31" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core-viewmodel-android" version="4.1.1">
- <artifact name="koin-core-viewmodel-android-4.1.1.module">
- <sha256 value="55a3f5667957dbb0c32ecb1b6f961969091bc5f3d0ed68a9fc2faa91d0e7137d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-core-viewmodel-release.aar">
- <sha256 value="5006ac0d3ba21ff4efdc3077d4706a0882155b4c0bd2155fd01993dae27a93a2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-core-viewmodel-jvm" version="4.1.1">
- <artifact name="koin-core-viewmodel-jvm-4.1.1.jar">
- <sha256 value="8bc91b2dac230c658a3516d631e5247ea04ff6b5b82798cbddcd859f1321f3af" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-core-viewmodel-jvm-4.1.1.module">
- <sha256 value="f67240d996674ce07d9b635f6368c2aa4500cc47eb9af5530b14bb36f08e2f70" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-test" version="4.1.1">
- <artifact name="koin-test-4.1.1.module">
- <sha256 value="7c5438fd2d90268e3b5c69b0ff99fbd1e1350106dbb0879ac9f3c4face85bb71" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.insert-koin" name="koin-test-jvm" version="4.1.1">
- <artifact name="koin-test-jvm-4.1.1.jar">
- <sha256 value="02e1c9fc1cb7c07590dfb87c3ed4532573ad9ba3f00524250250fce38b199280" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="koin-test-jvm-4.1.1.module">
- <sha256 value="16d6cfaf85dbba15a99531b5c575fbd22415a29f6267e5333bd1f5b450f1496d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-assertions-core" version="6.0.7">
- <artifact name="kotest-assertions-core-6.0.7.module">
- <sha256 value="df33635a92c9194e32fe9fe7fe300ee999dc4504e164dcba2f63716ff4638bc9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-assertions-core-jvm" version="6.0.7">
- <artifact name="kotest-assertions-core-jvm-6.0.7.jar">
- <sha256 value="961f2bd91f75ceeba68c785bdc6bc25f9998c045cc363b02ccda1551481b4abe" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-assertions-core-jvm-6.0.7.module">
- <sha256 value="905bf2cb8c515fbb55b8b943b21f1cc3e0b97debc7dcd626517f547106197d41" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-assertions-shared" version="6.0.7">
- <artifact name="kotest-assertions-shared-6.0.7.module">
- <sha256 value="44af4cdc4d36d24c5e5e81011552a325c9c3f83f04919dc76bbc7e59be54b9f1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-assertions-shared-jvm" version="6.0.7">
- <artifact name="kotest-assertions-shared-jvm-6.0.7.jar">
- <sha256 value="acfb351b626c1507866e8bc0e865e45a9a1e6c0f94b8cae09e835a5afa61383c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-assertions-shared-jvm-6.0.7.module">
- <sha256 value="edf89e1dd6a7fcb8355bc5b9f3bc162aa5dca5c6c3ff18384bbd3d5fec5b1a85" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-common" version="6.0.7">
- <artifact name="kotest-common-6.0.7.module">
- <sha256 value="ef745af8cac3542334eb2f8aff1cc807a0ec07a6e450b8eed9d8bd3969e652fb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-common-jvm" version="6.0.7">
- <artifact name="kotest-common-jvm-6.0.7.jar">
- <sha256 value="834cd25445a17adc124aee75a568e1540c555113b255a7fee282930f76c85ffd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-common-jvm-6.0.7.module">
- <sha256 value="4e7c52b87c110a3e6880a24ef1ee8e9baae57028dd75f99d6a0fd287227ef05d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-extensions" version="6.0.7">
- <artifact name="kotest-extensions-6.0.7.module">
- <sha256 value="d341a2f0fd3b5083706508f5fa55f07cc48d785441fd7b45d38b283e8eec8f91" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-extensions-jvm" version="6.0.7">
- <artifact name="kotest-extensions-jvm-6.0.7.jar">
- <sha256 value="67abdea1d9df85f187ab70ce2d63b9aad88e827fd0c3e73a15f4df6e6e57505a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-extensions-jvm-6.0.7.module">
- <sha256 value="217de96daa10730fc8ed42d293db6ff08110455d466b6fe936f0cc0b22cb39dc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-framework-api" version="5.9.1">
- <artifact name="kotest-framework-api-5.9.1.module">
- <sha256 value="0fd8e7ee439323849304a6dfafdec6b87acb86d00cf2fcb3ef8019350f4da28a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-framework-api-jvm" version="5.9.1">
- <artifact name="kotest-framework-api-jvm-5.9.1.jar">
- <sha256 value="d9244bc687c83822126725b3ca7676e456447a6051210e25175cf8ab20c0b423" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-framework-api-jvm-5.9.1.module">
- <sha256 value="fca9910c22c083ed264d39db450b4f0f03129fff24c6d6357cfcb510108aea2d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-framework-datatest" version="5.9.1">
- <artifact name="kotest-framework-datatest-5.9.1.module">
- <sha256 value="53b85dbe348320de5c3df9f54113e4dc7d3b60942c8f9537225272eb94b897b3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-framework-datatest-jvm" version="5.9.1">
- <artifact name="kotest-framework-datatest-jvm-5.9.1.jar">
- <sha256 value="e86a5f3c2d143313ddc8472293f6b92401636d296595959a7eb8b73b58ef2bf7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-framework-datatest-jvm-5.9.1.module">
- <sha256 value="b9537c78329969774400a1b48d16d4deff5f3e4c872bcb0325c6b43ee12491df" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-framework-engine" version="6.0.7">
- <artifact name="kotest-framework-engine-6.0.7.module">
- <sha256 value="2707c5f38b5b7a3d01a2b7e1814c82e7c0ba36510cb47e2929b784fd30413b19" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-framework-engine-jvm" version="6.0.7">
- <artifact name="kotest-framework-engine-jvm-6.0.7.jar">
- <sha256 value="abd5a4c416b838b61a2adac615f721684b598396cb053d56f11384311a34ea99" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-framework-engine-jvm-6.0.7.module">
- <sha256 value="31d9572eeff0818deace1c41def83b45bd07601a3aa3dadcd5ce2610314868f8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-runner-junit5" version="6.0.7">
- <artifact name="kotest-runner-junit5-6.0.7.module">
- <sha256 value="4417cf46559f6435cd513d531c47ab41d3f5bc92bfcb4e0f1d5fb3fa8efd37ac" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.kotest" name="kotest-runner-junit5-jvm" version="6.0.7">
- <artifact name="kotest-runner-junit5-jvm-6.0.7.jar">
- <sha256 value="09f6ef491a33835a9d06b75325e7add39c6185bee7699f43d2cb5c949c89d167" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotest-runner-junit5-jvm-6.0.7.module">
- <sha256 value="32ab0db78085026f5b64982677b767332f9fb0038539ae599882234af152db77" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-auth" version="3.4.0">
- <artifact name="ktor-client-auth-3.4.0.module">
- <sha256 value="3b9d13c1fb1ab8f479388b0a7248120fb2e7d6bdb50571d92426bfc6ebb7aa3e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-auth-jvm" version="3.4.0">
- <artifact name="ktor-client-auth-jvm-3.4.0.jar">
- <sha256 value="a9800b920ab97794277dfb3f868669b92b7972c1f62da80c4b9140f216a03472" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-client-auth-jvm-3.4.0.module">
- <sha256 value="cf6593a2ef50226380c8507050ffcd1b09f8b55a6f5b8a6696230af1e60ffe3c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-cio" version="3.4.0">
- <artifact name="ktor-client-cio-3.4.0.module">
- <sha256 value="3562d6e1734095348c0f4fe81dee44bf4b3861308f36034b0c200f149c209507" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-cio-jvm" version="3.4.0">
- <artifact name="ktor-client-cio-jvm-3.4.0.jar">
- <sha256 value="4630a953fbc2b00177fe27a095c519c957a8008596a4a388c3a149c7ca2fb56a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-client-cio-jvm-3.4.0.module">
- <sha256 value="047304909cfbcc992cc28d6595538638154bb0c3f8d7f1981a83182c538809ca" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-content-negotiation" version="3.4.0">
- <artifact name="ktor-client-content-negotiation-3.4.0.module">
- <sha256 value="7c60c07e07aa3f1b9f9f5bfd5b683dd7bf70c9f1636884e8a3380fa8257e73c4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-content-negotiation-jvm" version="3.4.0">
- <artifact name="ktor-client-content-negotiation-jvm-3.4.0.jar">
- <sha256 value="077adbf36b75afcf9a30c767cdc564c344a2ce721cc985bb8f6a1bdf4738a831" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-client-content-negotiation-jvm-3.4.0.module">
- <sha256 value="9e9e40dc3a79215f0a248792044a06721f25162a5180d383c77f5a090dc23e43" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-core" version="3.4.0">
- <artifact name="ktor-client-core-3.4.0.module">
- <sha256 value="be1d6cdfde32e5d755013fa7e3cc4cfb5636330628e7a2dca74ee7e4f7190e76" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-core-jvm" version="3.4.0">
- <artifact name="ktor-client-core-jvm-3.4.0.jar">
- <sha256 value="9c1106853d820ff28154e12be10124fa3727ff7bf4c7b79535b6307cd8d7f7bd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-client-core-jvm-3.4.0.module">
- <sha256 value="21b67bc8e6051e171ca579232caef56b902fe2408352cf0039c05321fa369b4b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-logging" version="3.4.0">
- <artifact name="ktor-client-logging-3.4.0.module">
- <sha256 value="182285012ecd4f7213512b87931ecc3bd313ab598f7cb98d8a835b3471a21204" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-logging-jvm" version="3.4.0">
- <artifact name="ktor-client-logging-jvm-3.4.0.jar">
- <sha256 value="05df14efd9b137e15c15318c96a241ec82f672c55e33bdf44cd831697e83b5ee" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-client-logging-jvm-3.4.0.module">
- <sha256 value="eafc18864e7f148ed76fba92b7f2c6a12ee58a3896bd413fff365b68533eb200" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-resources" version="3.4.0">
- <artifact name="ktor-client-resources-3.4.0.module">
- <sha256 value="c8c1bee899508dbb736ebe6f624d27aadf2349dee614f9b388861a3e165889f6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-client-resources-jvm" version="3.4.0">
- <artifact name="ktor-client-resources-jvm-3.4.0.jar">
- <sha256 value="7642917eac0f7e1586cbd568bf38e289511fd2141767f427c008fcfd92aaded7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-client-resources-jvm-3.4.0.module">
- <sha256 value="a899f0ac88831472950aa1ca3dbcdc9ef8646e29e06dd479ff9fced2cedee938" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-events" version="3.4.0">
- <artifact name="ktor-events-3.4.0.module">
- <sha256 value="c477717677fc66cdb6c01ba80a39551e916ec0ad3d426e7be512f906f3255c76" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-events-jvm" version="3.4.0">
- <artifact name="ktor-events-jvm-3.4.0.jar">
- <sha256 value="d0d5a6c98d5c830783425170c92a13d3925904e8c8ac5086535e952253cb8f4e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-events-jvm-3.4.0.module">
- <sha256 value="8e67fbf35ced9743679a46a6e66651ffeaf6e85b3f72d1f9df850027a4c4828a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-http" version="3.4.0">
- <artifact name="ktor-http-3.4.0.module">
- <sha256 value="a031a22955e97699bf4d033c7be8f1c4e958941334db43a346384f4d54c05abb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-http-cio" version="3.4.0">
- <artifact name="ktor-http-cio-3.4.0.module">
- <sha256 value="1c4a78ba2829e9110dc74872a642594369ae9b14cb2c8a74d248f2d4082a4103" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-http-cio-jvm" version="3.4.0">
- <artifact name="ktor-http-cio-jvm-3.4.0.jar">
- <sha256 value="b50412077d8e6db16ef0f48f3156a87669210ac7e2481cce84f75362bca66c0f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-http-cio-jvm-3.4.0.module">
- <sha256 value="0804c4d6094f888b786294c5681ef8e8bb5bcd2905049334b246028ebb5bdbb1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-http-jvm" version="3.4.0">
- <artifact name="ktor-http-jvm-3.4.0.jar">
- <sha256 value="b38d22888453819236dbb27fc09587e749aa2d46fdfe879e42dbfd9a138d4484" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-http-jvm-3.4.0.module">
- <sha256 value="ae8b85b46ff889775b794e62387e77c73c7f0847d835e59f48c254a0b8a1bc4e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-io" version="3.4.0">
- <artifact name="ktor-io-3.4.0.module">
- <sha256 value="cbdd1f8ddc28e430313d857b9e05527606c3e66491dc4333afa830a655a5a15b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-io-jvm" version="3.4.0">
- <artifact name="ktor-io-jvm-3.4.0.jar">
- <sha256 value="c6a3aa8bc6bf52aa40f6d0c2ea22d4c30546636ded618322dd961dffeab97e6f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-io-jvm-3.4.0.module">
- <sha256 value="18dd21caed34e8d80701f8159648fea0c4092e27c30de2759e62031022fa3502" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-network" version="3.4.0">
- <artifact name="ktor-network-3.4.0.module">
- <sha256 value="decf632c7d4502b7d549c5a75dafdc7be9fcb8cb0a67d2fddd817eaaa3848411" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-network-jvm" version="3.4.0">
- <artifact name="ktor-network-jvm-3.4.0.jar">
- <sha256 value="40099ca4c7504a9cf7ea852404b9565d7952506842839e341eb020ee8bb7f290" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-network-jvm-3.4.0.module">
- <sha256 value="f876101eb6d4ba605465503e4fea37f20cbe447048d19b6912156b134df5c044" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-network-tls" version="3.4.0">
- <artifact name="ktor-network-tls-3.4.0.module">
- <sha256 value="f77d7e1dd6d894bda2afaa471487510009aa31d430ae9b22fc00fe08e15598ea" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-network-tls-jvm" version="3.4.0">
- <artifact name="ktor-network-tls-jvm-3.4.0.jar">
- <sha256 value="fd617097180655f8008c156810ee35b63d714b7b487368bbee2a985706c4fdec" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-network-tls-jvm-3.4.0.module">
- <sha256 value="7c57d7824fa471fd4251c7dd15ed4aa596109f9ead0254df84eccfb84a248782" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-resources" version="3.4.0">
- <artifact name="ktor-resources-3.4.0.module">
- <sha256 value="ffd7098b84625f1585930795e20eacfc9114fb4e231ba36c9b8d0450b157f1e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-resources-jvm" version="3.4.0">
- <artifact name="ktor-resources-jvm-3.4.0.jar">
- <sha256 value="1db4f8adb8a433f380b3a75171c21007e12100a359791d68870d1c1dce6c4e6a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-resources-jvm-3.4.0.module">
- <sha256 value="da550457a59d5bb621ed6dd9735c6248c08dd83cd158621036b9fdfa5e55f90e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-serialization" version="3.4.0">
- <artifact name="ktor-serialization-3.4.0.module">
- <sha256 value="68b7cd637db7668102437b6ae9966bd13a184378a03f0e942919ea21225c0b5c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-serialization-jvm" version="3.4.0">
- <artifact name="ktor-serialization-jvm-3.4.0.jar">
- <sha256 value="8edd0a7b23486cf202f224de7c9cf8b132bb99a8268c360680efb000e38807f2" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-serialization-jvm-3.4.0.module">
- <sha256 value="bfd5f3edcd4ba15a71a08ac45ef8f770f793d3f4f47de3a610b992d9bff9e9e8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-serialization-kotlinx" version="3.4.0">
- <artifact name="ktor-serialization-kotlinx-3.4.0.module">
- <sha256 value="1783ec4125d8c53b7e19df581ab873eed46a99ad61df12d8c471e0d1c6fcd356" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-serialization-kotlinx-json" version="3.4.0">
- <artifact name="ktor-serialization-kotlinx-json-3.4.0.module">
- <sha256 value="6ea13b266f1425924ce04a74e330f5c6f2b710432b04456a0829dc46676725e8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-serialization-kotlinx-json-jvm" version="3.4.0">
- <artifact name="ktor-serialization-kotlinx-json-jvm-3.4.0.jar">
- <sha256 value="a748d3112c0bcca9946c1ae64ca683ff99768af09f9dae2e52e603db56b1685c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-serialization-kotlinx-json-jvm-3.4.0.module">
- <sha256 value="0a1bd3ff27f1f9570363403f0dc7a66008ca96f6ca824f6f87054f7330e545f3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-serialization-kotlinx-jvm" version="3.4.0">
- <artifact name="ktor-serialization-kotlinx-jvm-3.4.0.jar">
- <sha256 value="b1f8213eaada1621c06ea58a035cf50183bd32556fd76c3abbe5b8146bf8e600" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-serialization-kotlinx-jvm-3.4.0.module">
- <sha256 value="f0d73df2892edfe79fd23cfa5bcb1dac35d2653a2e4c179005041732d41a4d07" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-server-core" version="3.4.0">
- <artifact name="ktor-server-core-3.4.0.module">
- <sha256 value="9d6912648cbdf9bfe77a72874e9147b24f5c6468bc577f0c5c67879e522ab05f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-server-core-jvm" version="3.4.0">
- <artifact name="ktor-server-core-jvm-3.4.0.jar">
- <sha256 value="05c4c17f04975616234bb063a476c6ded70ed2aab7119311c7c7fa6a0c9e1a9b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-server-core-jvm-3.4.0.module">
- <sha256 value="c90da367f8242e42f38cbbdf80c021f8bf6ff5532591638bc235962dc9506276" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-server-netty" version="3.4.0">
- <artifact name="ktor-server-netty-3.4.0.module">
- <sha256 value="9767f1bf74d6e0ec0200dac30a713b1ba39523a029aa95392cbdfceb36e20119" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-server-netty-jvm" version="3.4.0">
- <artifact name="ktor-server-netty-jvm-3.4.0.jar">
- <sha256 value="2b924a111e051437caad10ff5f6d5723bbc2af25addfc2aa3383f4163d25ca94" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-server-netty-jvm-3.4.0.module">
- <sha256 value="ccfe43719dca48f511a102d4125d6fd6443dd8379631052e81d0521639b320fd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-sse" version="3.4.0">
- <artifact name="ktor-sse-3.4.0.module">
- <sha256 value="aac4801686a061de924261644348037062710c476f461bb26398170a8f286e65" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-sse-jvm" version="3.4.0">
- <artifact name="ktor-sse-jvm-3.4.0.jar">
- <sha256 value="6a21c6bd61cdc97b589321c339566577869b99d1aaaf09e0c6be4bce33b36a3a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-sse-jvm-3.4.0.module">
- <sha256 value="0601799c0872188a2df7e96df9a68a6c370809dbe42cce7091473fcd77f13392" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-utils" version="3.4.0">
- <artifact name="ktor-utils-3.4.0.module">
- <sha256 value="8cc894df2ac47106027a4d23771afb992fd9aa0aade10941911c58942e0c3139" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-utils-jvm" version="3.4.0">
- <artifact name="ktor-utils-jvm-3.4.0.jar">
- <sha256 value="6da64c8dad2a470c56129b8143faf0b889923807f862a7f278f5ffb4f7b375c6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-utils-jvm-3.4.0.module">
- <sha256 value="d05a4050dedcc59bd6197eee56028251fd49095cfe09137ee4a2eedc561e62c2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-websocket-serialization" version="3.4.0">
- <artifact name="ktor-websocket-serialization-3.4.0.module">
- <sha256 value="00ce32ecd09c931e801b83dbe2496d10220b2a5e12e04143f430697003f5dff1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-websocket-serialization-jvm" version="3.4.0">
- <artifact name="ktor-websocket-serialization-jvm-3.4.0.jar">
- <sha256 value="b4e18cd836f76d8f1576985fef6fb225d4f255880de869d49712d930103ff806" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-websocket-serialization-jvm-3.4.0.module">
- <sha256 value="a9a0d361254dbffd85b9bee8b2c0495574652c6d8da6fced5c57594286cf0585" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-websockets" version="3.4.0">
- <artifact name="ktor-websockets-3.4.0.module">
- <sha256 value="3d9791057241abdbdb22d885363afa8d8173a22ffef13e672f6aaf2e1033ace0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.ktor" name="ktor-websockets-jvm" version="3.4.0">
- <artifact name="ktor-websockets-jvm-3.4.0.jar">
- <sha256 value="485164591c34d2a24ba2354f3dea12346e2aa5d2f473571e13aa514f2fd5eb30" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ktor-websockets-jvm-3.4.0.module">
- <sha256 value="ff5e49f93865bde56a53521aec8379bc34d6846e12328b4447ecce5b328c0781" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk" version="1.14.9">
- <artifact name="mockk-1.14.9.module">
- <sha256 value="2e78ec39ad02c88e3719d3656755fe6fb6a3717f22318ed74aeb2a2d51cf7351" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-agent" version="1.14.9">
- <artifact name="mockk-agent-1.14.9.module">
- <sha256 value="236a3c87be1d9aeef12b3796d4bb164e3861029d611c12ef0894508c34ea0b0f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-agent-android" version="1.14.9">
- <artifact name="mockk-agent-android-1.14.9.aar">
- <sha256 value="f9a01b034e27240692ccc07d522dabba54e8c340b411c34a14cfba55d0b327d4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-agent-android-1.14.9.module">
- <sha256 value="b94bd28baaa76749fb1ba7e53cee339ad54ff253ff21e860f9deed0e363660a3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-agent-api" version="1.14.9">
- <artifact name="mockk-agent-api-1.14.9.module">
- <sha256 value="62259a231b2afe9b78e40580c16fb92687423701381a0a7bf5b654ce8f53ebff" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-agent-api-jvm" version="1.14.9">
- <artifact name="mockk-agent-api-jvm-1.14.9.jar">
- <sha256 value="9459d7eb7694b6e0039e19f7d1a89dfc7ae1fa782ff8d38f2952bda1ffa39242" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-agent-api-jvm-1.14.9.module">
- <sha256 value="c8fab4a4b8ed085c641eeaa4bf220723c26101c23586d21421b496e547dd0116" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-agent-jvm" version="1.14.9">
- <artifact name="mockk-agent-jvm-1.14.9.jar">
- <sha256 value="bb3af4f281c8d5d50141cad9d1a1f8dde9d2bd695b68054777830957708ea0b4" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-agent-jvm-1.14.9.module">
- <sha256 value="363e2b00ab95bcd30b04b66bdb357efae2ae7d4cd66e84bb30b1c3d0427c03cb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-android" version="1.14.9">
- <artifact name="mockk-android-1.14.9.aar">
- <sha256 value="d72980508f1bbf486d81967ab245875f78301402c362c4013984f4e22c8f527b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-android-1.14.9.module">
- <sha256 value="dde40f9cc4e887f5fd3585d4d4c48e540980b87a2f2529dc3272b28241913a5b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-core" version="1.14.9">
- <artifact name="mockk-core-1.14.9.module">
- <sha256 value="864518111916494299c2e95aebcd9733b6d0e5ca585c6d6e6e5994ac85d42c25" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-core-jvm" version="1.14.9">
- <artifact name="mockk-core-jvm-1.14.9.jar">
- <sha256 value="53a0ab8742aac4d1a6538cc77c6067de7e1a9c1a35358a873faa9c5ed2d58e51" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-core-jvm-1.14.9.module">
- <sha256 value="b60d3da16031cddc5094cbe0c2a9a01d1d3cc82a306306e8d18ab4a9044cbe0a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-dsl" version="1.14.9">
- <artifact name="mockk-dsl-1.14.9.module">
- <sha256 value="a9becb302b44d1359cc8bf193340bd9c6f3bb1f0a29d81eb4bac214720ee0b3a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-dsl-jvm" version="1.14.9">
- <artifact name="mockk-dsl-jvm-1.14.9.jar">
- <sha256 value="439d2847a5ed8566ac09ba0515aeb7b7d118698fbaf97038536144d9ba325795" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-dsl-jvm-1.14.9.module">
- <sha256 value="2f3aa54bdb2d3bde1ad8d03be3975051e1edec28fdf1ef70ec8a0161ae3cabca" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.mockk" name="mockk-jvm" version="1.14.9">
- <artifact name="mockk-jvm-1.14.9.jar">
- <sha256 value="b24806ca815d085bddc52fc663d84ab6671fbd782eece7bb2718d5e4992b3d65" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="mockk-jvm-1.14.9.module">
- <sha256 value="14dc60dc7990bead557c7b1abec1c7581309bcc324c1e6963b626256a90266f4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-buffer" version="4.1.110.Final">
- <artifact name="netty-buffer-4.1.110.Final.jar">
- <sha256 value="46d74e79125aacc055c31f18152fdc5d4a569aa8d60091203d0baa833973ac3c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-buffer" version="4.1.93.Final">
- <artifact name="netty-buffer-4.1.93.Final.jar">
- <sha256 value="007c7d9c378df02d390567d0d7ddf542ffddb021b7313dbf502392113ffabb08" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-buffer" version="4.2.9.Final">
- <artifact name="netty-buffer-4.2.9.Final.jar">
- <sha256 value="d013a96acea4889bc01ee03738d53c2e4a05e3faec14c25a92b4224c77d7a408" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec" version="4.1.110.Final">
- <artifact name="netty-codec-4.1.110.Final.jar">
- <sha256 value="9eccce9a8d827bb8ce84f9c3183fec58bd1c96a51010cf711297746034af3701" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec" version="4.1.93.Final">
- <artifact name="netty-codec-4.1.93.Final.jar">
- <sha256 value="990c378168dc6364c6ff569701f4f2f122fffe8998b3e189eba4c4d868ed1084" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-base" version="4.2.9.Final">
- <artifact name="netty-codec-base-4.2.9.Final.jar">
- <sha256 value="284a28b84f54bace36a9e602e3d9694696d22c56f27197af046e1a6547f2b093" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-compression" version="4.2.9.Final">
- <artifact name="netty-codec-compression-4.2.9.Final.jar">
- <sha256 value="4523a65fe95bf474afdcfaf7e2c214b088d2376dacc43737be2acf968520be7e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-http" version="4.1.110.Final">
- <artifact name="netty-codec-http-4.1.110.Final.jar">
- <sha256 value="dc0d6af5054630a70ff0ef354f20aa7a6e46738c9fc5636ed3d4fe77e38bd48d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-http" version="4.1.93.Final">
- <artifact name="netty-codec-http-4.1.93.Final.jar">
- <sha256 value="dacf78ce78ab2d29570325db4cd2451ea589639807de95881a0fa7155a9e6b55" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-http" version="4.2.9.Final">
- <artifact name="netty-codec-http-4.2.9.Final.jar">
- <sha256 value="a76ccb5d32c973d3a463710c9bf83354995354d1c39e1e4bc6155c628b71a20a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-http2" version="4.1.110.Final">
- <artifact name="netty-codec-http2-4.1.110.Final.jar">
- <sha256 value="b546c75445a487bb7bcd5a94779caecce33582cf7be31b8b39fc0e65b1ee26fc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-http2" version="4.1.93.Final">
- <artifact name="netty-codec-http2-4.1.93.Final.jar">
- <sha256 value="d96cc09045a1341c6d47494352aa263b87b72fb1d2ea9eca161aa73820bfe8bb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-http2" version="4.2.9.Final">
- <artifact name="netty-codec-http2-4.2.9.Final.jar">
- <sha256 value="11dd20dee783f75036a51462588b3f1f42ee7588be6cecc8a9f59f4c2f3acfe4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-socks" version="4.1.110.Final">
- <artifact name="netty-codec-socks-4.1.110.Final.jar">
- <sha256 value="976052a3c9bb280bc6d99f3a29e6404677cf958c3de05b205093d38c006b880c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-codec-socks" version="4.1.93.Final">
- <artifact name="netty-codec-socks-4.1.93.Final.jar">
- <sha256 value="0ea47b5ba23ca1da8eb9146c8fc755c1271414633b1e2be2ce1df764ba0fff2a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-common" version="4.1.110.Final">
- <artifact name="netty-common-4.1.110.Final.jar">
- <sha256 value="9851ec66548b9e0d41164ce98943cdd4bbe305f68ddbd24eae52e4501a0d7b1a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-common" version="4.1.93.Final">
- <artifact name="netty-common-4.1.93.Final.jar">
- <sha256 value="443bb316599fb16e3baeba2fb58881814d7ff0b7af176fe76e38071a6e86f8c0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-common" version="4.2.9.Final">
- <artifact name="netty-common-4.2.9.Final.jar">
- <sha256 value="99d965d507b09599ab2d215e940c690d4f7ce8cd97ff13776aa17eb4e0d90b8a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-handler" version="4.1.110.Final">
- <artifact name="netty-handler-4.1.110.Final.jar">
- <sha256 value="d5a08d7de364912e4285968de4d4cce3f01da4bb048d5c6937e5f2af1f8e148a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-handler" version="4.1.93.Final">
- <artifact name="netty-handler-4.1.93.Final.jar">
- <sha256 value="4e5f563ae14ed713381816d582f5fcfd0615aefb29203486cdfb782d8a00a02b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-handler" version="4.2.9.Final">
- <artifact name="netty-handler-4.2.9.Final.jar">
- <sha256 value="e16126c711c1c8217342882cc0d9086007852cb0f99a351cfebe7725e8c7e100" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-handler-proxy" version="4.1.110.Final">
- <artifact name="netty-handler-proxy-4.1.110.Final.jar">
- <sha256 value="ad54ab4fe9c47ef3e723d71251126db53e8db543871adb9eafc94446539eff52" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-handler-proxy" version="4.1.93.Final">
- <artifact name="netty-handler-proxy-4.1.93.Final.jar">
- <sha256 value="2ac5f7fbefa0b73ef783889069344d5515505a14b2303be693c5002c486df2b4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-resolver" version="4.1.110.Final">
- <artifact name="netty-resolver-4.1.110.Final.jar">
- <sha256 value="a2e9b4ae7caa92fc5bd747e11d1dec20d81b18fc00959554302244ac5c56ce70" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-resolver" version="4.1.93.Final">
- <artifact name="netty-resolver-4.1.93.Final.jar">
- <sha256 value="e59770b66e81822e5d111ac4e544d7eb0c543e0a285f52628e53941acd8ed759" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-resolver" version="4.2.9.Final">
- <artifact name="netty-resolver-4.2.9.Final.jar">
- <sha256 value="f4c3742aa434700e0a263eb8ae9e0b1ae82686743e21d0fc6ba348da59636053" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport" version="4.1.110.Final">
- <artifact name="netty-transport-4.1.110.Final.jar">
- <sha256 value="a42dd68390ca14b4ff2d40628a096c76485b4adb7c19602d5289321a0669e704" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport" version="4.1.93.Final">
- <artifact name="netty-transport-4.1.93.Final.jar">
- <sha256 value="a5a78019bc1cd43dbc3c7b7cdd3801912ca26d1f498fb560514fee497864ba96" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport" version="4.2.9.Final">
- <artifact name="netty-transport-4.2.9.Final.jar">
- <sha256 value="0ae2c16b00262ebb5d672fc9f6aa7be92bb063ebcb0826c3c06e06a19bdd1c3e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-classes-epoll" version="4.2.9.Final">
- <artifact name="netty-transport-classes-epoll-4.2.9.Final.jar">
- <sha256 value="b38f1f0eda4a0431388e8ca1adbba4ddfa44ce4660e35ed5ee28aa306dbd0006" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-classes-kqueue" version="4.2.9.Final">
- <artifact name="netty-transport-classes-kqueue-4.2.9.Final.jar">
- <sha256 value="aa42cdd05cd2bc44deeaaae349a98869ab538b7010281e000d6b34d5e05770a6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-native-epoll" version="4.2.9.Final">
- <artifact name="netty-transport-native-epoll-4.2.9.Final.jar">
- <sha256 value="a7786bc5b1d584e82629491d6300b945c19405a542dfca159f963e447a54f667" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-native-kqueue" version="4.2.9.Final">
- <artifact name="netty-transport-native-kqueue-4.2.9.Final.jar">
- <sha256 value="83ca00f9224b2dcb582845037cac3cb58e0149d31c8a90dba580d1faf0dd3c82" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-native-unix-common" version="4.1.110.Final">
- <artifact name="netty-transport-native-unix-common-4.1.110.Final.jar">
- <sha256 value="51717bb7471141950390c6713a449fdb1054d07e60737ee7dda7083796cdee48" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-native-unix-common" version="4.1.93.Final">
- <artifact name="netty-transport-native-unix-common-4.1.93.Final.jar">
- <sha256 value="774165a1c4dbaacb17f9c1ad666b3569a6a59715ae828e7c3d47703f479a53e7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.netty" name="netty-transport-native-unix-common" version="4.2.9.Final">
- <artifact name="netty-transport-native-unix-common-4.2.9.Final.jar">
- <sha256 value="49345a5dc68dd32b7fe9d3d23640d918c0e8e5dacbb3fc169e0c231a1fc7edea" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.opencensus" name="opencensus-api" version="0.31.0">
- <artifact name="opencensus-api-0.31.0.jar">
- <sha256 value="702ba55d78f39d55195dcf041fdfaab7a7490a9ac45013542487ed9e4d3a4d23" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.opencensus" name="opencensus-api" version="0.31.1">
- <artifact name="opencensus-api-0.31.1.jar">
- <sha256 value="f1474d47f4b6b001558ad27b952e35eda5cc7146788877fc52938c6eba24b382" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.opencensus" name="opencensus-contrib-http-util" version="0.31.1">
- <artifact name="opencensus-contrib-http-util-0.31.1.jar">
- <sha256 value="3ea995b55a4068be22989b70cc29a4d788c2d328d1d50613a7a9afd13fdd2d0a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.opencensus" name="opencensus-proto" version="0.2.0">
- <artifact name="opencensus-proto-0.2.0.jar">
- <sha256 value="0c192d451e9dd74e98721b27d02f0e2b6bca44b51563b5dabf2e211f7a3ebf13" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.perfmark" name="perfmark-api" version="0.26.0">
- <artifact name="perfmark-api-0.26.0.jar">
- <sha256 value="b7d23e93a34537ce332708269a0d1404788a5b5e1949e82f5535fce51b3ea95b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="perfmark-api-0.26.0.module">
- <sha256 value="31d832332474ce48150f5bae003343319136f336afd1076a289029319e3ea97a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="io.perfmark" name="perfmark-api" version="0.27.0">
- <artifact name="perfmark-api-0.27.0.jar">
- <sha256 value="c7b478503ec524e55df19b424d46d27c8a68aeb801664fadd4f069b71f52d0f6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="perfmark-api-0.27.0.module">
- <sha256 value="9f6c4e6a62b8defd14173acdb7db293d086353b224923eef6293f58161893cca" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="jakarta.activation" name="jakarta.activation-api" version="1.2.1">
- <artifact name="jakarta.activation-api-1.2.1.jar">
- <sha256 value="8b0a0f52fa8b05c5431921a063ed866efaa41dadf2e3a7ee3e1961f2b0d9645b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="jakarta.xml.bind" name="jakarta.xml.bind-api" version="2.3.2">
- <artifact name="jakarta.xml.bind-api-2.3.2.jar">
- <sha256 value="69156304079bdeed9fc0ae3b39389f19b3cc4ba4443bc80508995394ead742ea" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="javax.annotation" name="javax.annotation-api" version="1.3.2">
- <artifact name="javax.annotation-api-1.3.2.jar">
- <sha256 value="e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="javax.inject" name="javax.inject" version="1">
- <artifact name="javax.inject-1.jar">
- <sha256 value="91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="junit" name="junit" version="4.13.2">
- <artifact name="junit-4.13.2.jar">
- <sha256 value="8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="kr.motd.maven" name="os-maven-plugin" version="1.7.1">
- <artifact name="os-maven-plugin-1.7.1.jar">
- <sha256 value="f47aeef86821e52b2b18758978bd045f03d722292e32e747082122c6228952e0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.bytebuddy" name="byte-buddy" version="1.10.9">
- <artifact name="byte-buddy-1.10.9.jar">
- <sha256 value="07b9ca6e2f970cb03f4b25651df1f2fce271d491b44e0409827887786f692d4d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.bytebuddy" name="byte-buddy" version="1.18.2">
- <artifact name="byte-buddy-1.18.2.jar">
- <sha256 value="f55b145f4caada9b2943e49762ea3171b02599c4c7e230fba8afc66a4a5135de" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.bytebuddy" name="byte-buddy-agent" version="1.10.9">
- <artifact name="byte-buddy-agent-1.10.9.jar">
- <sha256 value="fbd052d2d4cd16f707547c468621c6b7fb842c7ec8866d012ecbc6178de1f394" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.bytebuddy" name="byte-buddy-agent" version="1.18.2">
- <artifact name="byte-buddy-agent-1.18.2.jar">
- <sha256 value="d91e2d6d1b777687ab14a52b18b08aca32c4c91274131c99907674c661402a76" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.java.dev.jna" name="jna" version="4.2.2">
- <artifact name="jna-4.2.2.jar">
- <sha256 value="1f38af54e06c6e6f6dbf39ba2c052b952dea5dddb4871127b34639ddeb11bdbe" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.java.dev.jna" name="jna" version="5.14.0">
- <artifact name="jna-5.14.0.jar">
- <sha256 value="34ed1e1f27fa896bca50dbc4e99cf3732967cec387a7a0d5e3486c09673fe8c6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.java.dev.jna" name="jna" version="5.6.0">
- <artifact name="jna-5.6.0.jar">
- <sha256 value="5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.java.dev.jna" name="jna" version="5.9.0">
- <artifact name="jna-5.9.0.jar">
- <sha256 value="eafcc780b445434d3c5ae7fa2fb6665de1a7560d537d2c408a8e80cd14d27161" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.java.dev.jna" name="jna-platform" version="5.6.0">
- <artifact name="jna-platform-5.6.0.jar">
- <sha256 value="9ecea8bf2b1b39963939d18b70464eef60c508fed8820f9dcaba0c35518eabf7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.java.dev.jna" name="jna-platform" version="5.9.0">
- <artifact name="jna-platform-5.9.0.jar">
- <sha256 value="1903bc6d87f3ab92023957b91f45a9c8eb3515bad030356ce977201e5141b724" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.sf.jopt-simple" name="jopt-simple" version="4.9">
- <artifact name="jopt-simple-4.9.jar">
- <sha256 value="26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="net.sf.kxml" name="kxml2" version="2.3.0">
- <artifact name="kxml2-2.3.0.jar">
- <sha256 value="f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="nl.littlerobots.vcu" name="plugin" version="1.0.1">
- <artifact name="plugin-1.0.1.jar">
- <sha256 value="ec4ee3e9f2a08cc2cb2ce143b1bea465b1e7a1ba2e5fd61d3bae63e628f51bdb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="plugin-1.0.1.module">
- <sha256 value="e7f5f5ab1beddac787fe5a0da974e7143ed07de4960356bf73c737691b9daec8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apache.commons" name="commons-compress" version="1.21">
- <artifact name="commons-compress-1.21.jar">
- <sha256 value="6aecfd5459728a595601cfa07258d131972ffc39b492eb48bdd596577a2f244a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apache.httpcomponents" name="httpclient" version="4.5.14">
- <artifact name="httpclient-4.5.14.jar">
- <sha256 value="c8bc7e1c51a6d4ce72f40d2ebbabf1c4b68bfe76e732104b04381b493478e9d6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apache.httpcomponents" name="httpclient" version="4.5.6">
- <artifact name="httpclient-4.5.6.jar">
- <sha256 value="c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apache.httpcomponents" name="httpcore" version="4.4.16">
- <artifact name="httpcore-4.4.16.jar">
- <sha256 value="6c9b3dd142a09dc468e23ad39aad6f75a0f2b85125104469f026e52a474e464f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apache.httpcomponents" name="httpmime" version="4.5.6">
- <artifact name="httpmime-4.5.6.jar">
- <sha256 value="0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apache.maven" name="maven-model" version="3.6.3">
- <artifact name="maven-model-3.6.3.jar">
- <sha256 value="17cef1f58e146ef0d7d9e96b3b92d98a1d6fd7d2b3288ba538e8ff1e0d9160cf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.apiguardian" name="apiguardian-api" version="1.1.2">
- <artifact name="apiguardian-api-1.1.2.jar">
- <sha256 value="b509448ac506d607319f182537f0b35d71007582ec741832a1f111e5b5b70b38" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="apiguardian-api-1.1.2.module">
- <sha256 value="e08028131375b357d1d28734e9a4fb4216da84b240641cb3ef7e7c7d628223fc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bitbucket.b_c" name="jose4j" version="0.9.5">
- <artifact name="jose4j-0.9.5.jar">
- <sha256 value="808fb3166f3e67dad9811c331029ab1681242fd52b735bc3f33f281167fcc72e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bc-jdk18on-bom" version="1.82">
- <artifact name="bc-jdk18on-bom-1.82.module">
- <sha256 value="e1e43f9694c85d79668bab9fa16c90f151d343a7427122a21d3bd6c7137b014d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcpg-jdk18on" version="1.80">
- <artifact name="bcpg-jdk18on-1.80.jar">
- <sha256 value="3799a0d53511b860780af43c44ae8e0519afabb263195af40174f46312cd58bd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcpkix-jdk18on" version="1.79">
- <artifact name="bcpkix-jdk18on-1.79.jar">
- <sha256 value="3639a24ddf9ba4b7eba0659b44770e91eba816421888e571f285aadefe532cd6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcpkix-jdk18on" version="1.80">
- <artifact name="bcpkix-jdk18on-1.80.jar">
- <sha256 value="4f4ba6a92617ea19dc183f0fa5db492eee426fdde2a0a2d6c94777ffd1af6413" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcprov-jdk18on" version="1.79">
- <artifact name="bcprov-jdk18on-1.79.jar">
- <sha256 value="0d81ecc3124536b539bce9aa3fe9621b7f84c9cee371b635a5b31c78b79ab1da" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcprov-jdk18on" version="1.80">
- <artifact name="bcprov-jdk18on-1.80.jar">
- <sha256 value="e8ad209f8c58d291a37ca9750e9e9fac60596956c983e49dd8282381dd8b3249" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcutil-jdk18on" version="1.79">
- <artifact name="bcutil-jdk18on-1.79.jar">
- <sha256 value="c70b88ada58938cbc2f005d40329054078bcfa1149e6ffc03e9242eb6ab21836" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.bouncycastle" name="bcutil-jdk18on" version="1.80">
- <artifact name="bcutil-jdk18on-1.80.jar">
- <sha256 value="22eca687f7955411f456af33e6ea8e68fc73cd80cb8b32aa5f7a8b1827d7c678" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.checkerframework" name="checker-qual" version="2.5.8">
- <artifact name="checker-qual-2.5.8.jar">
- <sha256 value="bd655da535df1eeb96fc8874d05d0f7029209de95096e4f84bd07c66688a210d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.checkerframework" name="checker-qual" version="3.33.0">
- <artifact name="checker-qual-3.33.0.jar">
- <sha256 value="e316255bbfcd9fe50d165314b85abb2b33cb2a66a93c491db648e498a82c2de1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="checker-qual-3.33.0.module">
- <sha256 value="e8521d75625d41272c767d262a153ac163cc505b66644a2ef705fa8949ffb4e5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.checkerframework" name="checker-qual" version="3.37.0">
- <artifact name="checker-qual-3.37.0.jar">
- <sha256 value="e4ce1376cc2735e1dde220b62ad0913f51297704daad155a33f386bc5db0d9f7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="checker-qual-3.37.0.module">
- <sha256 value="7258a769dcaa26b98154d229d85cc72e5b3666b0bcb637d2daf16ec498956638" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.checkerframework" name="checker-qual" version="3.43.0">
- <artifact name="checker-qual-3.43.0.jar">
- <sha256 value="3fbc2e98f05854c3df16df9abaa955b91b15b3ecac33623208ed6424640ef0f6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="checker-qual-3.43.0.module">
- <sha256 value="f8163327245ab8625532948c72a930548cd97f34d6c3fe860fa6aec5a34d79b4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.codehaus.groovy" name="groovy" version="3.0.22">
- <artifact name="groovy-3.0.22.jar">
- <sha256 value="c92c92c4b9b183f9981ba7399f36592e5e3ad6f4cdac7101b5a22cc17998d13f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.codehaus.mojo" name="animal-sniffer-annotations" version="1.23">
- <artifact name="animal-sniffer-annotations-1.23.jar">
- <sha256 value="9ffe526bf43a6348e9d8b33b9cd6f580a7f5eed0cf055913007eda263de974d0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.codehaus.mojo" name="animal-sniffer-annotations" version="1.24">
- <artifact name="animal-sniffer-annotations-1.24.jar">
- <sha256 value="c720e6e5bcbe6b2f48ded75a47bccdb763eede79d14330102e0d352e3d89ed92" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.codehaus.mojo" name="animal-sniffer-annotations" version="1.26">
- <artifact name="animal-sniffer-annotations-1.26.jar">
- <sha256 value="342f4d815eae69bb980620d0a622862709be37d38f47577675b42c739a962da9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.eclipse.jetty.alpn" name="alpn-api" version="1.1.3.v20160715">
- <artifact name="alpn-api-1.1.3.v20160715.jar">
- <sha256 value="07be99758b699e194f70fb9784d94202dc6c98212877829e3d72b020f2660576" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.fusesource.jansi" name="jansi" version="2.4.2">
- <artifact name="jansi-2.4.2.jar">
- <sha256 value="0b7b8b003a90ea491579b62f5118828e45112914c65589b00faa49d6ec785839" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.glassfish.jaxb" name="jaxb-runtime" version="2.3.2">
- <artifact name="jaxb-runtime-2.3.2.jar">
- <sha256 value="e6e0a1e89fb6ff786279e6a0082d5cef52dc2ebe67053d041800737652b4fd1b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.glassfish.jaxb" name="txw2" version="2.3.2">
- <artifact name="txw2-2.3.2.jar">
- <sha256 value="4a6a9f483388d461b81aa9a28c685b8b74c0597993bf1884b04eddbca95f48fe" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.gradle" name="test-retry-gradle-plugin" version="1.6.4">
- <artifact name="test-retry-gradle-plugin-1.6.4.jar">
- <sha256 value="03ecd06f3291c7fa47e6f4e9e6864b7cd15daf8bd0673b62a0f9000c409b7cbc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="test-retry-gradle-plugin-1.6.4.module">
- <sha256 value="6d06261f9df4f4973606c55c1c40ffad68256f9d7965d80ced08cd4842b080bf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.gradle.kotlin" name="gradle-kotlin-dsl-plugins" version="6.4.2">
- <artifact name="gradle-kotlin-dsl-plugins-6.4.2.jar">
- <sha256 value="3308645f467b266e5884c264508224b6729e8edc166e6d435f5b626c14e0fd19" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="gradle-kotlin-dsl-plugins-6.4.2.module">
- <sha256 value="931ab37bbc03c091edffc46d96a60b5e4fa2b0b4d5d9458b92c726e05a51d0d3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.gradle.toolchains" name="foojay-resolver" version="1.0.0">
- <artifact name="foojay-resolver-1.0.0.jar">
- <sha256 value="78b86a47dfdf7697c9bd15da78983fd80da7247d6e02fc106bdf07e0388b60a8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foojay-resolver-1.0.0.module">
- <sha256 value="6190cf0e42e664c11e1ac0a785699ab02b549cea34392c679f36d8a2c550fcb9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.hamcrest" name="hamcrest-core" version="1.3">
- <artifact name="hamcrest-core-1.3.jar">
- <sha256 value="66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.hamcrest" name="hamcrest-library" version="1.3">
- <artifact name="hamcrest-library-1.3.jar">
- <sha256 value="711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jcommander" name="jcommander" version="1.85">
- <artifact name="jcommander-1.85.jar">
- <sha256 value="fa7552d2831a2b20778d86851d093edca68fbc0a77f792b6223110e4fae67a70" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="jcommander-1.85.module">
- <sha256 value="bfa36d2947d9876f32a740796399e77bb98c7328997b45bd26b3f7d92b37a54a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jdom" name="jdom2" version="2.0.6">
- <artifact name="jdom2-2.0.6.jar">
- <sha256 value="1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains" name="annotations" version="13.0">
- <artifact name="annotations-13.0.jar">
- <sha256 value="ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains" name="annotations" version="23.0.0">
- <artifact name="annotations-23.0.0.jar">
- <sha256 value="7b0f19724082cbfcbc66e5abea2b9bc92cf08a1ea11e191933ed43801eb3cd05" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-common" version="2.9.3">
- <artifact name="lifecycle-common-2.9.3.module">
- <sha256 value="b9d4be83bb38e40f46a65fcc7792cd5e91549d3dd4859068c734fcb3481c4d03" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-common" version="2.9.5">
- <artifact name="lifecycle-common-2.9.5.module">
- <sha256 value="1525fbe1eec1ecab1ac8973c99371694df03a3a8147836f998b96fd0588a93ff" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-runtime" version="2.9.5">
- <artifact name="lifecycle-runtime-2.9.5.module">
- <sha256 value="d4db6e5057e6afa0156e49b5f15dcd248bb488afcdf772bc7f804c12348381be" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-runtime-compose" version="2.9.5">
- <artifact name="lifecycle-runtime-compose-2.9.5.module">
- <sha256 value="c122317b9012d3296fa32710f8d3471ba1c597d9f659ede443890b35f19b85d9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-runtime-compose-desktop" version="2.9.5">
- <artifact name="lifecycle-runtime-compose-desktop-2.9.5.jar">
- <sha256 value="31c3c4b6dea38f078c46829dee2c43abba2bf8757b7ee8a0f660f31217364898" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-runtime-compose-desktop-2.9.5.module">
- <sha256 value="445b633f4d0fe0423001788a98f84232126758643e4ad24350b4b7449bf42caa" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-viewmodel" version="2.9.3">
- <artifact name="lifecycle-viewmodel-2.9.3.module">
- <sha256 value="34123a129df37f7164ba5447fc1a57c5cd31d11ea9d4d24a19e5e312e9a8cea3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-viewmodel" version="2.9.5">
- <artifact name="lifecycle-viewmodel-2.9.5.module">
- <sha256 value="2e4e850091eaa36e3f91064c6d530fc4157412013f7e5621289d83d6a06cc5dc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.9.3">
- <artifact name="lifecycle-viewmodel-compose-2.9.3.module">
- <sha256 value="f9b4d6ee375bfe7cb3787346a21c8324672e10e257073370dd4a97baa9f1ae38" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-viewmodel-compose-desktop" version="2.9.3">
- <artifact name="lifecycle-viewmodel-compose-desktop-2.9.3.jar">
- <sha256 value="2db996ebf95a0bb6e2e0578e28a6ba472ebfec59ed1d5d32d513ef3ec01dfc1b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="lifecycle-viewmodel-compose-desktop-2.9.3.module">
- <sha256 value="cbdad3e4c95d16630533e52d649a59f0906491d26738b162acdbbfba2c24dfc5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.9.3">
- <artifact name="lifecycle-viewmodel-savedstate-2.9.3.module">
- <sha256 value="6c0979bc13728495f359cbaa8c88b41ec68c2d964e423f1d5425e1951c2b0826" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.9.5">
- <artifact name="lifecycle-viewmodel-savedstate-2.9.5.module">
- <sha256 value="3f72f0628cb8253bb9a335abc16b0c2573ba891bb138327583921a3e415fe44d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.savedstate" name="savedstate" version="1.3.5">
- <artifact name="savedstate-1.3.5.module">
- <sha256 value="37ad372fa514ce70a2013a44e5affefb17fa05a1e8ed7b247941a95125cae74c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.savedstate" name="savedstate-compose" version="1.3.5">
- <artifact name="savedstate-compose-1.3.5.module">
- <sha256 value="131b08cd6f3a699191942cbdc65081a7795dae37d87a55ba29d8df1d9b968206" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.androidx.savedstate" name="savedstate-compose-desktop" version="1.3.5">
- <artifact name="savedstate-compose-desktop-1.3.5.jar">
- <sha256 value="0f3d045c5fd7e1301ab6c38cd0778067b0484cf39acac1233be71a723a6a8075" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="savedstate-compose-desktop-1.3.5.module">
- <sha256 value="6492d87e4c4305916b0c41b9aa644cf9b9919a8a287e2dcf84c695f88abd41a6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.animation" name="animation" version="1.8.2">
- <artifact name="animation-1.8.2.module">
- <sha256 value="ed1bd6bce69f7e79d077066a528d6a29b1fcf7f961f02c534791eb325f814661" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.animation" name="animation-core" version="1.8.2">
- <artifact name="animation-core-1.8.2.module">
- <sha256 value="b5119bcbbfd328c0dc0fcc8a4729d793a837bf3e276923f56d10adbe27c648c9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.animation" name="animation-core-desktop" version="1.8.2">
- <artifact name="animation-core-desktop-1.8.2.jar">
- <sha256 value="710eeb91fd8552e10b67ecae12b1dc31ab317eb6e5bceb04d4c21e3f34252407" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-core-desktop-1.8.2.module">
- <sha256 value="ab13953ad0e156ff80bbd117a284b811560de3a2cc5d02af8d618328ce716c88" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.animation" name="animation-desktop" version="1.8.2">
- <artifact name="animation-desktop-1.8.2.jar">
- <sha256 value="80af3d6bf305f0b6c0cfbe8175ae7ec46bf7b3027a9bac1616e05b0e21422432" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="animation-desktop-1.8.2.module">
- <sha256 value="bcf1fa525f55979a6e8ee9b65023233a14a77eb63fe1bc89430893653266d88d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.annotation-internal" name="annotation" version="1.8.2">
- <artifact name="annotation-1.8.2.module">
- <sha256 value="ead43d4e6c7446e4371fc2a91918412942572820296216ec13f8403a3d30f56c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.collection-internal" name="collection" version="1.8.2">
- <artifact name="collection-1.8.2.module">
- <sha256 value="7adef3f2dc4ced688a6c9cfb60d606bb62b40369ef89cdb2afe9763428aea189" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.foundation" name="foundation" version="1.8.2">
- <artifact name="foundation-1.8.2.module">
- <sha256 value="3d1117715e9b17a8ed60039a34159b5e2bd81d29eee661b03d3edcedc7855655" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.foundation" name="foundation-desktop" version="1.8.2">
- <artifact name="foundation-desktop-1.8.2.jar">
- <sha256 value="0715dc7efb3ea6d5174a849214a8212aaac4989c3e31be83da82d32712a54f9e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-desktop-1.8.2.module">
- <sha256 value="3f1bb998a6dba9178b1f14e6ecbd9b8ef3e5f00c890740cd3bcfd5e05b12e9e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.foundation" name="foundation-layout" version="1.8.2">
- <artifact name="foundation-layout-1.8.2.module">
- <sha256 value="e193b441eb200a73dc7ab37486031cce42a26e2ce700fa79dd6b3166eb7a4794" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.foundation" name="foundation-layout-desktop" version="1.8.2">
- <artifact name="foundation-layout-desktop-1.8.2.jar">
- <sha256 value="979636876cabd6bbcd7fbb76f0311e80b1b319b420e057e468722180e9ca0079" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="foundation-layout-desktop-1.8.2.module">
- <sha256 value="14b61eeb155e68deeb2229165dbf4eb17c580e85191d55802260844917f09eb7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime" version="1.8.2">
- <artifact name="runtime-1.8.2.module">
- <sha256 value="e69d58b918d2981589816cc9c43b8626a74d9b3d430cd83147acc43dacd5b6df" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime" version="1.9.0">
- <artifact name="runtime-1.9.0.module">
- <sha256 value="16e4cc15fc3d0da051962b5de2dd9ca1d949a90e93045e27382bdda331a38aa3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime" version="1.9.2">
- <artifact name="runtime-1.9.2.module">
- <sha256 value="9c6539e9e575647baf24d2bba0579d4f9069cba195f430f601cf6ddfa700bd85" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime-desktop" version="1.9.0">
- <artifact name="runtime-desktop-1.9.0.module">
- <sha256 value="92ccc88a92cb30f5afd4e06c1d4fe390a0421036cecd40fb8cbea7b67129f0f7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime-desktop" version="1.9.2">
- <artifact name="runtime-desktop-1.9.2.jar">
- <sha256 value="05f5570c0a7ea8addd6fe9507a70f293efa7f1450d8b9b16dc3c8fee21cc6127" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-desktop-1.9.2.module">
- <sha256 value="2e50a9bf288ec56b96bff021462767780999b3d9dbfd04342761463217be0af9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime-saveable" version="1.8.2">
- <artifact name="runtime-saveable-1.8.2.module">
- <sha256 value="b639d8ab9e6613f1fbb75d0d5d3c5ccb7795247707975ea66cba9f4e8362576e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime-saveable" version="1.9.2">
- <artifact name="runtime-saveable-1.9.2.module">
- <sha256 value="6a0dd6c5b296f97e3c71577b121db240c3b0fee6a9c4f2bc4193c8d4a9b6268a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.runtime" name="runtime-saveable-desktop" version="1.9.2">
- <artifact name="runtime-saveable-desktop-1.9.2.jar">
- <sha256 value="eb7132b55de2b0913736fdff4705022803e455810f018efecc9eb3230936520a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="runtime-saveable-desktop-1.9.2.module">
- <sha256 value="1efd1a2c65ec1fc072916b9082b5876cffd1bcdab3d41cfa52e0396ad4805fab" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui" version="1.8.2">
- <artifact name="ui-1.8.2.module">
- <sha256 value="7c8f02050bc073026b7aa650630d72ef1c9a96e26bce6001827bde99e9b6f0f1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-backhandler" version="1.8.2">
- <artifact name="ui-backhandler-1.8.2.module">
- <sha256 value="591d7c1192ba020e86dc37afcd28bf4331724fe6c4fa47ced9759090aae9e845" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-backhandler-desktop" version="1.8.2">
- <artifact name="ui-backhandler-desktop-1.8.2.jar">
- <sha256 value="a45b9fd3a97c60a36dac7d218f290d127f9e557e4d519ef6134d7c23b96e5991" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-backhandler-desktop-1.8.2.module">
- <sha256 value="fa8299916fb732bf437203f8b2b35fd9c7c85fae07e08eaa8786d560ce1ea35c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-desktop" version="1.8.2">
- <artifact name="ui-desktop-1.8.2.jar">
- <sha256 value="1a4a6eb7b1e9ea7c58a2c755a583516a28d2bd6073a42e575fe856d0214b6328" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-desktop-1.8.2.module">
- <sha256 value="3049521ef04d81ec4f5364bdec99c3972894325a5710097c2a031b26b7ae5519" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-geometry" version="1.8.2">
- <artifact name="ui-geometry-1.8.2.module">
- <sha256 value="5ef3a63e6543901a7db1f714d73d381c57733e3f2eac7ce731bf3a826df11d59" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-geometry-desktop" version="1.8.2">
- <artifact name="ui-geometry-desktop-1.8.2.jar">
- <sha256 value="5aaf8b78bed6e56b74ee893172cce2e316813b61d8a22cddc0587a527c5caa27" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-geometry-desktop-1.8.2.module">
- <sha256 value="a6f15b9905a8c5ec2a6d07f120a5249ad142742e1244859205863d2b97340546" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-graphics" version="1.8.2">
- <artifact name="ui-graphics-1.8.2.module">
- <sha256 value="6a1f446e25e186c5c55d4386e36cca1a769d7a34b441237abd6c664ab3eb3e25" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-graphics-desktop" version="1.8.2">
- <artifact name="ui-graphics-desktop-1.8.2.jar">
- <sha256 value="3fc481656c6c9685cf593a9be822c5759b7008acc7395875caf6e2ee5a4e376c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-graphics-desktop-1.8.2.module">
- <sha256 value="54a7561af15b01e9e3d6b7b29997e0bcde7f5613204f3c1669a62105d6796f8b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-text" version="1.8.2">
- <artifact name="ui-text-1.8.2.module">
- <sha256 value="e8c23cd4b3301d0015a6c809615b72edd4c93c229aae2aed99f015809e8ae7a9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-text-desktop" version="1.8.2">
- <artifact name="ui-text-desktop-1.8.2.jar">
- <sha256 value="79fcaf9737dca385e46bc6f09d078f2e6305524891fee539c31c66d3c18353e7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-text-desktop-1.8.2.module">
- <sha256 value="33ff6e60f9bbad032e9ea9f12198abfcc0f91f474b79c94887434afff0c4e316" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-unit" version="1.8.2">
- <artifact name="ui-unit-1.8.2.module">
- <sha256 value="bd61d018cc234290a3ba24afc267afeaf90cff84107dbbd2561aa107f9982ea4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-unit-desktop" version="1.8.2">
- <artifact name="ui-unit-desktop-1.8.2.jar">
- <sha256 value="296d23deaa78b508cf95d14cf5bda58a4f3ad5b42d85fcc8becf6e12ffbd037e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-unit-desktop-1.8.2.module">
- <sha256 value="f1d995bde893423e88f1e148ba708b38ffc56d94d75cc74b3b9172d8b69fd171" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-util" version="1.8.2">
- <artifact name="ui-util-1.8.2.module">
- <sha256 value="f99b967b1ff02052567d4c4d1bd03a3b4181bd7f57da58e04a306263e861f0f8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.compose.ui" name="ui-util-desktop" version="1.8.2">
- <artifact name="ui-util-desktop-1.8.2.jar">
- <sha256 value="e3b1c439b4ea80285be90eaed8e7056437f671cfafe4b18a3a9cb5387c80be4a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="ui-util-desktop-1.8.2.module">
- <sha256 value="af92323cb192bf0d8d1156fb52e2e9fb5b679b8cf4baba727c2b8bb411fad89f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.intellij.deps" name="trove4j" version="1.0.20200330">
- <artifact name="trove4j-1.0.20200330.jar">
- <sha256 value="c5fd725bffab51846bf3c77db1383c60aaaebfe1b7fe2f00d23fe1b7df0a439d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="abi-tools" version="2.2.21">
- <artifact name="abi-tools-2.2.21.jar">
- <sha256 value="24bacf795029d2831608d9b31fa8d0d29fe1c3fba7a9b2c7630d1593f2389884" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="abi-tools" version="2.3.0">
- <artifact name="abi-tools-2.3.0.jar">
- <sha256 value="be854a23032b2cb73c285e67e4ed0b04c2af2d36f4cf026355cca5940ad1833f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="abi-tools-api" version="2.2.21">
- <artifact name="abi-tools-api-2.2.21.jar">
- <sha256 value="239901f317c189b4b4cc8bc5e966943dc19e39259539e668baa5d7ef18eb916a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="abi-tools-api" version="2.3.0">
- <artifact name="abi-tools-api-2.3.0.jar">
- <sha256 value="4017bcc1f5d3285b17e6b6220d16a468c8715930f0df96396d764b57f0a6d365" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="compose-compiler-gradle-plugin" version="2.3.0">
- <artifact name="compose-compiler-gradle-plugin-2.3.0-gradle813.jar">
- <sha256 value="21e882c4548b137d4af616be169ae6b384ca52db6a070fbb4087b63814e0b48b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="compose-compiler-gradle-plugin-2.3.0.module">
- <sha256 value="805920621f0eafc4eecce04fcd87e6484c7170cadb5642145c958c42bf468e05" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="compose-group-mapping" version="2.3.0">
- <artifact name="compose-group-mapping-2.3.0.jar">
- <sha256 value="bb6a7620ced43e04431171e4f81b52c0b3bad00edad2fe5866367478b5bd8e3c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="fus-statistics-gradle-plugin" version="2.2.21">
- <artifact name="fus-statistics-gradle-plugin-2.2.21-gradle813.jar">
- <sha256 value="27dcf4aeaa5bbb64d861bd29ed60d482f0ffd96244c81e2426b9dac5e7fdc63f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="fus-statistics-gradle-plugin-2.2.21.module">
- <sha256 value="495659b39e305541ecb712e69b622e13e38ad9240f9a827ca058434bd99f211d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="fus-statistics-gradle-plugin" version="2.3.0">
- <artifact name="fus-statistics-gradle-plugin-2.3.0-gradle813.jar">
- <sha256 value="0fe72fdc6e51be2b274b0e64b84401f525036afb206162a4458214f11ebad787" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="fus-statistics-gradle-plugin-2.3.0.module">
- <sha256 value="77c203486fd792b580572069e5c442d180c0ef055ba734505da28d197ec12ff7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-assignment" version="2.2.21">
- <artifact name="kotlin-assignment-2.2.21-gradle813.jar">
- <sha256 value="871c305479ae16b144d40c204ebdff01913005e8e98dab17b365c545a259f51d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-assignment-2.2.21.module">
- <sha256 value="18d7d7626ded1c98990bd2613558d49ab25f63b786c77eb488a99d8ab65ac613" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-assignment-compiler-plugin-embeddable" version="2.2.21">
- <artifact name="kotlin-assignment-compiler-plugin-embeddable-2.2.21.jar">
- <sha256 value="26616b8e1b214d62f02d15331caff725c4e8237ce20ad14f5ccce724aa29e7cf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-statistics" version="2.2.21">
- <artifact name="kotlin-build-statistics-2.2.21.jar">
- <sha256 value="8dfdfb2b8f67fcdcc4cee3ef90a25af467ca295853b0ea019d0010acebd6f18a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-statistics" version="2.3.0">
- <artifact name="kotlin-build-statistics-2.3.0.jar">
- <sha256 value="6778559700e72d764e9e24d958f16ec0cc75e76b75b3814c2bcde144a6274f4e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-tools-api" version="2.2.21">
- <artifact name="kotlin-build-tools-api-2.2.21.jar">
- <sha256 value="31645ca52239b221ebd060a00fff8d8516ffdc88bbd9f4e4cd7ddb41a7068c70" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-tools-api" version="2.3.0">
- <artifact name="kotlin-build-tools-api-2.3.0.jar">
- <sha256 value="c6c09cf2853457249f707c86382112409d5a55f50b6b8568ba4f530dd003fedc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-tools-compat" version="2.3.0">
- <artifact name="kotlin-build-tools-compat-2.3.0.jar">
- <sha256 value="009493e1caf04c8285f1fed157bbab688355db04d2deaec4f5a0f9b635f866e5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-tools-impl" version="2.2.21">
- <artifact name="kotlin-build-tools-impl-2.2.21.jar">
- <sha256 value="458b63ef8fc50a0a3180fe688ec1b995745992a05c495dac61e58d1088927a80" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-build-tools-impl" version="2.3.0">
- <artifact name="kotlin-build-tools-impl-2.3.0.jar">
- <sha256 value="93a5e8ffb1000801c832a862b23bd9766f444e6f6c185c32b1fb57877fb5cea3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="2.0.21">
- <artifact name="kotlin-compiler-embeddable-2.0.21.jar">
- <sha256 value="9fa8cdd1de0dccffe154c997d423ec6b5f53cd6d9177e3a77a9b0de03fb1bc81" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="2.2.0">
- <artifact name="kotlin-compiler-embeddable-2.2.0.jar">
- <sha256 value="b2f743ea5ba12f69e0f35e5d8d46069d74c8e2861087548a7e0e14a784bc4cf1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="2.2.21">
- <artifact name="kotlin-compiler-embeddable-2.2.21.jar">
- <sha256 value="9588fa696ac5507af764fd5660df6894185e12704ec1bc3f5cb772af4987f295" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="2.3.0">
- <artifact name="kotlin-compiler-embeddable-2.3.0.jar">
- <sha256 value="8dbd882fa58c3d17e683a27390288315f8b490f8e3e3b1be4dc3e280d37e285a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="2.2.21">
- <artifact name="kotlin-compiler-runner-2.2.21.jar">
- <sha256 value="a3a422e06bcd35a32a798d191ef6ebb35ea6b39c3553e941d39c01e631fc5c77" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="2.3.0">
- <artifact name="kotlin-compiler-runner-2.3.0.jar">
- <sha256 value="870977f29605436c5eb2257b9c8e5d64f3282f2a88edee4544d34ec45f16a6a7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-compose-compiler-plugin-embeddable" version="2.3.0">
- <artifact name="kotlin-compose-compiler-plugin-embeddable-2.3.0.jar">
- <sha256 value="d8693e09d606625a583d30589e790e9da542114ed353483ee16d694077f7d67e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-client" version="2.2.21">
- <artifact name="kotlin-daemon-client-2.2.21.jar">
- <sha256 value="3ce2ca3c5d7bc7c87c4149ac2c593d21a791d6776229ae123db645a3017de814" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-client" version="2.3.0">
- <artifact name="kotlin-daemon-client-2.3.0.jar">
- <sha256 value="b2be67688caf11a138d5ae0ce1235381ad9ab0ddb9395ab06f8d846a0b466017" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="2.0.21">
- <artifact name="kotlin-daemon-embeddable-2.0.21.jar">
- <sha256 value="b1a0a73c5022f8dd05a638c6b76b2bd7361818a1f3860ff2644133b1dd2bdb03" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="2.2.0">
- <artifact name="kotlin-daemon-embeddable-2.2.0.jar">
- <sha256 value="a26cc8e2d8619197cc4d115bea7766e9aa8e0f1e7876ea044ee1b9f305654601" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="2.2.21">
- <artifact name="kotlin-daemon-embeddable-2.2.21.jar">
- <sha256 value="91c0673c22e44b054ae0314d323860ebe1f3aff3f0ebc74fff82c4733dde09be" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="2.3.0">
- <artifact name="kotlin-daemon-embeddable-2.3.0.jar">
- <sha256 value="39bcb02d8c293aa678554c8b49d7ff84657021709283c6186e3a40806af9bd10" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="2.2.21">
- <artifact name="kotlin-gradle-plugin-2.2.21-gradle813.jar">
- <sha256 value="b7a52865c6a5e160d2cf61e4d423ce44a6a20de0a6b23d03404b6d01a2811737" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-2.2.21.module">
- <sha256 value="4e23802a3d530024ac465acd26487d6a3a702ee804cd613349c5108deabf4ba2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="2.3.0">
- <artifact name="kotlin-gradle-plugin-2.3.0-gradle813.jar">
- <sha256 value="3acf97d73a2581b032873fa89f56750d36b3b76d40d692d9839f2467ddae4d69" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-2.3.0.module">
- <sha256 value="bdb32db3aa27805f3479ec033ec63d3ccabeb13b889d86dabda742bbef53c09a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-annotations" version="2.2.21">
- <artifact name="kotlin-gradle-plugin-annotations-2.2.21.jar">
- <sha256 value="3594c40c7005d044952f80f704172bb6fd1844241025194fb16bee6d45da2e5b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-annotations" version="2.3.0">
- <artifact name="kotlin-gradle-plugin-annotations-2.3.0.jar">
- <sha256 value="fc7298c36b45f36d1652c703bab693f5fe9b11598ecd9ac7ec9fdfe88a6db0f0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-api" version="2.2.21">
- <artifact name="kotlin-gradle-plugin-api-2.2.21-gradle813.jar">
- <sha256 value="b7bfd07f5f1e0a44af612eb48474df6328ee0f6f3a6a73642ce473f30645e1a5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-api-2.2.21.jar">
- <sha256 value="b7bfd07f5f1e0a44af612eb48474df6328ee0f6f3a6a73642ce473f30645e1a5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-api-2.2.21.module">
- <sha256 value="1e74b486f944ab9e116f9a4aae20c52fc2f9ac523a552db97dd6581480fe940b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-api" version="2.3.0">
- <artifact name="kotlin-gradle-plugin-api-2.3.0-gradle813.jar">
- <sha256 value="ca1ead149a8c8f41ba60a839a83b23c3a06227c46c62124c51be999035deac31" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-api-2.3.0.module">
- <sha256 value="050f1e10220900e47a30891dd5cfea837a65dbbb0d9a3cb1b85291aba326ca41" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea" version="2.2.21">
- <artifact name="kotlin-gradle-plugin-idea-2.2.21.jar">
- <sha256 value="ec969c5f0b099f823846232238f9bd64f3d3741e62ea9050ad2e432fad79d0a0" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-idea-2.2.21.module">
- <sha256 value="9151ae223787f1c20b70b24a117789b4d14d0cc484e462732cb230a797f75bcf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea" version="2.3.0">
- <artifact name="kotlin-gradle-plugin-idea-2.3.0.jar">
- <sha256 value="952e73948e2a20d398c26b87a6bb70ccf66418fbaf1527c3515b188ea9d4bd60" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-idea-2.3.0.module">
- <sha256 value="91152faea3bc0c94db66d3cb58aae1dbead7c860b5764e67b200b4d4df4ceab9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea-proto" version="2.2.21">
- <artifact name="kotlin-gradle-plugin-idea-proto-2.2.21.jar">
- <sha256 value="4b4be774efb9585af0fda180d33903d8272e497df7b81bb091fa9339ecda45bd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea-proto" version="2.3.0">
- <artifact name="kotlin-gradle-plugin-idea-proto-2.3.0.jar">
- <sha256 value="7a90503c9d787f9bcd2c1776e4cc527eb9de7912ef79c6c958f1305a2d1c43ba" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-model" version="2.2.21">
- <artifact name="kotlin-gradle-plugin-model-2.2.21.jar">
- <sha256 value="908e6e5c890bb49dbc9266dccf28bdb0c258c48647039aed702fe9d586640186" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-gradle-plugin-model-2.2.21.module">
- <sha256 value="fe446e71d58b9f5bdead8ef05b68b498617317e1b92d47b9ab3b674d64f27664" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugins-bom" version="2.2.21">
- <artifact name="kotlin-gradle-plugins-bom-2.2.21.module">
- <sha256 value="dc4fc0f35a5532a53a432ee4fe2243132548555f275f63ee6990d50333f8ce2a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugins-bom" version="2.3.0">
- <artifact name="kotlin-gradle-plugins-bom-2.3.0.module">
- <sha256 value="ffd6a73734b2a52fb7633f1639544be371e0629c51d97fa1e5fb5ea9343a1709" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-abi-reader" version="2.3.0">
- <artifact name="kotlin-klib-abi-reader-2.3.0.jar">
- <sha256 value="41e31422eb5eb224b9a475fe80eb8d06eb21ad34fb7d0a408d2c972a7abb8cbb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-api" version="2.2.21">
- <artifact name="kotlin-klib-commonizer-api-2.2.21.jar">
- <sha256 value="58bc451ce62ed6befd077ac107ea5f133443e74dd78cf3a4a48f868e61837e8b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-api" version="2.3.0">
- <artifact name="kotlin-klib-commonizer-api-2.3.0.jar">
- <sha256 value="9ba57d91abdeab9acd588a14b5f42209b99644c53416dff9e97ecb4bf97f5248" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-embeddable" version="2.2.21">
- <artifact name="kotlin-klib-commonizer-embeddable-2.2.21.jar">
- <sha256 value="fff95b9b5995798116407a7c0ca2da28f7d3304eee65191c7fe79b404f5f7308" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-embeddable" version="2.3.0">
- <artifact name="kotlin-klib-commonizer-embeddable-2.3.0.jar">
- <sha256 value="aae36a0eaad9c7070c9b0b9a16e525c991276fc08488cc7656a8671e7c538426" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-main-kts" version="2.0.21">
- <artifact name="kotlin-main-kts-2.0.21.jar">
- <sha256 value="36fef581638be9c674295c176f10bc9f13025e5e1160030200991ded62ed6c29" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-metadata-jvm" version="2.2.21">
- <artifact name="kotlin-metadata-jvm-2.2.21.jar">
- <sha256 value="e181f32a21a3cdf195f974004a42f0067c2bd9deaa2a883636748d83fdefd99d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-metadata-jvm" version="2.3.0">
- <artifact name="kotlin-metadata-jvm-2.3.0.jar">
- <sha256 value="0c64203991d0232d989cd5e366d6028d27b1b087240818178bd50c268eeab56f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-native-prebuilt" version="2.3.0">
- <artifact name="kotlin-native-prebuilt-2.3.0-linux-x86_64.tar.gz">
- <sha256 value="1f87fab1c49fa717fbccb7934691f6be190dcdae62e3261f94e9c943bde777b5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-native-prebuilt-2.3.0-macos-aarch64.tar.gz">
- <sha256 value="f8bb5a09d373bc4e90c4a41e998f19487b2f2c93370470f6acc28c5a64931b91" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-native-prebuilt-2.3.0-macos-x86_64.tar.gz">
- <sha256 value="477576fb31f138dc08f0c88a9a60c09ecf394e0a386ed9bac572dfce2a5fdf46" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-native-prebuilt-2.3.0-windows-x86_64.zip">
- <sha256 value="c05a05020c5233e71f31e31e83fd8885f31a67930560bf297261890e4adf6a9a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-native-utils" version="2.2.21">
- <artifact name="kotlin-native-utils-2.2.21.jar">
- <sha256 value="e74b14406dae0a02388187c62c1731183ba7d0d8e60675682de511a90afa6c56" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-native-utils" version="2.3.0">
- <artifact name="kotlin-native-utils-2.3.0.jar">
- <sha256 value="ee4bf2833d10e5f37dd216a83129f59f3c7cbef5ebac130f70664839708c80b7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-parcelize-compiler" version="2.3.0">
- <artifact name="kotlin-parcelize-compiler-2.3.0.jar">
- <sha256 value="4b77694811be14b1fdef7012dc19a73cf5b049d1db449b05b61dafa68b3e8045" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-parcelize-runtime" version="2.3.0">
- <artifact name="kotlin-parcelize-runtime-2.3.0.jar">
- <sha256 value="aec9fabdfea276f359c2ca62ec487cabc7826316dffb5accc965372eef778246" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.6.10">
- <artifact name="kotlin-reflect-1.6.10.jar">
- <sha256 value="3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.8.21">
- <artifact name="kotlin-reflect-1.8.21.jar">
- <sha256 value="8a6cd5a3cf092acee274ce2c444dc36eefdb631579859dd4d857b3309a529c91" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.9.21">
- <artifact name="kotlin-reflect-1.9.21.jar">
- <sha256 value="a133e049f0a4e249651582428e166de4dfac9546adf436b6172119255ede510f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="2.0.21">
- <artifact name="kotlin-reflect-2.0.21.jar">
- <sha256 value="3ad2fcad0c09ddc0922debab4444d612144b7b465b75a8bb7587e20ddfafd799" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="2.2.0">
- <artifact name="kotlin-reflect-2.2.0.jar">
- <sha256 value="230d91c2e410e3cfca3a4dc73d255455f62ff52aac091a33397a6e30bde91bf7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="2.2.21">
- <artifact name="kotlin-reflect-2.2.21.jar">
- <sha256 value="44380abf37d245ce5c0f294f43512d1c39a59642bfa463922c74e96877cf49f8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="2.3.0">
- <artifact name="kotlin-reflect-2.3.0.jar">
- <sha256 value="714df4be819545ff4de1f36aa2183e0dea94b4c8cdf7ca29e9c89919baf36362" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-sam-with-receiver" version="2.2.21">
- <artifact name="kotlin-sam-with-receiver-2.2.21-gradle813.jar">
- <sha256 value="b47c949b8bb80ce680723f8bc3c870f227c36477a5eb02c2b73d61118d4630a6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-sam-with-receiver-2.2.21.module">
- <sha256 value="da25db93cf8ebf06c63352f83e720ad787bc703fd0e780f11918d08a2ec9804e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-sam-with-receiver-compiler-plugin-embeddable" version="2.2.21">
- <artifact name="kotlin-sam-with-receiver-compiler-plugin-embeddable-2.2.21.jar">
- <sha256 value="cb0785e6a7870d2f5ea96f647020e2812dec9d7023033319bbdb1ce7e5e65548" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="2.0.21">
- <artifact name="kotlin-script-runtime-2.0.21.jar">
- <sha256 value="9c111f8d08ade455566272d561921adc2b2cb6b7a4ccee38d9829c5e3a1ca6a3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="2.2.0">
- <artifact name="kotlin-script-runtime-2.2.0.jar">
- <sha256 value="4ed97fd1e0c9bb1d0948ed5e63cc91456313a59518295b92b2c1514aef556150" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="2.2.21">
- <artifact name="kotlin-script-runtime-2.2.21.jar">
- <sha256 value="2b1519b427b514d1536c1b425674b03fe914af637924028e9959c6625442df51" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="2.3.0">
- <artifact name="kotlin-script-runtime-2.3.0.jar">
- <sha256 value="db826961371d6605318d9c4e4bfcdbfac94c3a0892cdcabd55224870fead57f1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="2.0.21">
- <artifact name="kotlin-scripting-common-2.0.21.jar">
- <sha256 value="f87deb2b14d068f99cba18217d80af85481c029c731ad8704458e9add9ca20f8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="2.2.21">
- <artifact name="kotlin-scripting-common-2.2.21.jar">
- <sha256 value="414ed91c3f5e4492b23cb9537842b4651038e25dad84107939f434c2203f2a92" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="2.3.0">
- <artifact name="kotlin-scripting-common-2.3.0.jar">
- <sha256 value="4252b782cda53fcbfd953b90af03250e2197ffef6e55abd9b0a2e48f93eff253" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-embeddable" version="2.0.21">
- <artifact name="kotlin-scripting-compiler-embeddable-2.0.21.jar">
- <sha256 value="2413c230fdd8cd47ebbeba273e4df94cf3b44cb3ec95d2cb35472c93768c9f1c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-embeddable" version="2.2.21">
- <artifact name="kotlin-scripting-compiler-embeddable-2.2.21.jar">
- <sha256 value="d934b9d0c246bc09624b7068af58ad57cef11dbe2addbc7b19d250cce42de1c9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-embeddable" version="2.3.0">
- <artifact name="kotlin-scripting-compiler-embeddable-2.3.0.jar">
- <sha256 value="67145dbea93194dbb2253e2f35a0a9fe78017c2cbce3ecdb4b1ff43fff4718d5" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-impl-embeddable" version="2.0.21">
- <artifact name="kotlin-scripting-compiler-impl-embeddable-2.0.21.jar">
- <sha256 value="6ed0fa5beb25466883989b5641f36809479260b7014535502fd387ce6c7ba833" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-impl-embeddable" version="2.2.21">
- <artifact name="kotlin-scripting-compiler-impl-embeddable-2.2.21.jar">
- <sha256 value="788a3060c8e7997f8ae16ba5c0280d05005af0a42029f18cb10c5625b979fac3" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-impl-embeddable" version="2.3.0">
- <artifact name="kotlin-scripting-compiler-impl-embeddable-2.3.0.jar">
- <sha256 value="32c7427f105e62d4f4eff3035da1e4280b27771be4ad6143ba8655d1887720cd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-jvm" version="2.0.21">
- <artifact name="kotlin-scripting-jvm-2.0.21.jar">
- <sha256 value="88427f0f7a4c47845fa2221d29f6e0e0d7cbe73c3edf8bca30b4d8b3a336a77c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-jvm" version="2.2.21">
- <artifact name="kotlin-scripting-jvm-2.2.21.jar">
- <sha256 value="83820c5fcc5d28f045f914ecd5900bbbcf8115b0d7007334de069fe6c70669e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-jvm" version="2.3.0">
- <artifact name="kotlin-scripting-jvm-2.3.0.jar">
- <sha256 value="36933eb83619a8a65e041dfa9b692d34e07d57c6fd62fe371c8bbf05880bec47" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-serialization" version="2.3.0">
- <artifact name="kotlin-serialization-2.3.0-gradle813.jar">
- <sha256 value="4dcb298ccb73de2c02e4220c4ca16196b202db29af28907c5beb5ff396de176a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-serialization-2.3.0.module">
- <sha256 value="01455e1f2175d37b2e94e65e17c4b8f9bd2d9ab42e9e6d4a8f83375bea23ce02" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-serialization-compiler-plugin-embeddable" version="2.3.0">
- <artifact name="kotlin-serialization-compiler-plugin-embeddable-2.3.0.jar">
- <sha256 value="f244409a077c163b5c35280ff9b78029a75a367dddc45024e270f109750acf3e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.8.21">
- <artifact name="kotlin-stdlib-1.8.21.jar">
- <sha256 value="042a1cd1ac976cdcfe5eb63f1d8e0b0b892c9248e15a69c8cfba495d546ea52a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.9.0">
- <artifact name="kotlin-stdlib-1.9.0.jar">
- <sha256 value="35aeffbe2db5aa446072cee50fcee48b7fa9e2fc51ca37c0cc7d7d0bc39d952e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.0.21">
- <artifact name="kotlin-stdlib-2.0.21.jar">
- <sha256 value="f31cc53f105a7e48c093683bbd5437561d1233920513774b470805641bedbc09" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.0.21.module">
- <sha256 value="81fd6d181012487ee3246eff4e2bacb64b58c46e5b5aa72971a4ddf1bd1541ed" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.1.21">
- <artifact name="kotlin-stdlib-2.1.21.jar">
- <sha256 value="263bdc679e1f62012db7b091796279b6d71cf36f4797a98ff1ace05835f201c8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.1.21.module">
- <sha256 value="0d3735043d68b7a5afb44d27de65f80a9d2b208462709c2edbb48fd5b395ad8a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.2.0">
- <artifact name="kotlin-stdlib-2.2.0.jar">
- <sha256 value="65d12d85a3b865c160db9147851712a64b10dadd68b22eea22a95bf8a8670dca" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.2.0.module">
- <sha256 value="a5b98fdcd9db017d542e197225dcee18d658a56de1db2cc41e13196d6b1769a4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.2.10">
- <artifact name="kotlin-stdlib-2.2.10.jar">
- <sha256 value="9c67cc79efd6b9215b49d2a4308f5f3433537376c7c88e89bdd6729bd096e61a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.2.10.module">
- <sha256 value="db78df08283591cb67c8b9d2796109eb52b6088d4dfe102b545f20118249713f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.2.20">
- <artifact name="kotlin-stdlib-2.2.20.jar">
- <sha256 value="8836ccffd3585fadda9901244b20d42901d2f3cd581058d8434e2ffabcf3a3e7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.2.20.module">
- <sha256 value="c918f5214d021a72e3767f2756e97d103a526e04f1423da3663efdfb5847db95" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.2.21">
- <artifact name="kotlin-stdlib-2.2.21-all.jar">
- <sha256 value="555cdb4c884a584c1b5d59f696fb76cd660917fab36b8ae8032bcd62c750efe5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.2.21.jar">
- <sha256 value="6558a3d233da56a20934b32159f9db5f86ed5816ef098f78a2c223dc6abb79dd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.2.21.module">
- <sha256 value="bfbc657ddd3a8e37e4c8ad417968d5eb0b0b171c9fce48f962c2ad32ee434c21" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.3.0">
- <artifact name="kotlin-stdlib-2.3.0.jar">
- <sha256 value="887587c91713250ad52fe14ad9166d042c33835049890e9437f355ffc5a195b1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.3.0.module">
- <sha256 value="0910a8a3b6960fc792c45c56a91d7c3a3f26286f03295554b519cff378756da2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.3.0-RC">
- <artifact name="kotlin-stdlib-2.3.0-RC.jar">
- <sha256 value="cc338d65bbec94b73036f7c3c3a5f6f09ae8705b95c0f920ec3287b46b6894d3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-stdlib-2.3.0-RC.module">
- <sha256 value="8feb81a3f4390c336d07c6b7cf3ee45501e9c05e73ba904553c51e2489a8e153" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.21">
- <artifact name="kotlin-stdlib-common-1.8.21.jar">
- <sha256 value="6a44c9ecc9d7754d9e943fb1e3588c74d4a3f1785be51074f49d6c5723682a73" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.9.0">
- <artifact name="kotlin-stdlib-common-1.9.0.jar">
- <sha256 value="283274204bd7c020789ec46f8f8e72af4244d7f550b3392a57e5ca006ad7aa2c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="2.0.21">
- <artifact name="kotlin-stdlib-common-2.0.21.module">
- <sha256 value="6f5df8af633600a6b9cfb0fcc764af3d5119f376677677b91b6aee816b1d30ab" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="2.2.0">
- <artifact name="kotlin-stdlib-common-2.2.0.module">
- <sha256 value="58fc0d664fc3a67e7e6be9fdbeaedbd212dfa3e527f744f861e792cda72c0e47" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="2.2.21">
- <artifact name="kotlin-stdlib-common-2.2.21.module">
- <sha256 value="3ffdb451aa2d314fe7263782d37eabddcf8b941bcb940fe3192ac01a62b57f7b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="2.3.0">
- <artifact name="kotlin-stdlib-common-2.3.0.module">
- <sha256 value="fe90258db713355581a016437d06c029d069c20bbddee134d91e4b887073d74f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.0">
- <artifact name="kotlin-stdlib-jdk7-1.8.0.jar">
- <sha256 value="4c889d1d9803f5f2eb6c1592a6b7e62369ac7660c9eee15aba16fec059163666" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.20">
- <artifact name="kotlin-stdlib-jdk7-1.8.20.jar">
- <sha256 value="af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="2.0.21">
- <artifact name="kotlin-stdlib-jdk7-2.0.21.jar">
- <sha256 value="712f480760edeee48a84369e6be89f6ab52375408bb2ca3be14ef663f72bee31" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="2.1.21">
- <artifact name="kotlin-stdlib-jdk7-2.1.21.jar">
- <sha256 value="966846172e1052cb5b34d7b34647a64799b33f6da816509f7825c56f55895234" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="2.2.0">
- <artifact name="kotlin-stdlib-jdk7-2.2.0.jar">
- <sha256 value="0d10bc0d42b8605f23629a3f31ea27c19cdbca9dcdf4f53f6d22cd6366836d18" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.0">
- <artifact name="kotlin-stdlib-jdk8-1.8.0.jar">
- <sha256 value="05b62804441b0c9a1920b6b7d5cf7329a4e24b6258478e32b1f046ca01900946" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.20">
- <artifact name="kotlin-stdlib-jdk8-1.8.20.jar">
- <sha256 value="e398b67977622718bf18ff99b739c7d9da060f33fb458a2e25203221c16af010" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="2.0.21">
- <artifact name="kotlin-stdlib-jdk8-2.0.21.jar">
- <sha256 value="15c8c0acb311483c068d1697501965474b70dfd80ac79580eca3a03cf51e4a1d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="2.1.21">
- <artifact name="kotlin-stdlib-jdk8-2.1.21.jar">
- <sha256 value="87b4f956de27401446227e474ac7a31acff0d0a8087160c54288c1e6f46a67e6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="2.2.0">
- <artifact name="kotlin-stdlib-jdk8-2.2.0.jar">
- <sha256 value="adc16648dbbcf35b0d10e7ec301c35d746d1c2fe460c606aba59f12b117cf9b0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-test" version="2.2.0">
- <artifact name="kotlin-test-2.2.0.jar">
- <sha256 value="8db175a3f56cf139ebdf8936f293ce5a64a16b52a0408804e0ec077e8848eb32" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-test-2.2.0.module">
- <sha256 value="54a7e1c07d567b0e0c7d9139579eb741ed07e0de5b5a0c7ff3a57ad35ee65a3c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-test" version="2.3.0">
- <artifact name="kotlin-test-2.3.0.jar">
- <sha256 value="ae298a046eb9db6facb448685cb29f6ca77ab52afff1169b3fc52519de74da28" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-test-2.3.0.module">
- <sha256 value="20182386cdc7ecb9a9735f56eb3a7f7e4722fa26752bd5ff1d8155b7bf30cf1f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-test-junit" version="2.3.0">
- <artifact name="kotlin-test-junit-2.3.0.jar">
- <sha256 value="3ab0e208804c1951f082e71ce8a3229015e9afd226393cffa847a263a2a2a927" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-test-junit-2.3.0.module">
- <sha256 value="68d438add8d99cfacaaef36133d6773615d28dfd20559eb4263bf19a707dc5bd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-test-junit5" version="2.3.0">
- <artifact name="kotlin-test-junit5-2.3.0.jar">
- <sha256 value="4c62a49cb6be546723abc2c66b155d56815c7c8f6406b1d6ce4cb5545c51418c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlin-test-junit5-2.3.0.module">
- <sha256 value="3e14894f56923cbd9c4a17379291084b1d74cec2d6d33db398e278b451c4999f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="2.2.21">
- <artifact name="kotlin-tooling-core-2.2.21.jar">
- <sha256 value="74014ec4f3ef78ce7da7e3e6964f2c526a3121d5c58fef8ca2979e5f344582f4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="2.3.0">
- <artifact name="kotlin-tooling-core-2.3.0.jar">
- <sha256 value="367142781299bc0f9120c1deec0e62934a1af9ea7f01aaa9c5a5354dc5d8d7d9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-io" version="2.2.21">
- <artifact name="kotlin-util-io-2.2.21.jar">
- <sha256 value="266aa4026a106f59fcefc3f151768870af91cef15e4011fac0aa1f1f567d49f4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-io" version="2.3.0">
- <artifact name="kotlin-util-io-2.3.0.jar">
- <sha256 value="1c91203f27e73b9688ddfe1a8802328d35eb70fa55f5e13deadb721e78f92aa4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-klib" version="2.2.21">
- <artifact name="kotlin-util-klib-2.2.21.jar">
- <sha256 value="55400a917e6b984a6197eae78b5b52edbdf2cd6e0a7c3843f7954481bafb243f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-klib" version="2.3.0">
- <artifact name="kotlin-util-klib-2.3.0.jar">
- <sha256 value="64bba009966a028186d9ee706b0dc80fea61c0ae6eb1725ed1d7d70ef22b52e1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-klib-metadata" version="2.2.21">
- <artifact name="kotlin-util-klib-metadata-2.2.21.jar">
- <sha256 value="022b95a3dfed949d7c2e47820bcd9836ee057b721513f773361e4333f6c76f8c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-klib-metadata" version="2.3.0">
- <artifact name="kotlin-util-klib-metadata-2.3.0.jar">
- <sha256 value="2598c26c34cc5c69eb00473463e950ae67e9b80967f43a0183c567ede66a9717" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="atomicfu" version="0.22.0">
- <artifact name="atomicfu-0.22.0.module">
- <sha256 value="5c876ef7e1ee07dd30721c43b46ead8eda23ce2b22260e70f933cbe004e80607" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="atomicfu" version="0.23.2">
- <artifact name="atomicfu-0.23.2.module">
- <sha256 value="51530de284967a15e211c98563ca9d2356899b8cb331704560b0645adeac6dc0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="atomicfu-jvm" version="0.22.0">
- <artifact name="atomicfu-jvm-0.22.0.jar">
- <sha256 value="2da073727f3ab5e5584e74c12e11519c908ae2dfaf6aeb25ded42b6682297882" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="atomicfu-jvm-0.22.0.module">
- <sha256 value="35070f923ce69f87c6f90e5305720e2704409b69a2374492ac45be70075ee49a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="atomicfu-jvm" version="0.23.2">
- <artifact name="atomicfu-jvm-0.23.2.jar">
- <sha256 value="101ff43ff563fca167af5ade98c3b69bf569010eab745013b84d8955034d3b3c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="atomicfu-jvm-0.23.2.module">
- <sha256 value="f5fac91c373a0098e5ccae6221e89bb71a1490cf6a8949ee348d46ee1ca8d3a6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-android" version="1.10.2">
- <artifact name="kotlinx-coroutines-android-1.10.2.jar">
- <sha256 value="e713f1f874244115a07571065cffa0f24f5e78300e9720fea16de3af1d75fd41" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-android-1.10.2.module">
- <sha256 value="092fe38103eec62e94540ca0cd61039ef8f7d8e46694ec033be1f63f0ea2013d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-android" version="1.9.0">
- <artifact name="kotlinx-coroutines-android-1.9.0.jar">
- <sha256 value="bd783acd2f9738845d58380f46f45b5cde95d0cb03027d56725338b26bfc4d72" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-android-1.9.0.module">
- <sha256 value="7df1e04d77f0cc411890d999a9449b0e3bcd4f159a46c3060b110204ca607d43" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.10.2">
- <artifact name="kotlinx-coroutines-core-1.10.2.module">
- <sha256 value="8fe254177e711a7cd18a3c06d8242fce945f41c2cca13dc19b33ae42a5435016" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.6.4">
- <artifact name="kotlinx-coroutines-core-1.6.4.module">
- <sha256 value="a6eed4a1835588e7c84fcd7b0475fce9a7b3444c870ebc797b88ba64ccf4576b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.7.1">
- <artifact name="kotlinx-coroutines-core-1.7.1.module">
- <sha256 value="a9cc0c2bee3c6fc4ba8d0e753a3f3e70e181da5df3a2589ee54e92807b33accf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.7.3">
- <artifact name="kotlinx-coroutines-core-1.7.3.module">
- <sha256 value="7fb162396594ec28e1b6a4411b457949a7670f5e12019176774e1fd6b9471bbf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.9.0">
- <artifact name="kotlinx-coroutines-core-1.9.0.module">
- <sha256 value="ad534034a953b4e12cbeeb874c66adf8b1ca14df15fe0d2e6547aa34e86dfeca" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.10.2">
- <artifact name="kotlinx-coroutines-core-jvm-1.10.2.jar">
- <sha256 value="5ca175b38df331fd64155b35cd8cae1251fa9ee369709b36d42e0a288ccce3fd" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.10.2.module">
- <sha256 value="e9e4a74b4dbfe0f5ebeed88d49f3546c3ec3089419b20e5250403135c2c64c53" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.6.4">
- <artifact name="kotlinx-coroutines-core-jvm-1.6.4.jar">
- <sha256 value="c24c8bb27bb320c4a93871501a7e5e0c61607638907b197aef675513d4c820be" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.6.4.module">
- <sha256 value="0d94c8a41483e7c2707ebd693e1b1357a84152998ce85550ebbc54ca4321a3a7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.1">
- <artifact name="kotlinx-coroutines-core-jvm-1.7.1.jar">
- <sha256 value="7496cffdd3eb10109acdda1c3212f6ac7815789e09380dc9e2ccdec496dba3fc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.7.1.module">
- <sha256 value="db1fe0110fa82b565d332d39d3f3e62c1dc7eb6238333e3b15e4377fa56e39cb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.3">
- <artifact name="kotlinx-coroutines-core-jvm-1.7.3.jar">
- <sha256 value="1ab3acc38f3e7355c4f9d1ec62107a46fa73c899f3070d055e5d4373dfe67e12" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.7.3.module">
- <sha256 value="34d6ee99b76ac062b51555b4a70be18349fe5566da79a190614f171c80b6538e" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.8.0">
- <artifact name="kotlinx-coroutines-core-jvm-1.8.0.jar">
- <sha256 value="9860906a1937490bf5f3b06d2f0e10ef451e65b95b269f22daf68a3d1f5065c5" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.8.0.module">
- <sha256 value="ff6a22da40040938751db0ae21177e76517dbf126a76796f5426727bf76c1228" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.8.1">
- <artifact name="kotlinx-coroutines-core-jvm-1.8.1.module">
- <sha256 value="09b81c9d11c2deebf133ad87b707927c1f04099cb611ef008c7725b3eb308329" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.9.0">
- <artifact name="kotlinx-coroutines-core-jvm-1.9.0.jar">
- <sha256 value="ad89c2892235e670f222d819cb3d81188143cb19a05b59df9889ae4269f5c70a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.9.0.module">
- <sha256 value="b321a899e40d3ce345707aa2cfda9983ad0dcc69fea74a9b8bf906a16c1cf8a9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-debug" version="1.10.2">
- <artifact name="kotlinx-coroutines-debug-1.10.2.jar">
- <sha256 value="dc764af5763ca3fd74d726692459a3cd25f8a0f70fa6c71e57feb9c97e1d8ee9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-debug-1.10.2.module">
- <sha256 value="5f2b98df32475b53b3b29871ce1bea377ceddb4be47b3cb4e70de1ace983a1c1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-jdk8" version="1.10.2">
- <artifact name="kotlinx-coroutines-jdk8-1.10.2.jar">
- <sha256 value="f861f9fa3b3088e6f7c59bc92a91adacf687b5bdeb081cf3608c5454f7739625" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-jdk8-1.10.2.module">
- <sha256 value="4a6ae8337ed462a07020e1b30906bd2c81984c6c2435c9713fd767e1d02e78d2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-slf4j" version="1.10.2">
- <artifact name="kotlinx-coroutines-slf4j-1.10.2.jar">
- <sha256 value="d65dee3cafa6f7bfaefedb493fc68b5c63abe750734fb8af92fac7a0d3101457" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-slf4j-1.10.2.module">
- <sha256 value="07bc490022c658042941f52b171c0f5ce064bd6c63522904303992e417a045bb" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test" version="1.10.2">
- <artifact name="kotlinx-coroutines-test-1.10.2.module">
- <sha256 value="422072cee3b69f68d5b1503bb6651be78946b04c39284a1cc026cce8bdf1f806" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test" version="1.9.0">
- <artifact name="kotlinx-coroutines-test-1.9.0.module">
- <sha256 value="3a5f38700b2a4eb290e3507a0e3e4f9cc0bd63e70cca7f15e911dbf37c4f44ca" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test-jvm" version="1.10.2">
- <artifact name="kotlinx-coroutines-test-jvm-1.10.2.jar">
- <sha256 value="590a549f8c1db590c9d98a8a20424a1f581a34162a369e6a6bd884ce7d36d3d7" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-coroutines-test-jvm-1.10.2.module">
- <sha256 value="56b20817cc51ad88bdb59c01216b09897cd4fa698d517bb477d92a972a7a1aaf" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-html-jvm" version="0.8.1">
- <artifact name="kotlinx-html-jvm-0.8.1.jar">
- <sha256 value="98bda1c78a5028a134ceb25b63f5c130c89349730d35fd47ef7490b6bf0b63b3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-html-jvm-0.8.1.module">
- <sha256 value="2e6147bd8326ca47be957230ad2ecb3aee8e194a0afdb73a6776116eed7a4a5f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-bytestring" version="0.7.0">
- <artifact name="kotlinx-io-bytestring-0.7.0.module">
- <sha256 value="dcd7c62a427ddbbf5ece0b798dc12a0f8d5571237f51270510a507228b633379" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-bytestring" version="0.8.2">
- <artifact name="kotlinx-io-bytestring-0.8.2.module">
- <sha256 value="46be8e476acdae545e3584665ae583cc4a98afc614e8cb3d0c64c8d4fbaf93ba" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-bytestring-jvm" version="0.7.0">
- <artifact name="kotlinx-io-bytestring-jvm-0.7.0.jar">
- <sha256 value="ea38a66b0ff46ed82dded9e81d2dce70e5fbe03bd6cc52b4fc8869381dea7b7d" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-io-bytestring-jvm-0.7.0.module">
- <sha256 value="0fce760b15bac0b90bef1bd90c97e2d15fac43a66dc1209b4aaec969d93436ff" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-bytestring-jvm" version="0.8.2">
- <artifact name="kotlinx-io-bytestring-jvm-0.8.2.jar">
- <sha256 value="3da805e9da2ff3cb119f744dcd11de6a18e32a5b933518f17418ba5795cfa775" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-io-bytestring-jvm-0.8.2.module">
- <sha256 value="ccbc00c66f44c11d36e4b2c8de18a6f2014ae34f55daf21aadb4695ee079aa3b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-core" version="0.6.0">
- <artifact name="kotlinx-io-core-0.6.0.module">
- <sha256 value="1485fb6a58f24169d1af73c414302250ac78bb46b1a43e02b1ae2120b2a124f0" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-core" version="0.7.0">
- <artifact name="kotlinx-io-core-0.7.0.module">
- <sha256 value="81329763eb19aae3b738671bec316b90448491c3bf5278f6e10ea4c70292e224" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-core" version="0.8.2">
- <artifact name="kotlinx-io-core-0.8.2.module">
- <sha256 value="e47130d22deb99561c8e831af7aa3814fd198e330a0a6d116c52153768fda1c1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-core-jvm" version="0.6.0">
- <artifact name="kotlinx-io-core-jvm-0.6.0.module">
- <sha256 value="b59b978c2c44249a674641a694e35a2acecba812da87d365a5167342a8ca5347" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-core-jvm" version="0.7.0">
- <artifact name="kotlinx-io-core-jvm-0.7.0.jar">
- <sha256 value="6ededc9be4d878aea80c7dd609f91bfc47fcd3d36cc91fd0f3f328fbd6656c8f" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-io-core-jvm-0.7.0.module">
- <sha256 value="7430eca689685a8ad7566d8c808214a72950b1d6f036341df8c4d829a87706c8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-io-core-jvm" version="0.8.2">
- <artifact name="kotlinx-io-core-jvm-0.8.2.jar">
- <sha256 value="610770cc855edf1c57d9fcd7c69fd040af57adaf8834505f91805de680783d13" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-io-core-jvm-0.8.2.module">
- <sha256 value="0b03c2bf7c2c798ea76a3ef77ff80f39854d385841b1e7d1fe36c5c50a515ddd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.10.0">
- <artifact name="kotlinx-serialization-core-1.10.0.module">
- <sha256 value="a492719bc405f504e0d848f34e941f2f946f827b478736b25ba9c69708d9c9aa" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.4.1">
- <artifact name="kotlinx-serialization-core-1.4.1.module">
- <sha256 value="60e581c397ddb9461ec1f1dee5bbb4a23bb7ec7d09b296024196220022aa7090" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.7.3">
- <artifact name="kotlinx-serialization-core-1.7.3.module">
- <sha256 value="39d09a6e02df2b32558440a64c628f9c605fae8c4f6090321798334c82177e64" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.9.0">
- <artifact name="kotlinx-serialization-core-1.9.0.module">
- <sha256 value="8cd118130bf220802029e239974a33d272f4d023a5610f557ece6b0f8995f89f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.10.0">
- <artifact name="kotlinx-serialization-core-jvm-1.10.0.jar">
- <sha256 value="14d6f27ce28f61ebc4a516d562f911b7bc01cfbe5397fb884c45ea0db044c635" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-core-jvm-1.10.0.module">
- <sha256 value="eed54fb2b614ad957c08fee20de65e00ad5d56cea390e44ba60a2b854281b60c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.4.1">
- <artifact name="kotlinx-serialization-core-jvm-1.4.1.jar">
- <sha256 value="eba7f1c854296e4ce1418fb01360f8f10c5683e7c45aa3472018417a067636f3" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-core-jvm-1.4.1.module">
- <sha256 value="73bc94bdd5fc86621509a6715c3fe344904ee7db5806a0c61792ce2356089ee9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.7.3">
- <artifact name="kotlinx-serialization-core-jvm-1.7.3.jar">
- <sha256 value="f0adde45864144475385cf4aa7e0b7feb27f61fcf9472665ed98cc971b06b1eb" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-core-jvm-1.7.3.module">
- <sha256 value="73bb4c02793f87c29ef64bea4ba0258076f4d4c963fcda633d1248ef24b4b4ef" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.9.0">
- <artifact name="kotlinx-serialization-core-jvm-1.9.0.jar">
- <sha256 value="1f0afa172110e45a7231ef1b44ae8fd84c1ebaff96f3fc3ad68ef8c48120b59c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-core-jvm-1.9.0.module">
- <sha256 value="70c87e316192ab7729aa6399220290f7c8d9fdd4d9342dc9f9c0e42856ab346d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.10.0">
- <artifact name="kotlinx-serialization-json-1.10.0.module">
- <sha256 value="c9f35eb8620f2d3899a058285c417735c8956eed2b1853beda3ac13c7782b8c7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.4.1">
- <artifact name="kotlinx-serialization-json-1.4.1.module">
- <sha256 value="e9922300aff663e55ecef7d3fca305cb60a14755b1f980d94039e3c1cab645cc" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.7.3">
- <artifact name="kotlinx-serialization-json-1.7.3.module">
- <sha256 value="1cf0228a3588731d6baf3bcbbdb08a322501f70420d50e292ab501e55d8ccf4f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.9.0">
- <artifact name="kotlinx-serialization-json-1.9.0.module">
- <sha256 value="4fc13ec412b7b9a213a17dfdaa336457801be16fc165ad86b0b7314fd096e70c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-io" version="1.9.0">
- <artifact name="kotlinx-serialization-json-io-1.9.0.module">
- <sha256 value="bdc55ddadd9b01168521a9c193e28392418b39d64a6a555d0dbc35eb726996d9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-io-jvm" version="1.9.0">
- <artifact name="kotlinx-serialization-json-io-jvm-1.9.0.jar">
- <sha256 value="98abb132b03e11b80318d45350ec9ebbb5453d26505e81331bf2eea7143b6fbe" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-json-io-jvm-1.9.0.module">
- <sha256 value="525ca58efed1d6e98fcaaa54d525511190ed17bb8e5673f84d28999f08bc65b7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.10.0">
- <artifact name="kotlinx-serialization-json-jvm-1.10.0.jar">
- <sha256 value="af1e3e1e8ee3176468e1ec729df853b2066071de94a84c412ad9fa135cb37f3a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-json-jvm-1.10.0.module">
- <sha256 value="a5fe461c841a58b0ca59969417c65a59ef70587cc9c38783de8c78b0a3f950c8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.4.1">
- <artifact name="kotlinx-serialization-json-jvm-1.4.1.jar">
- <sha256 value="af604c46737121d4225fdb60ef0e17766a3c94b7c1c9ef76b4e3a5c7733d557e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-json-jvm-1.4.1.module">
- <sha256 value="c8fbfde4b5ee1e41a69175165e839991d1501665a7590e23162326501ac6122c" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.7.3">
- <artifact name="kotlinx-serialization-json-jvm-1.7.3.jar">
- <sha256 value="b1e9138499ed8d20375edda3f2b1c95f3103a258eff6af9edc5ea07100f2b29c" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-json-jvm-1.7.3.module">
- <sha256 value="0ff70e2131f2a6575822f7611c05e283c4ae08173303f410494cb41289bd3ef6" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.9.0">
- <artifact name="kotlinx-serialization-json-jvm-1.9.0.jar">
- <sha256 value="d94cc34cae39246a1af74fda63f9c4812ce12216ef641d5fa3bbbb539a6922d8" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="kotlinx-serialization-json-jvm-1.9.0.module">
- <sha256 value="bbadf8c76bab3fcd88fce45b3bbb63dfb1487f38021e1bdd83bfb9310ef7e69a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.skiko" name="skiko" version="0.9.4.2">
- <artifact name="skiko-0.9.4.2.module">
- <sha256 value="ea309af9fbccef0b12b557ad105f4655783112162030bbf05e461873bf523d27" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jetbrains.skiko" name="skiko-awt" version="0.9.4.2">
- <artifact name="skiko-awt-0.9.4.2.jar">
- <sha256 value="7d0c61ad7429d2f9c16da18cb408b93c83a23bd884e7b25d20225c123b14590b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="skiko-awt-0.9.4.2.module">
- <sha256 value="40bb5dd6ca516706c5785e8558dce8b99aae66dfa33aa5b74ab82d25da45e903" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jspecify" name="jspecify" version="1.0.0">
- <artifact name="jspecify-1.0.0.jar">
- <sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="jspecify-1.0.0.module">
- <sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.10.2">
- <artifact name="junit-bom-5.10.2.module">
- <sha256 value="de23b114b3e4119a8fe6eb17bed5a3852816698bace67071579d6d927ebb080a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.11.4">
- <artifact name="junit-bom-5.11.4.module">
- <sha256 value="a9a4f27be94e99b9d570162d246a80f686d277d5d31aeb5481047cf51daf46e4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.13.0">
- <artifact name="junit-bom-5.13.0.module">
- <sha256 value="bf75304168028b4a0975ef8654802b155aeae47e694f689425f4c5a9f1e3e885" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.13.1">
- <artifact name="junit-bom-5.13.1.module">
- <sha256 value="33c07ab9724790a6e5859ba07d69117ac530439724545a81c4179e3272c75de8" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.13.4">
- <artifact name="junit-bom-5.13.4.module">
- <sha256 value="e959288fde1b1b050d9bc082fc786789128da5d2853091468fca504104bdf400" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.14.0">
- <artifact name="junit-bom-5.14.0.module">
- <sha256 value="7ad3ddb2d74e6a77d65ae89aca45d468c97bf9915b6bc52f449d675e4e6f9b35" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="5.9.2">
- <artifact name="junit-bom-5.9.2.module">
- <sha256 value="ab137ba5a8e32c9b066bf9126a1c76dd5614b724ba5c0b02549772b5e9f4cf1f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit" name="junit-bom" version="6.0.1">
- <artifact name="junit-bom-6.0.1.module">
- <sha256 value="c48d98f5edcfd9c55e79facbba0101f7c1ba08863489be84a9162b99a186d1c2" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.jupiter" name="junit-jupiter-api" version="5.13.4">
- <artifact name="junit-jupiter-api-5.13.4.jar">
- <sha256 value="d1bb81abfd9e03418306b4e6a3390c8db52c58372e749c2980ac29f0c08278f1" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-jupiter-api-5.13.4.module">
- <sha256 value="fe464d37f5c810a805ff319198165cac33c2558e2261021d8f312a825a48671f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.jupiter" name="junit-jupiter-api" version="6.0.1">
- <artifact name="junit-jupiter-api-6.0.1.jar">
- <sha256 value="a3ca8c7e567436093e4a6703d5d4aac02dbea36106ea32fd1367b56de20d4e02" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-jupiter-api-6.0.1.module">
- <sha256 value="ccad789816a7eb048843469dfbda641e89e1849e63b82492f24bc60b3050bb9b" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.jupiter" name="junit-jupiter-engine" version="5.13.0">
- <artifact name="junit-jupiter-engine-5.13.0.module">
- <sha256 value="75f68f436fe674a987f8d8fc1263fa163819f5187a6fc398c9638ca73226449f" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.jupiter" name="junit-jupiter-engine" version="5.13.4">
- <artifact name="junit-jupiter-engine-5.13.4.jar">
- <sha256 value="027404a92fe618b72465792a257951495c503a7d5751e2791e0f51c87f67f5bc" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-jupiter-engine-5.13.4.module">
- <sha256 value="ceeee6d0034a738135bd9f3820cfe089c6569163c623ba8e3e9b44f7208fd21a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.jupiter" name="junit-jupiter-params" version="5.13.4">
- <artifact name="junit-jupiter-params-5.13.4.jar">
- <sha256 value="3a8c6365716dbb698c0d49a05456c1e1ad05c406613c550f9dd50037872efc41" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-jupiter-params-5.13.4.module">
- <sha256 value="fc366fbe607999afc8cf02b9dca95d1e02a06b0ce872a45605a9d968c246f4b4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-commons" version="1.13.1">
- <artifact name="junit-platform-commons-1.13.1.jar">
- <sha256 value="883d4f23d774976e7835e0695340963ed01f6c7796321e227a932ee36135887e" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-commons-1.13.1.module">
- <sha256 value="36446c867988ea70ddc62ea1ff405b1997919f903c799ab5006328a2c8c3b320" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-commons" version="1.13.4">
- <artifact name="junit-platform-commons-1.13.4.jar">
- <sha256 value="1c25ca641ebaae44ff3ad21ca1b2ef68d0dd84bfeb07c4805ba7840899b77408" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-commons-1.13.4.module">
- <sha256 value="1a7a2de7c798995fb97b244d6ef9e99c3a5799b57a0fbacd68496ba7ee8159d7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-commons" version="6.0.1">
- <artifact name="junit-platform-commons-6.0.1.jar">
- <sha256 value="f8853f45c10f380ddb157cf42abba9b073474f05cc40335b585055f85538dcad" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-commons-6.0.1.module">
- <sha256 value="992f2e365dd8db88be602f9e5c5c08f81fd44b0c5b8fa1cf1734f36fc7e1f1fd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-engine" version="1.13.1">
- <artifact name="junit-platform-engine-1.13.1.module">
- <sha256 value="77907381f1294bdd2be205e16e9c62471fbdfc8c0b43ca9fe6d1b8cbbc04ec75" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-engine" version="1.13.4">
- <artifact name="junit-platform-engine-1.13.4.jar">
- <sha256 value="390c5f77b84283a64b644f88251b397e0b0debb80bdcc50f899881aecff43a5a" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-engine-1.13.4.module">
- <sha256 value="35e4fd68ebf314e62660148936436b39ae105d355beaac1aa54eb91c2066ca77" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-engine" version="6.0.1">
- <artifact name="junit-platform-engine-6.0.1.jar">
- <sha256 value="f49577073a7ae184c718d9b43ae0d8edcb8abfc5ac738735ee3339d4652e92bf" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-engine-6.0.1.module">
- <sha256 value="d9a5deab9a6e5215bbf40c39ffeda90b065774f8cd018e57bb2a1dece23454a4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-launcher" version="1.13.1">
- <artifact name="junit-platform-launcher-1.13.1.module">
- <sha256 value="0cef46cc4c888c08383f8d14327f56ebb6dd72ccf845dde10100670e3a94ecdd" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-launcher" version="1.13.4">
- <artifact name="junit-platform-launcher-1.13.4.jar">
- <sha256 value="0b0beaeb6880a31149641d2d848b863712885469670c12099586d7f798522564" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-launcher-1.13.4.module">
- <sha256 value="115f77455740e0c3c5398bcdd841c8aa699c2d8002b1100f2ae7a643d9405928" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-launcher" version="6.0.1">
- <artifact name="junit-platform-launcher-6.0.1.jar">
- <sha256 value="ee758ddb06fab1fd1a890c0bae4aacf8dc004c4f367e138dbffcb113cd09ebac" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-launcher-6.0.1.module">
- <sha256 value="4063e35d2044f71ada89251faed141f0a5af9cec26d6e3b7ce723cf3d573dbd7" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-runner" version="1.13.0">
- <artifact name="junit-platform-runner-1.13.0.module">
- <sha256 value="ea3dd7b6b9dbee0944cd5421b7eb0ef767a6e80e977bb0b562f4c09ffedcaf16" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-runner" version="1.13.4">
- <artifact name="junit-platform-runner-1.13.4.jar">
- <sha256 value="2126835a5a08001359843c66865da582aa35a56b0cf8edf2cc8d1ea429cbe9aa" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-runner-1.13.4.module">
- <sha256 value="a68cf23d85151278150ed3cb2fef66e269353b36b6e9995f567ab0a7b9c88f28" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-suite-api" version="1.13.4">
- <artifact name="junit-platform-suite-api-1.13.4.jar">
- <sha256 value="9a05bf77e128371f5b3e25ffc89f7af467a9f68dd365fdfced469ebcf533abc9" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-suite-api-1.13.4.module">
- <sha256 value="39fb91920307bc5c7a1630073a95760a2614458260880d293b9176c1cd089884" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-suite-api" version="6.0.1">
- <artifact name="junit-platform-suite-api-6.0.1.jar">
- <sha256 value="d79605e890a0b63c628cd7157451edc0ff94edaa8f527dfe53efb9b0f03002b6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-suite-api-6.0.1.module">
- <sha256 value="23763de1b0dab303417ab87e754b14db38744d25e3a26ef3b2712541f72c5b15" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.junit.platform" name="junit-platform-suite-commons" version="1.13.4">
- <artifact name="junit-platform-suite-commons-1.13.4.jar">
- <sha256 value="e7dacfcfa3bc692c0a7a413cefd5f51ae420415a14d39091bdf88aebfdba70b6" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="junit-platform-suite-commons-1.13.4.module">
- <sha256 value="590b4ee77d45fb42dfd0619c7021a77679206d0489f426e7f00b9ace59aabe1d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.jvnet.staxex" name="stax-ex" version="1.8.1">
- <artifact name="stax-ex-1.8.1.jar">
- <sha256 value="20522549056e9e50aa35ef0b445a2e47a53d06be0b0a9467d704e2483ffb049a" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.objenesis" name="objenesis" version="3.4">
- <artifact name="objenesis-3.4.jar">
- <sha256 value="95488102feaf2e2858adf6b299353677dac6c15294006f8ed1c5556f8e3cd251" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.opentest4j" name="opentest4j" version="1.3.0">
- <artifact name="opentest4j-1.3.0.jar">
- <sha256 value="48e2df636cab6563ced64dcdff8abb2355627cb236ef0bf37598682ddf742f1b" origin="Generated by Gradle"/>
- </artifact>
- <artifact name="opentest4j-1.3.0.module">
- <sha256 value="48bf1d6c8b5dc94f74652bd17900f654deb714350248cf5e8fca27b9090c8e0d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm" version="9.7">
- <artifact name="asm-9.7.jar">
- <sha256 value="adf46d5e34940bdf148ecdd26a9ee8eea94496a72034ff7141066b3eea5c4e9d" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm" version="9.8">
- <artifact name="asm-9.8.jar">
- <sha256 value="876eab6a83daecad5ca67eb9fcabb063c97b5aeb8cf1fca7a989ecde17522051" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm-analysis" version="9.8">
- <artifact name="asm-analysis-9.8.jar">
- <sha256 value="e640732fbcd3c6271925a504f125e38384688f4dfbbf92c8622dfcee0d09edb9" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm-commons" version="9.8">
- <artifact name="asm-commons-9.8.jar">
- <sha256 value="3301a1c1cb4c59fcc5292648dac1d7c5aed4c0f067dfbe88873b8cdfe77404f4" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm-tree" version="9.7">
- <artifact name="asm-tree-9.7.jar">
- <sha256 value="62f4b3bc436045c1acb5c3ba2d8ec556ec3369093d7f5d06c747eb04b56d52b1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm-tree" version="9.8">
- <artifact name="asm-tree-9.8.jar">
- <sha256 value="14b7880cb7c85eed101e2710432fc3ffb83275532a6a894dc4c4095d49ad59f1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.ow2.asm" name="asm-util" version="9.8">
- <artifact name="asm-util-9.8.jar">
- <sha256 value="8ba0460ecb28fd0e2980e5f3ef3433a513a457bc077f81a53bdc75b587a08d15" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.slf4j" name="slf4j-api" version="1.7.30">
- <artifact name="slf4j-api-1.7.30.jar">
- <sha256 value="cdba07964d1bb40a0761485c6b1e8c2f8fd9eb1d19c53928ac0d7f9510105c57" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.slf4j" name="slf4j-api" version="2.0.17">
- <artifact name="slf4j-api-2.0.17.jar">
- <sha256 value="7b751d952061954d5abfed7181c1f645d336091b679891591d63329c622eb832" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.snakeyaml" name="snakeyaml-engine" version="2.7">
- <artifact name="snakeyaml-engine-2.7.jar">
- <sha256 value="4053f878c171692aab8782f53a3974f43e55e2b6ed12c3682b36a46968c5ded1" origin="Generated by Gradle"/>
- </artifact>
- </component>
- <component group="org.tensorflow" name="tensorflow-lite-metadata" version="0.2.0">
- <artifact name="tensorflow-lite-metadata-0.2.0.jar">
- <sha256 value="e9f18b8a41f017e9033cb0ed85c8a2ba2307292cdfe25eae365923e7a31d2a70" origin="Generated by Gradle"/>
- </artifact>
- </component>
- </components>
-</verification-metadata>
diff --git a/android/lib/daemon-grpc/build.gradle.kts b/android/lib/daemon-grpc/build.gradle.kts
index 587d4300c6..63af19a2c2 100644
--- a/android/lib/daemon-grpc/build.gradle.kts
+++ b/android/lib/daemon-grpc/build.gradle.kts
@@ -1,55 +1,31 @@
-import com.google.protobuf.gradle.proto
-
plugins {
alias(libs.plugins.mullvad.android.library)
alias(libs.plugins.kotlin.parcelize)
- alias(libs.plugins.protobuf.core)
alias(libs.plugins.junit5.android)
+ alias(libs.plugins.wire)
}
android {
namespace = "net.mullvad.mullvadvpn.lib.daemon.grpc"
- sourceSets {
+ /*sourceSets {
getByName("main") {
proto { srcDir("${rootProject.projectDir}/../mullvad-management-interface/proto") }
}
- }
+ }*/
kotlin { compilerOptions { freeCompilerArgs.add("-XXLanguage:+WhenGuards") } }
}
-protobuf {
- protoc { artifact = libs.plugins.protobuf.protoc.get().toString() }
- plugins {
- val grpcPluginPath = System.getenv("PROTOC_GEN_GRPC_JAVA_PLUGIN")
- create("java") {
- if (grpcPluginPath != null) {
- path = grpcPluginPath
- } else {
- artifact = libs.plugins.grpc.protoc.gen.grpc.java.get().toString()
- }
- }
- create("grpc") {
- if (grpcPluginPath != null) {
- path = grpcPluginPath
- } else {
- artifact = libs.plugins.grpc.protoc.gen.grpc.java.get().toString()
- }
- }
- create("grpckt") {
- artifact = libs.plugins.grpc.protoc.gen.grpc.kotlin.get().toString() + ":jdk8@jar"
- }
- }
- generateProtoTasks {
- all().forEach {
- it.plugins {
- create("java") { option("lite") }
- create("grpc") { option("lite") }
- create("grpckt") { option("lite") }
- }
- it.builtins { create("kotlin") { option("lite") } }
- }
+wire {
+ sourcePath { srcDir("${rootProject.projectDir}/../mullvad-management-interface/proto") }
+
+ kotlin {
+ android = true
+ rpcRole = "client"
+ rpcCallStyle = "blocking"
+ explicitStreamingCalls = true
+ emitProtoReader32 = true
}
}
@@ -63,12 +39,13 @@ dependencies {
implementation(libs.kotlinx.coroutines)
implementation(libs.kotlinx.coroutines.android)
- implementation(libs.grpc.okhttp)
- implementation(libs.grpc.android)
- implementation(libs.grpc.stub)
- implementation(libs.grpc.kotlin.stub)
- implementation(libs.grpc.protobuf.lite)
- implementation(libs.protobuf.kotlin.lite)
+ implementation(libs.wire.runtime)
+ implementation(libs.wire.grpc)
+ implementation(libs.junixsocket.core)
+ // implementation(libs.junixsocket.native.android)
+ implementation("com.kohlschutter.junixsocket:junixsocket-native-android:2.10.1@aar")
+ implementation(libs.okhttp.logging.interceptor)
+ implementation(libs.jnr.unixsocket)
implementation(libs.arrow)
implementation(libs.arrow.optics)
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
index 00a8ba3fc9..0061be8f25 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
@@ -1,6 +1,5 @@
package net.mullvad.mullvadvpn.lib.daemon.grpc
-import android.net.LocalSocketAddress
import arrow.core.Either
import arrow.core.raise.either
import arrow.core.raise.ensure
@@ -8,20 +7,17 @@ import arrow.optics.copy
import arrow.optics.dsl.index
import arrow.optics.typeclasses.Index
import co.touchlab.kermit.Logger
-import com.google.protobuf.Empty
-import io.grpc.ConnectivityState
-import io.grpc.Status
-import io.grpc.StatusException
-import io.grpc.android.UdsChannelBuilder
+import com.squareup.wire.GrpcClient
import java.io.File
import java.net.InetAddress
import java.util.Map.entry
+import java.util.concurrent.TimeUnit
import java.util.logging.Level
import java.util.logging.Logger as JavaLogger
+import kotlin.getValue
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
-import kotlinx.coroutines.asExecutor
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.cancel
@@ -30,19 +26,24 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.filterNotNull
-import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-import mullvad_daemon.management_interface.ManagementInterface
-import mullvad_daemon.management_interface.ManagementServiceGrpcKt
+import mullvad_daemon.management_interface.BoolValue
+import mullvad_daemon.management_interface.Device
+import mullvad_daemon.management_interface.DeviceRemoval
+import mullvad_daemon.management_interface.ManagementServiceClient
+import mullvad_daemon.management_interface.NewCustomList
+import mullvad_daemon.management_interface.StringValue
+import mullvad_daemon.management_interface.UInt32Value
import net.mullvad.mullvadvpn.lib.daemon.grpc.mapper.fromDomain
import net.mullvad.mullvadvpn.lib.daemon.grpc.mapper.toDomain
import net.mullvad.mullvadvpn.lib.daemon.grpc.util.AndroidLoggingHandler
-import net.mullvad.mullvadvpn.lib.daemon.grpc.util.LogInterceptor
+import net.mullvad.mullvadvpn.lib.daemon.grpc.util.UnixDomainSocketFactory
import net.mullvad.mullvadvpn.lib.daemon.grpc.util.connectivityFlow
import net.mullvad.mullvadvpn.lib.model.AccountData
import net.mullvad.mullvadvpn.lib.model.AccountNumber
@@ -66,7 +67,7 @@ import net.mullvad.mullvadvpn.lib.model.CustomListName
import net.mullvad.mullvadvpn.lib.model.DefaultDnsOptions
import net.mullvad.mullvadvpn.lib.model.DeleteCustomListError
import net.mullvad.mullvadvpn.lib.model.DeleteDeviceError
-import net.mullvad.mullvadvpn.lib.model.Device
+import net.mullvad.mullvadvpn.lib.model.Device as ModelDevice
import net.mullvad.mullvadvpn.lib.model.DeviceId
import net.mullvad.mullvadvpn.lib.model.DeviceState as ModelDeviceState
import net.mullvad.mullvadvpn.lib.model.DeviceUpdateError
@@ -144,6 +145,10 @@ import net.mullvad.mullvadvpn.lib.model.state
import net.mullvad.mullvadvpn.lib.model.udp2tcp
import net.mullvad.mullvadvpn.lib.model.wireguardConstraints
import net.mullvad.mullvadvpn.lib.model.wireguardPort
+import okhttp3.OkHttpClient
+import okhttp3.Protocol
+import okhttp3.logging.HttpLoggingInterceptor
+import org.newsclub.net.unix.AFUNIXSocketAddress
@Suppress("TooManyFunctions", "LargeClass")
class ManagementService(
@@ -154,33 +159,21 @@ class ManagementService(
private var job: Job? = null
// We expect daemon to create the rpc socket file on the path provided on initialisation
- @Suppress("DEPRECATION")
- private val channel =
- UdsChannelBuilder.forPath(
- rpcSocketFile.absolutePath,
- LocalSocketAddress.Namespace.FILESYSTEM,
- )
- // Workaround for handling WiFi with proxy
- // https://github.com/grpc/grpc-java/issues/11922
- .proxyDetector { null }
- .build()
+ @Suppress("DEPRECATION") private val channel = socketClient(rpcSocketFile)
val connectionState: StateFlow<GrpcConnectivityState> =
channel
.connectivityFlow()
- .map(ConnectivityState::toDomain)
.onEach { Logger.i("ManagementService connection state: $it") }
- .stateIn(scope, SharingStarted.Eagerly, channel.getState(false).toDomain())
+ .stateIn(scope, SharingStarted.Eagerly, GrpcConnectivityState.Ready)
- private val grpc by lazy {
- ManagementServiceGrpcKt.ManagementServiceCoroutineStub(channel)
- .withExecutor(Dispatchers.IO.asExecutor())
- .let {
- if (extensiveLogging) {
- it.withInterceptors(LogInterceptor())
- } else it
- }
- .withWaitForReady()
+ private val grpc: ManagementServiceClient by lazy {
+ GrpcClient.Builder()
+ .client(channel)
+ .baseUrl("http://localhost/")
+ .minMessageToCompress(Long.MAX_VALUE)
+ .build()
+ .create(ManagementServiceClient::class)
}
private val _mutableDeviceState = MutableStateFlow<ModelDeviceState?>(null)
@@ -231,33 +224,47 @@ class ManagementService(
job = null
}
- fun enterIdle() = channel.enterIdle()
+ fun enterIdle() = { /*NO-OP*/ }
+ @Suppress("DEPRECATION")
private suspend fun subscribeEvents() =
withContext(Dispatchers.IO) {
launch {
- grpc.eventsListen(Empty.getDefaultInstance()).collect { event ->
+ val channel = grpc.EventsListen().executeIn(this, Unit)
+ // channels.first.send(Unit)
+ /*launch {
+ while(true) {
+ getInitialServiceState()
+ delay(100)
+ }
+ }*/
+ /*launch {
+ val c = grpc.EventsListen().executeBlocking(request = Unit)
+ Logger.d("LOLZ R ${c.read()}")
+ }*/
+ // launch { Logger.d("LOLZ ${channel.receive()}") }
+ channel.receiveAsFlow().collect { event ->
if (extensiveLogging) {
Logger.v("Event: $event")
}
@Suppress("WHEN_ENUM_CAN_BE_NULL_IN_JAVA")
- when (event.eventCase) {
- ManagementInterface.DaemonEvent.EventCase.TUNNEL_STATE ->
- _mutableTunnelState.update { event.tunnelState.toDomain() }
- ManagementInterface.DaemonEvent.EventCase.SETTINGS ->
+ when {
+ event.tunnel_state != null ->
+ _mutableTunnelState.update { event.tunnel_state.toDomain() }
+ event.settings != null ->
_mutableSettings.update { event.settings.toDomain() }
- ManagementInterface.DaemonEvent.EventCase.RELAY_LIST ->
- _mutableRelayList.update { event.relayList.toDomain() }
- ManagementInterface.DaemonEvent.EventCase.VERSION_INFO ->
- _mutableVersionInfo.update { event.versionInfo.toDomain() }
- ManagementInterface.DaemonEvent.EventCase.DEVICE ->
- _mutableDeviceState.update { event.device.newState.toDomain() }
- ManagementInterface.DaemonEvent.EventCase.NEW_ACCESS_METHOD -> {
- _mutableCurrentAccessMethod.update { event.newAccessMethod.toDomain() }
+ event.relay_list != null ->
+ _mutableRelayList.update { event.relay_list.toDomain() }
+ event.version_info != null ->
+ _mutableVersionInfo.update { event.version_info.toDomain() }
+ event.device != null && event.device.new_state != null ->
+ _mutableDeviceState.update { event.device.new_state.toDomain() }
+ event.new_access_method != null -> {
+ _mutableCurrentAccessMethod.update {
+ event.new_access_method.toDomain()
+ }
}
- ManagementInterface.DaemonEvent.EventCase.REMOVE_DEVICE -> {}
- ManagementInterface.DaemonEvent.EventCase.LEAK_INFO -> {}
- ManagementInterface.DaemonEvent.EventCase.EVENT_NOT_SET -> {}
+ event.remove_device != null -> {}
}
}
}
@@ -265,20 +272,19 @@ class ManagementService(
}
suspend fun getDevice(): Either<GetDeviceStateError, ModelDeviceState> =
- Either.catch { grpc.getDevice(Empty.getDefaultInstance()) }
+ Either.catch { grpc.GetDevice().execute(Unit) }
.map { it.toDomain() }
.onLeft { Logger.e("Get device error") }
.mapLeft { GetDeviceStateError.Unknown(it) }
suspend fun updateDevice(): Either<DeviceUpdateError, Unit> =
- Either.catch { grpc.updateDevice(Empty.getDefaultInstance()) }
- .mapEmpty()
+ Either.catch { grpc.UpdateDevice().execute(Unit) }
.onLeft { Logger.e("Update device error") }
.mapLeft { DeviceUpdateError(it) }
- suspend fun getDeviceList(token: AccountNumber): Either<GetDeviceListError, List<Device>> =
- Either.catch { grpc.listDevices(token.value.toStringValue()) }
- .map { it.devicesList.map(ManagementInterface.Device::toDomain) }
+ suspend fun getDeviceList(token: AccountNumber): Either<GetDeviceListError, List<ModelDevice>> =
+ Either.catch { grpc.ListDevices().execute(token.value.toStringValue()) }
+ .map { it.devices.map(Device::toDomain) }
.onLeft { Logger.e("Get device list error") }
.mapLeft { GetDeviceListError.Unknown(it) }
@@ -287,64 +293,63 @@ class ManagementService(
deviceId: DeviceId,
): Either<DeleteDeviceError, Unit> =
Either.catch {
- grpc.removeDevice(
- ManagementInterface.DeviceRemoval.newBuilder()
- .setAccountNumber(token.value)
- .setDeviceId(deviceId.value.toString())
- .build()
- )
+ grpc
+ .RemoveDevice()
+ .execute(
+ DeviceRemoval(
+ account_number = token.value,
+ device_id = deviceId.value.toString(),
+ )
+ )
}
- .mapEmpty()
.onLeft { Logger.e("Remove device error") }
.mapLeft { DeleteDeviceError.Unknown(it) }
suspend fun connect(): Either<ConnectError, Boolean> =
- Either.catch { grpc.connectTunnel(Empty.getDefaultInstance()).value }
+ Either.catch { grpc.ConnectTunnel().execute(Unit).toBool() }
.onLeft { Logger.e("Connect error") }
.mapLeft(ConnectError::Unknown)
suspend fun disconnect(): Either<ConnectError, Boolean> =
- Either.catch { grpc.disconnectTunnel(Empty.getDefaultInstance()).value }
+ Either.catch { grpc.DisconnectTunnel().execute(Unit).toBool() }
.onLeft { Logger.e("Disconnect error") }
.mapLeft(ConnectError::Unknown)
suspend fun reconnect(): Either<ConnectError, Boolean> =
- Either.catch { grpc.reconnectTunnel(Empty.getDefaultInstance()).value }
+ Either.catch { grpc.ReconnectTunnel().execute(Unit).toBool() }
.onLeft { Logger.e("Reconnect error") }
.mapLeft(ConnectError::Unknown)
private suspend fun getTunnelState(): ModelTunnelState =
- grpc.getTunnelState(Empty.getDefaultInstance()).toDomain()
+ grpc.GetTunnelState().execute(Unit).toDomain()
- private suspend fun getSettings(): ModelSettings =
- grpc.getSettings(Empty.getDefaultInstance()).toDomain()
+ private suspend fun getSettings(): ModelSettings = grpc.GetSettings().execute(Unit).toDomain()
private suspend fun getDeviceState(): ModelDeviceState =
- grpc.getDevice(Empty.getDefaultInstance()).toDomain()
+ grpc.GetDevice().execute(Unit).toDomain()
private suspend fun getRelayList(): ModelRelayList =
- grpc.getRelayLocations(Empty.getDefaultInstance()).toDomain()
+ grpc.GetRelayLocations().execute(Unit).toDomain()
// On release build this will return error until services have published the new beta, daemon
// will get 404 until the api have been published, thus we need to ignore error downstream.
private suspend fun getVersionInfo(): Either<GetVersionInfoError, ModelAppVersionInfo> =
- Either.catch { grpc.getVersionInfo(Empty.getDefaultInstance()).toDomain() }
+ Either.catch { grpc.GetVersionInfo().execute(Unit).toDomain() }
.onLeft { Logger.e("Get version info error") }
.mapLeft { GetVersionInfoError.Unknown(it) }
private suspend fun getCurrentApiAccessMethod(): ApiAccessMethodSetting =
- grpc.getCurrentApiAccessMethod(Empty.getDefaultInstance()).toDomain()
+ grpc.GetCurrentApiAccessMethod().execute(Unit).toDomain()
suspend fun logoutAccount(): Either<LogoutAccountError, Unit> =
- Either.catch { grpc.logoutAccount(Empty.getDefaultInstance()) }
+ Either.catch { grpc.LogoutAccount().execute(Unit) }
.onLeft { Logger.e("Logout account error") }
.mapLeft(LogoutAccountError::Unknown)
- .mapEmpty()
suspend fun loginAccount(accountNumber: AccountNumber): Either<LoginAccountError, Unit> =
- Either.catch { grpc.loginAccount(accountNumber.value.toStringValue()) }
+ Either.catch { grpc.LoginAccount().execute(accountNumber.value.toStringValue()) }
.mapLeftStatus {
- when (it.status.code) {
+ /*when (it.status.code) {
Status.Code.UNAUTHENTICATED -> LoginAccountError.InvalidAccount
Status.Code.RESOURCE_EXHAUSTED if it.status.isTooManyRequests() ->
LoginAccountError.TooManyAttempts
@@ -357,21 +362,20 @@ class ManagementService(
Logger.e("Unknown login account error")
LoginAccountError.Unknown(it)
}
- }
+ }*/
+ LoginAccountError.InvalidAccount
}
- .mapEmpty()
suspend fun clearAccountHistory(): Either<ClearAccountHistoryError, Unit> =
- Either.catch { grpc.clearAccountHistory(Empty.getDefaultInstance()) }
+ Either.catch { grpc.ClearAccountHistory().execute(Unit) }
.onLeft { Logger.e("Clear account history error") }
.mapLeft(ClearAccountHistoryError::Unknown)
- .mapEmpty()
suspend fun getAccountHistory(): Either<GetAccountHistoryError, AccountNumber?> =
Either.catch {
- val history = grpc.getAccountHistory(Empty.getDefaultInstance())
- if (history.hasNumber()) {
- AccountNumber(history.number.value)
+ val history = grpc.GetAccountHistory().execute(Unit)
+ if (history.number != null) {
+ AccountNumber(history.number.value_)
} else {
null
}
@@ -396,26 +400,30 @@ class ManagementService(
accountNumber: AccountNumber
): Either<GetAccountDataError, AccountData> =
Either.catch {
- grpc.getAccountData(accountNumber.value.toStringValue()).toDomain(accountNumber)
+ grpc
+ .GetAccountData()
+ .execute(accountNumber.value.toStringValue())
+ .toDomain(accountNumber)
}
.onLeft { Logger.e("Get account data error") }
.mapLeft(GetAccountDataError::Unknown)
suspend fun createAccount(): Either<CreateAccountError, AccountNumber> =
Either.catch {
- val accountNumberStringValue = grpc.createNewAccount(Empty.getDefaultInstance())
- AccountNumber(accountNumberStringValue.value)
+ val accountNumberStringValue = grpc.CreateNewAccount().execute(Unit)
+ AccountNumber(accountNumberStringValue.value_)
}
.onLeft { Logger.e("Create account error") }
.mapLeftStatus {
- when (it.status.code) {
+ /*when (it.status.code) {
Status.Code.RESOURCE_EXHAUSTED -> CreateAccountError.TooManyAttempts
Status.Code.UNAVAILABLE -> CreateAccountError.ApiUnreachable
Status.Code.DEADLINE_EXCEEDED -> CreateAccountError.TimeOut
else -> {
CreateAccountError.Unknown(it)
}
- }
+ }*/
+ CreateAccountError.TooManyAttempts
}
suspend fun updateDnsContentBlockers(
@@ -425,27 +433,24 @@ class ManagementService(
val currentDnsOptions = getSettings().tunnelOptions.dnsOptions
val newDefaultDnsOptions = update(currentDnsOptions.defaultOptions)
val updated = DnsOptions.defaultOptions.set(currentDnsOptions, newDefaultDnsOptions)
- grpc.setDnsOptions(updated.fromDomain())
+ grpc.SetDnsOptions().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set dns state error") }
.mapLeft(SetDnsOptionsError::Unknown)
- .mapEmpty()
suspend fun setDnsOptions(dnsOptions: ModelDnsOptions): Either<SetDnsOptionsError, Unit> =
- Either.catch { grpc.setDnsOptions(dnsOptions.fromDomain()) }
+ Either.catch { grpc.SetDnsOptions().execute(dnsOptions.fromDomain()) }
.onLeft { Logger.e("Set dns options error") }
.mapLeft(SetDnsOptionsError::Unknown)
- .mapEmpty()
suspend fun setDnsState(dnsState: ModelDnsState): Either<SetDnsOptionsError, Unit> =
Either.catch {
val currentDnsOptions = getSettings().tunnelOptions.dnsOptions
val updated = DnsOptions.state.set(currentDnsOptions, dnsState)
- grpc.setDnsOptions(updated.fromDomain())
+ grpc.SetDnsOptions().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set dns state error") }
.mapLeft(SetDnsOptionsError::Unknown)
- .mapEmpty()
suspend fun setCustomDns(index: Int, address: InetAddress): Either<SetDnsOptionsError, Unit> =
Either.catch {
@@ -455,11 +460,10 @@ class ManagementService(
.index(Index.list(), index)
.set(currentDnsOptions, address)
- grpc.setDnsOptions(updatedDnsOptions.fromDomain())
+ grpc.SetDnsOptions().execute(updatedDnsOptions.fromDomain())
}
.onLeft { Logger.e("Set custom dns error") }
.mapLeft(SetDnsOptionsError::Unknown)
- .mapEmpty()
suspend fun addCustomDns(address: InetAddress): Either<SetDnsOptionsError, Int> =
Either.catch {
@@ -473,7 +477,7 @@ class ManagementService(
if (currentDnsOptions.customOptions.addresses.isEmpty()) DnsState.Custom
else currentDnsOptions.state
}
- grpc.setDnsOptions(updatedDnsOptions.fromDomain())
+ grpc.SetDnsOptions().execute(updatedDnsOptions.fromDomain())
updatedDnsOptions.customOptions.addresses.lastIndex
}
.onLeft { Logger.e("Add custom dns error") }
@@ -493,35 +497,27 @@ class ManagementService(
if (mutableAddresses.isEmpty()) DnsState.Default
else currentDnsOptions.state
}
- grpc.setDnsOptions(updatedDnsOptions.fromDomain())
+ grpc.SetDnsOptions().execute(updatedDnsOptions.fromDomain())
}
.onLeft { Logger.e("Delete custom dns error") }
.mapLeft(SetDnsOptionsError::Unknown)
- .mapEmpty()
suspend fun setWireguardMtu(value: Int): Either<SetWireguardMtuError, Unit> =
- Either.catch { grpc.setWireguardMtu(value.toUInt32Value()) }
+ Either.catch { grpc.SetWireguardMtu().execute(value.toUInt32Value()) }
.onLeft { Logger.e("Set wireguard mtu error") }
.mapLeft(SetWireguardMtuError::Unknown)
- .mapEmpty()
suspend fun resetWireguardMtu(): Either<SetWireguardMtuError, Unit> =
- Either.catch {
- grpc.setWireguardMtu(
- ManagementInterface.UInt32Value.newBuilder().clearValue().build()
- )
- }
+ Either.catch { grpc.SetWireguardMtu().execute(UInt32Value()) }
.onLeft { Logger.e("Reset wireguard mtu error") }
.mapLeft(SetWireguardMtuError::Unknown)
- .mapEmpty()
suspend fun setWireguardQuantumResistant(
value: ModelQuantumResistantState
): Either<SetWireguardQuantumResistantError, Unit> =
- Either.catch { grpc.setQuantumResistantTunnel(value.toDomain()) }
+ Either.catch { grpc.SetQuantumResistantTunnel().execute(value.fromDomain()) }
.onLeft { Logger.e("Set wireguard quantum resistant error") }
.mapLeft(SetWireguardQuantumResistantError::Unknown)
- .mapEmpty()
suspend fun setObfuscation(value: ObfuscationMode): Either<SetObfuscationOptionsError, Unit> =
Either.catch {
@@ -531,11 +527,10 @@ class ManagementService(
) {
value
}
- grpc.setObfuscationSettings(updatedObfuscationSettings.fromDomain())
+ grpc.SetObfuscationSettings().execute(updatedObfuscationSettings.fromDomain())
}
.onLeft { Logger.e("Set obfuscation error") }
.mapLeft(SetObfuscationOptionsError::Unknown)
- .mapEmpty()
suspend fun setWireguardObfuscationPort(
portConstraint: Constraint<Port>
@@ -545,11 +540,10 @@ class ManagementService(
ObfuscationSettings.wireguardPort.modify(getSettings().obfuscationSettings) {
portConstraint
}
- grpc.setObfuscationSettings(updatedSettings.fromDomain())
+ grpc.SetObfuscationSettings().execute(updatedSettings.fromDomain())
}
.onLeft { Logger.e("Set wireguard port error") }
.mapLeft(SetObfuscationOptionsError::Unknown)
- .mapEmpty()
suspend fun setUdp2TcpObfuscationPort(
portConstraint: Constraint<Port>
@@ -559,11 +553,10 @@ class ManagementService(
ObfuscationSettings.udp2tcp.modify(getSettings().obfuscationSettings) {
it.copy(port = portConstraint)
}
- grpc.setObfuscationSettings(updatedSettings.fromDomain())
+ grpc.SetObfuscationSettings().execute(updatedSettings.fromDomain())
}
.onLeft { Logger.e("Set obfuscation port error") }
.mapLeft(SetObfuscationOptionsError::Unknown)
- .mapEmpty()
suspend fun setShadowsocksObfuscationPort(
portConstraint: Constraint<Port>
@@ -573,26 +566,22 @@ class ManagementService(
ObfuscationSettings.shadowsocks.modify(getSettings().obfuscationSettings) {
it.copy(port = portConstraint)
}
- grpc.setObfuscationSettings(updatedSettings.fromDomain())
+ grpc.SetObfuscationSettings().execute(updatedSettings.fromDomain())
}
.mapLeft(SetObfuscationOptionsError::Unknown)
- .mapEmpty()
suspend fun setAllowLan(allow: Boolean): Either<SetAllowLanError, Unit> =
- Either.catch { grpc.setAllowLan(allow.toBoolValue()) }
+ Either.catch { grpc.SetAllowLan().execute(allow.toBoolValue()) }
.onLeft { Logger.e("Set allow lan error") }
.mapLeft(SetAllowLanError::Unknown)
- .mapEmpty()
suspend fun setDaitaEnabled(enabled: Boolean): Either<SetDaitaSettingsError, Unit> =
- Either.catch { grpc.setEnableDaita(enabled.toBoolValue()) }
+ Either.catch { grpc.SetEnableDaita().execute(enabled.toBoolValue()) }
.mapLeft(SetDaitaSettingsError::Unknown)
- .mapEmpty()
suspend fun setDaitaDirectOnly(enabled: Boolean): Either<SetDaitaSettingsError, Unit> =
- Either.catch { grpc.setDaitaDirectOnly(enabled.toBoolValue()) }
+ Either.catch { grpc.SetDaitaDirectOnly().execute(enabled.toBoolValue()) }
.mapLeft(SetDaitaSettingsError::Unknown)
- .mapEmpty()
suspend fun setRelayLocation(location: ModelRelayItemId): Either<SetRelayLocationError, Unit> =
Either.catch {
@@ -602,11 +591,10 @@ class ManagementService(
currentRelaySettings,
Constraint.Only(location),
)
- grpc.setRelaySettings(updatedRelaySettings.fromDomain())
+ grpc.SetRelaySettings().execute(updatedRelaySettings.fromDomain())
}
.onLeft { Logger.e("Set relay location error") }
.mapLeft(SetRelayLocationError::Unknown)
- .mapEmpty()
suspend fun setRelayLocationMultihop(
isMultihopEnabled: Boolean,
@@ -628,73 +616,73 @@ class ManagementService(
isMultihopEnabled
}
}
- grpc.setRelaySettings(updatedRelaySettings.fromDomain())
+ grpc.SetRelaySettings().execute(updatedRelaySettings.fromDomain())
}
.onLeft { Logger.e("Set relay multihop error") }
.mapLeft(SetRelayLocationError::Unknown)
- .mapEmpty()
suspend fun createCustomList(
name: CustomListName,
locations: List<GeoLocationId> = emptyList(),
): Either<CreateCustomListError, CustomListId> =
Either.catch {
- grpc.createCustomList(
- ManagementInterface.NewCustomList.newBuilder()
- .setName(name.value)
- .addAllLocations(locations.map(GeoLocationId::fromDomain))
- .build()
- )
+ grpc
+ .CreateCustomList()
+ .execute(
+ NewCustomList(
+ name = name.value,
+ locations = locations.map(GeoLocationId::fromDomain),
+ )
+ )
}
- .map { CustomListId(it.value) }
+ .map { CustomListId(it.value_) }
.mapLeftStatus {
- when (it.status.code) {
+ /*when (it.status.code) {
Status.Code.ALREADY_EXISTS -> CustomListAlreadyExists
else -> {
Logger.e("Unknown create custom list error")
UnknownCustomListError(it)
}
- }
+ }*/
+ CustomListAlreadyExists
}
suspend fun updateCustomList(customList: ModelCustomList): Either<UpdateCustomListError, Unit> =
- Either.catch { grpc.updateCustomList(customList.fromDomain()) }
+ Either.catch { grpc.UpdateCustomList().execute(customList.fromDomain()) }
.mapLeftStatus {
- when (it.status.code) {
+ /*when (it.status.code) {
Status.Code.ALREADY_EXISTS -> NameAlreadyExists(customList.name)
else -> {
Logger.e("Unknown update custom list error")
UnknownCustomListError(it)
}
- }
+ }*/
+ NameAlreadyExists(customList.name)
}
- .mapEmpty()
suspend fun deleteCustomList(id: CustomListId): Either<DeleteCustomListError, Unit> =
- Either.catch { grpc.deleteCustomList(id.value.toStringValue()) }
+ Either.catch { grpc.DeleteCustomList().execute(id.value.toStringValue()) }
.onLeft { Logger.e("Delete custom list error") }
.mapLeft(::UnknownCustomListError)
- .mapEmpty()
suspend fun clearAllRelayOverrides(): Either<ClearAllOverridesError, Unit> =
- Either.catch { grpc.clearAllRelayOverrides(Empty.getDefaultInstance()) }
+ Either.catch { grpc.ClearAllRelayOverrides().execute(Unit) }
.onLeft { Logger.e("Clear all relay overrides error") }
.mapLeft(ClearAllOverridesError::Unknown)
- .mapEmpty()
suspend fun applySettingsPatch(json: String): Either<SettingsPatchError, Unit> =
- Either.catch { grpc.applyJsonSettings(json.toStringValue()) }
+ Either.catch { grpc.ApplyJsonSettings().execute(json.toStringValue()) }
.mapLeftStatus {
- when (it.status.code) {
+ /*when (it.status.code) {
// Currently we only get invalid argument errors from daemon via gRPC
Status.Code.INVALID_ARGUMENT -> SettingsPatchError.ParsePatch
else -> {
Logger.e("Unknown apply settings patch error")
SettingsPatchError.ApplyPatch
}
- }
+ }*/
+ SettingsPatchError.ApplyPatch
}
- .mapEmpty()
suspend fun setOwnershipAndProviders(
ownershipConstraint: Constraint<ModelOwnership>,
@@ -709,11 +697,10 @@ class ManagementService(
RelayConstraints.ownership set ownershipConstraint
}
}
- grpc.setRelaySettings(updated.fromDomain())
+ grpc.SetRelaySettings().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set ownership and providers error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun setOwnership(
ownership: Constraint<ModelOwnership>
@@ -721,11 +708,10 @@ class ManagementService(
Either.catch {
val relaySettings = getSettings().relaySettings
val updated = RelaySettings.relayConstraints.ownership.set(relaySettings, ownership)
- grpc.setRelaySettings(updated.fromDomain())
+ grpc.SetRelaySettings().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set ownership error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun setProviders(
providersConstraint: Constraint<Providers>
@@ -734,18 +720,17 @@ class ManagementService(
val relaySettings = getSettings().relaySettings
val updated =
RelaySettings.relayConstraints.providers.set(relaySettings, providersConstraint)
- grpc.setRelaySettings(updated.fromDomain())
+ grpc.SetRelaySettings().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set providers error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun submitVoucher(
voucher: VoucherCode
): Either<RedeemVoucherError, RedeemVoucherSuccess> =
- Either.catch { grpc.submitVoucher(voucher.value.toStringValue()).toDomain() }
+ Either.catch { grpc.SubmitVoucher().execute(voucher.value.toStringValue()).toDomain() }
.mapLeftStatus {
- when (it.status.code) {
+ /*when (it.status.code) {
Status.Code.INVALID_ARGUMENT,
Status.Code.NOT_FOUND -> RedeemVoucherError.InvalidVoucher
Status.Code.ALREADY_EXISTS,
@@ -755,95 +740,89 @@ class ManagementService(
Logger.e("Unknown submit voucher error")
RedeemVoucherError.Unknown(it)
}
- }
+ }*/
+ RedeemVoucherError.Unknown(Throwable())
}
suspend fun initializePlayPurchase(): Either<PlayPurchaseInitError, PlayPurchasePaymentToken> =
- Either.catch { grpc.initPlayPurchase(Empty.getDefaultInstance()).toDomain() }
+ Either.catch { grpc.InitPlayPurchase().execute(Unit).toDomain() }
.onLeft { Logger.e("Initialize play purchase error") }
.mapLeft { PlayPurchaseInitError.OtherError }
suspend fun verifyPlayPurchase(purchase: PlayPurchase): Either<PlayPurchaseVerifyError, Unit> =
- Either.catch { grpc.verifyPlayPurchase(purchase.fromDomain()) }
+ Either.catch { grpc.VerifyPlayPurchase().execute(purchase.fromDomain()) }
.onLeft { Logger.e("Verify play purchase error") }
.mapLeft { PlayPurchaseVerifyError.OtherError }
- .mapEmpty()
suspend fun addSplitTunnelingApp(app: AppId): Either<AddSplitTunnelingAppError, Unit> =
- Either.catch { grpc.addSplitTunnelApp(app.value.toStringValue()) }
+ Either.catch { grpc.AddSplitTunnelApp().execute(app.value.toStringValue()) }
.onLeft { Logger.e("Add split tunneling app error") }
.mapLeft(AddSplitTunnelingAppError::Unknown)
- .mapEmpty()
suspend fun removeSplitTunnelingApp(app: AppId): Either<RemoveSplitTunnelingAppError, Unit> =
- Either.catch { grpc.removeSplitTunnelApp(app.value.toStringValue()) }
+ Either.catch { grpc.RemoveSplitTunnelApp().execute(app.value.toStringValue()) }
.onLeft { Logger.e("Remove split tunneling app error") }
.mapLeft(RemoveSplitTunnelingAppError::Unknown)
- .mapEmpty()
suspend fun setSplitTunnelingState(
enabled: Boolean
): Either<RemoveSplitTunnelingAppError, Unit> =
- Either.catch { grpc.setSplitTunnelState(enabled.toBoolValue()) }
+ Either.catch { grpc.SetSplitTunnelState().execute(enabled.toBoolValue()) }
.onLeft { Logger.e("Set split tunneling state error") }
.mapLeft(RemoveSplitTunnelingAppError::Unknown)
- .mapEmpty()
suspend fun getWebsiteAuthToken(): Either<Throwable, WebsiteAuthToken> =
- Either.catch { grpc.getWwwAuthToken(Empty.getDefaultInstance()) }
+ Either.catch { grpc.GetWwwAuthToken().execute(Unit) }
.onLeft { Logger.e("Get website auth token error") }
- .map { WebsiteAuthToken.fromString(it.value) }
+ .map { WebsiteAuthToken.fromString(it.value_) }
suspend fun addApiAccessMethod(
newAccessMethodSetting: NewAccessMethodSetting
): Either<AddApiAccessMethodError, ApiAccessMethodId> =
- Either.catch { grpc.addApiAccessMethod(newAccessMethodSetting.fromDomain()) }
+ Either.catch { grpc.AddApiAccessMethod().execute(newAccessMethodSetting.fromDomain()) }
.onLeft { Logger.e("Add api access method error") }
.mapLeft(AddApiAccessMethodError::Unknown)
- .map { ApiAccessMethodId.fromString(it.value) }
+ .map { ApiAccessMethodId.fromString(it.value_) }
suspend fun removeApiAccessMethod(
apiAccessMethodId: ApiAccessMethodId
): Either<RemoveApiAccessMethodError, Unit> =
- Either.catch { grpc.removeApiAccessMethod(apiAccessMethodId.fromDomain()) }
+ Either.catch { grpc.RemoveApiAccessMethod().execute(apiAccessMethodId.fromDomain()) }
.onLeft { Logger.e("Remove api access method error") }
.mapLeft(RemoveApiAccessMethodError::Unknown)
- .mapEmpty()
suspend fun setApiAccessMethod(
apiAccessMethodId: ApiAccessMethodId
): Either<SetApiAccessMethodError, Unit> =
- Either.catch { grpc.setApiAccessMethod(apiAccessMethodId.fromDomain()) }
+ Either.catch { grpc.SetApiAccessMethod().execute(apiAccessMethodId.fromDomain()) }
.onLeft { Logger.e("Set api access method error") }
.mapLeft(SetApiAccessMethodError::Unknown)
- .mapEmpty()
suspend fun updateApiAccessMethod(
apiAccessMethodSetting: ApiAccessMethodSetting
): Either<UpdateApiAccessMethodError, Unit> =
- Either.catch { grpc.updateApiAccessMethod(apiAccessMethodSetting.fromDomain()) }
+ Either.catch { grpc.UpdateApiAccessMethod().execute(apiAccessMethodSetting.fromDomain()) }
.onLeft { Logger.e("Update api access method error") }
.mapLeft(::UnknownApiAccessMethodError)
- .mapEmpty()
suspend fun testCustomApiAccessMethod(
customProxy: ApiAccessMethod.CustomProxy
): Either<TestApiAccessMethodError, Unit> =
- Either.catch { grpc.testCustomApiAccessMethod(customProxy.fromDomain()) }
+ Either.catch { grpc.TestCustomApiAccessMethod().execute(customProxy.fromDomain()) }
.onLeft { Logger.e("Test custom api access method error") }
.mapLeftStatus { TestApiAccessMethodError.Grpc }
.map { result ->
- either { ensure(result.value) { TestApiAccessMethodError.CouldNotAccess } }
+ either { ensure(result.value_) { TestApiAccessMethodError.CouldNotAccess } }
}
suspend fun testApiAccessMethodById(
apiAccessMethodId: ApiAccessMethodId
): Either<TestApiAccessMethodError, Unit> =
- Either.catch { grpc.testApiAccessMethodById(apiAccessMethodId.fromDomain()) }
+ Either.catch { grpc.TestApiAccessMethodById().execute(apiAccessMethodId.fromDomain()) }
.onLeft { Logger.e("Test api access method error") }
.mapLeftStatus { TestApiAccessMethodError.Grpc }
.map { result ->
- either { ensure(result.value) { TestApiAccessMethodError.CouldNotAccess } }
+ either { ensure(result.value_) { TestApiAccessMethodError.CouldNotAccess } }
}
suspend fun setMultihop(enabled: Boolean): Either<SetWireguardConstraintsError, Unit> =
@@ -854,11 +833,10 @@ class ManagementService(
relaySettings,
enabled,
)
- grpc.setRelaySettings(updated.fromDomain())
+ grpc.SetRelaySettings().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set multihop error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun setEntryLocation(
entryLocation: RelayItemId
@@ -870,11 +848,10 @@ class ManagementService(
relaySettings,
Constraint.Only(entryLocation),
)
- grpc.setRelaySettings(updated.fromDomain())
+ grpc.SetRelaySettings().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set multihop error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun setDeviceIpVersion(
ipVersion: Constraint<IpVersion>
@@ -886,27 +863,22 @@ class ManagementService(
relaySettings,
ipVersion,
)
- grpc.setRelaySettings(updated.fromDomain())
+ grpc.SetRelaySettings().execute(updated.fromDomain())
}
.onLeft { Logger.e("Set multihop error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun setIpv6Enabled(enabled: Boolean): Either<SetDaitaSettingsError, Unit> =
- Either.catch { grpc.setEnableIpv6(enabled.toBoolValue()) }
+ Either.catch { grpc.SetEnableIpv6().execute(enabled.toBoolValue()) }
.mapLeft(SetDaitaSettingsError::Unknown)
- .mapEmpty()
suspend fun setRecentsEnabled(enabled: Boolean): Either<SetWireguardConstraintsError, Unit> =
- Either.catch { grpc.setEnableRecents(enabled.toBoolValue()) }
+ Either.catch { grpc.SetEnableRecents().execute(enabled.toBoolValue()) }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
suspend fun updateRelayLocations(): Either<UpdateRelayLocationsError, Unit> =
- Either.catch { grpc.updateRelayLocations(Empty.getDefaultInstance()) }
+ Either.catch { grpc.UpdateRelayLocations().execute(Unit) }
.mapLeft(UpdateRelayLocationsError::Unknown)
- .mapEmpty()
-
suspend fun setMultihopAndEntryLocation(
isMultihopEnabled: Boolean,
@@ -921,23 +893,20 @@ class ManagementService(
WireguardConstraints.isMultihopEnabled set isMultihopEnabled
}
}
- grpc.setRelaySettings(updatedRelaySettings.fromDomain())
+ grpc.SetRelaySettings().execute(updatedRelaySettings.fromDomain())
}
.onLeft { Logger.e("Set multihop error") }
.mapLeft(SetWireguardConstraintsError::Unknown)
- .mapEmpty()
- private fun Boolean.toBoolValue() =
- ManagementInterface.BoolValue.newBuilder().setValue(this).build()
+ private fun Boolean.toBoolValue() = BoolValue(this)
- private fun String.toStringValue() =
- ManagementInterface.StringValue.newBuilder().setValue(this).build()
+ private fun String.toStringValue() = StringValue(this)
- private fun Int.toUInt32Value() = ManagementInterface.UInt32Value.newBuilder().setValue(this).build()
+ private fun Int.toUInt32Value() = UInt32Value(this)
- private fun <A> Either<A, Empty>.mapEmpty() = map {}
+ private fun BoolValue.toBool() = this.value_
- private inline fun <B, C> Either<Throwable, B>.mapLeftStatus(
+ /*private inline fun <B, C> Either<Throwable, B>.mapLeftStatus(
f: (StatusException) -> C
): Either<C, B> = mapLeft {
if (it is StatusException) {
@@ -945,9 +914,35 @@ class ManagementService(
} else {
throw it
}
+ }*/
+
+ private inline fun <B, C> Either<Throwable, B>.mapLeftStatus(f: (Any) -> C): Either<C, B> =
+ mapLeft {
+ f(it)
+ }
+
+ private fun socketClient(rpcSocketFile: File): OkHttpClient {
+ val addr = AFUNIXSocketAddress.of(rpcSocketFile)
+
+ return OkHttpClient.Builder()
+ .socketFactory(socketFactory = UnixDomainSocketFactory(addr))
+ // .socketFactory(socketFactory =
+ // AFSocketFactory.FixedAddressSocketFactory(rpcSocketFile))
+ // .callTimeout(java.time.Duration.ofMinutes(1))
+ .callTimeout(timeout = 0, TimeUnit.MILLISECONDS)
+ .readTimeout(timeout = 0, TimeUnit.MILLISECONDS)
+ .connectTimeout(timeout = 0, TimeUnit.MILLISECONDS)
+ .writeTimeout(timeout = 0, TimeUnit.MILLISECONDS)
+ .webSocketCloseTimeout(timeout = 0, TimeUnit.MILLISECONDS)
+ .protocols(listOf(Protocol.H2_PRIOR_KNOWLEDGE))
+ .addInterceptor(
+ HttpLoggingInterceptor { message -> Logger.withTag("grpc").d(message) }
+ .also { it.level = HttpLoggingInterceptor.Level.BODY }
+ )
+ .build()
}
- private fun Status.isTooManyRequests() = description == TOO_MANY_REQUESTS
+ // private fun Status.isTooManyRequests() = description == TOO_MANY_REQUESTS
companion object {
const val ENABLE_TRACE_LOGGING = false
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt
index b0b846a4f8..97437db637 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt
@@ -1,47 +1,68 @@
package net.mullvad.mullvadvpn.lib.daemon.grpc.mapper
-import mullvad_daemon.management_interface.ManagementInterface
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethod
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting
+import mullvad_daemon.management_interface.AccessMethod
+import mullvad_daemon.management_interface.AccessMethodSetting
+import mullvad_daemon.management_interface.ApiAccessMethodSettings
+import mullvad_daemon.management_interface.CustomDnsOptions
+import mullvad_daemon.management_interface.CustomList
+import mullvad_daemon.management_interface.CustomProxy
+import mullvad_daemon.management_interface.DefaultDnsOptions
+import mullvad_daemon.management_interface.DnsOptions
+import mullvad_daemon.management_interface.GeographicLocationConstraint
+import mullvad_daemon.management_interface.IpVersion
+import mullvad_daemon.management_interface.LocationConstraint
+import mullvad_daemon.management_interface.NewAccessMethodSetting
+import mullvad_daemon.management_interface.NormalRelaySettings
+import mullvad_daemon.management_interface.ObfuscationSettings
+import mullvad_daemon.management_interface.Ownership
+import mullvad_daemon.management_interface.PlayPurchase
+import mullvad_daemon.management_interface.PlayPurchasePaymentToken
+import mullvad_daemon.management_interface.QuantumResistantState
+import mullvad_daemon.management_interface.RelaySettings
+import mullvad_daemon.management_interface.Shadowsocks
+import mullvad_daemon.management_interface.Socks5Remote
+import mullvad_daemon.management_interface.SocksAuth
+import mullvad_daemon.management_interface.UUID
+import mullvad_daemon.management_interface.WireguardConstraints
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethod as ModelApiAccessMethod
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId as ModelApiAccessMethodId
import net.mullvad.mullvadvpn.lib.model.Constraint
-import net.mullvad.mullvadvpn.lib.model.CustomDnsOptions
-import net.mullvad.mullvadvpn.lib.model.CustomList
+import net.mullvad.mullvadvpn.lib.model.CustomDnsOptions as ModelCustomDnsOptions
+import net.mullvad.mullvadvpn.lib.model.CustomList as ModelCustomList
import net.mullvad.mullvadvpn.lib.model.CustomListId
-import net.mullvad.mullvadvpn.lib.model.DefaultDnsOptions
-import net.mullvad.mullvadvpn.lib.model.DnsOptions
-import net.mullvad.mullvadvpn.lib.model.DnsState
+import net.mullvad.mullvadvpn.lib.model.DefaultDnsOptions as ModelDefaultDnsOptions
+import net.mullvad.mullvadvpn.lib.model.DnsOptions as ModelDnsOptions
+import net.mullvad.mullvadvpn.lib.model.DnsState as ModelDnsState
import net.mullvad.mullvadvpn.lib.model.GeoLocationId
-import net.mullvad.mullvadvpn.lib.model.IpVersion
-import net.mullvad.mullvadvpn.lib.model.NewAccessMethodSetting
+import net.mullvad.mullvadvpn.lib.model.IpVersion as ModelIpVersion
+import net.mullvad.mullvadvpn.lib.model.NewAccessMethodSetting as ModelNewAccessMethodSetting
+import net.mullvad.mullvadvpn.lib.model.ObfuscationMode as ModelObfuscationMode
import net.mullvad.mullvadvpn.lib.model.ObfuscationMode
-import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings
-import net.mullvad.mullvadvpn.lib.model.Ownership
-import net.mullvad.mullvadvpn.lib.model.PlayPurchase
-import net.mullvad.mullvadvpn.lib.model.PlayPurchasePaymentToken
+import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings as ModelObfuscationSettings
+import net.mullvad.mullvadvpn.lib.model.Ownership as ModelOwnership
+import net.mullvad.mullvadvpn.lib.model.PlayPurchase as ModelPlayPurchase
+import net.mullvad.mullvadvpn.lib.model.PlayPurchasePaymentToken as ModelPlayPurchasePaymentToken
import net.mullvad.mullvadvpn.lib.model.Port
import net.mullvad.mullvadvpn.lib.model.Providers
+import net.mullvad.mullvadvpn.lib.model.QuantumResistantState as ModelQuantumResistantState
import net.mullvad.mullvadvpn.lib.model.RelayItemId
-import net.mullvad.mullvadvpn.lib.model.RelaySettings
-import net.mullvad.mullvadvpn.lib.model.ShadowsocksObfuscationSettings
-import net.mullvad.mullvadvpn.lib.model.SocksAuth
+import net.mullvad.mullvadvpn.lib.model.RelaySettings as ModelRelaySettings
+import net.mullvad.mullvadvpn.lib.model.ShadowsocksObfuscationSettings as ModelShadowsocksObfuscationSettings
+import net.mullvad.mullvadvpn.lib.model.SocksAuth as ModelSocksAuth
import net.mullvad.mullvadvpn.lib.model.Udp2TcpObfuscationSettings
-import net.mullvad.mullvadvpn.lib.model.WireguardConstraints
+import net.mullvad.mullvadvpn.lib.model.WireguardConstraints as ModelWireguardConstraints
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting as ModelApiAccessMethodSetting
-internal fun Constraint<RelayItemId>.fromDomain(): ManagementInterface.LocationConstraint =
- ManagementInterface.LocationConstraint.newBuilder()
- .apply {
- when (this@fromDomain) {
- is Constraint.Any -> {}
- is Constraint.Only -> {
- when (val relayItemId = value) {
- is CustomListId -> setCustomList(relayItemId.value)
- is GeoLocationId -> setLocation(relayItemId.fromDomain())
- }
- }
+internal fun Constraint<RelayItemId>.fromDomain(): LocationConstraint =
+ when (this@fromDomain) {
+ is Constraint.Any -> LocationConstraint()
+ is Constraint.Only -> {
+ when (val relayItemId = value) {
+ is CustomListId -> LocationConstraint(custom_list = relayItemId.value)
+ is GeoLocationId -> LocationConstraint(location = relayItemId.fromDomain())
}
}
- .build()
+ }
internal fun Constraint<Providers>.fromDomain(): List<String> =
when (this) {
@@ -49,225 +70,172 @@ internal fun Constraint<Providers>.fromDomain(): List<String> =
is Constraint.Only -> value.map { it.value }
}
-internal fun DnsOptions.fromDomain(): ManagementInterface.DnsOptions =
- ManagementInterface.DnsOptions.newBuilder()
- .setState(state.fromDomain())
- .setCustomOptions(customOptions.fromDomain())
- .setDefaultOptions(defaultOptions.fromDomain())
- .build()
+internal fun ModelDnsOptions.fromDomain(): DnsOptions =
+ DnsOptions(
+ state = state.fromDomain(),
+ custom_options = customOptions.fromDomain(),
+ default_options = defaultOptions.fromDomain(),
+ )
-internal fun DnsState.fromDomain(): ManagementInterface.DnsOptions.DnsState =
+internal fun ModelDnsState.fromDomain(): DnsOptions.DnsState =
when (this) {
- DnsState.Default -> ManagementInterface.DnsOptions.DnsState.DEFAULT
- DnsState.Custom -> ManagementInterface.DnsOptions.DnsState.CUSTOM
+ ModelDnsState.Default -> DnsOptions.DnsState.DEFAULT
+ ModelDnsState.Custom -> DnsOptions.DnsState.CUSTOM
}
-internal fun CustomDnsOptions.fromDomain(): ManagementInterface.CustomDnsOptions =
- ManagementInterface.CustomDnsOptions.newBuilder()
- .addAllAddresses(addresses.map { it.hostAddress })
- .build()
+internal fun ModelCustomDnsOptions.fromDomain(): CustomDnsOptions =
+ CustomDnsOptions(addresses = addresses.mapNotNull { it.hostAddress })
-internal fun DefaultDnsOptions.fromDomain(): ManagementInterface.DefaultDnsOptions =
- ManagementInterface.DefaultDnsOptions.newBuilder()
- .setBlockAds(blockAds)
- .setBlockGambling(blockGambling)
- .setBlockMalware(blockMalware)
- .setBlockTrackers(blockTrackers)
- .setBlockAdultContent(blockAdultContent)
- .setBlockSocialMedia(blockSocialMedia)
- .build()
+internal fun ModelDefaultDnsOptions.fromDomain(): DefaultDnsOptions =
+ DefaultDnsOptions(
+ block_ads = blockAds,
+ block_gambling = blockGambling,
+ block_malware = blockMalware,
+ block_trackers = blockTrackers,
+ block_adult_content = blockAdultContent,
+ block_social_media = blockSocialMedia,
+ )
-internal fun ObfuscationSettings.fromDomain(): ManagementInterface.ObfuscationSettings =
- ManagementInterface.ObfuscationSettings.newBuilder()
- .setSelectedObfuscation(selectedObfuscationMode.fromDomain())
- .setUdp2Tcp(udp2tcp.fromDomain())
- .setShadowsocks(shadowsocks.fromDomain())
- .setWireguardPort(wireguardPort.fromDomain())
- .build()
+internal fun ModelObfuscationSettings.fromDomain(): ObfuscationSettings =
+ ObfuscationSettings(
+ selected_obfuscation = selectedObfuscationMode.fromDomain(),
+ udp2tcp = udp2tcp.fromDomain(),
+ shadowsocks = shadowsocks.fromDomain(),
+ wireguard_port = wireguardPort.fromDomain(),
+ )
-internal fun ObfuscationMode.fromDomain():
- ManagementInterface.ObfuscationSettings.SelectedObfuscation =
+internal fun ModelObfuscationMode.fromDomain(): ObfuscationSettings.SelectedObfuscation =
when (this) {
- ObfuscationMode.Udp2Tcp ->
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.UDP2TCP
- ObfuscationMode.Shadowsocks ->
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS
- ObfuscationMode.WireguardPort ->
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.WIREGUARD_PORT
- ObfuscationMode.Quic -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.QUIC
- ObfuscationMode.Lwo -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.LWO
- ObfuscationMode.Auto -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.AUTO
- ObfuscationMode.Off -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.OFF
+ ObfuscationMode.Udp2Tcp -> ObfuscationSettings.SelectedObfuscation.UDP2TCP
+ ObfuscationMode.Shadowsocks -> ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS
+ ObfuscationMode.WireguardPort -> ObfuscationSettings.SelectedObfuscation.WIREGUARD_PORT
+ ObfuscationMode.Quic -> ObfuscationSettings.SelectedObfuscation.QUIC
+ ObfuscationMode.Lwo -> ObfuscationSettings.SelectedObfuscation.LWO
+ ObfuscationMode.Auto -> ObfuscationSettings.SelectedObfuscation.AUTO
+ ObfuscationMode.Off -> ObfuscationSettings.SelectedObfuscation.OFF
}
-internal fun Udp2TcpObfuscationSettings.fromDomain():
- ManagementInterface.ObfuscationSettings.Udp2TcpObfuscation =
+internal fun Udp2TcpObfuscationSettings.fromDomain(): ObfuscationSettings.Udp2TcpObfuscation =
when (val port = port) {
- is Constraint.Any ->
- ManagementInterface.ObfuscationSettings.Udp2TcpObfuscation.newBuilder()
- .clearPort()
- .build()
- is Constraint.Only ->
- ManagementInterface.ObfuscationSettings.Udp2TcpObfuscation.newBuilder()
- .setPort(port.value.value)
- .build()
+ is Constraint.Any -> ObfuscationSettings.Udp2TcpObfuscation(port = null)
+ is Constraint.Only -> ObfuscationSettings.Udp2TcpObfuscation(port.value.value)
}
-internal fun Constraint<Port>.fromDomain(): ManagementInterface.ObfuscationSettings.WireguardPort =
+internal fun Constraint<Port>.fromDomain(): ObfuscationSettings.WireguardPort =
when (this) {
- is Constraint.Any ->
- ManagementInterface.ObfuscationSettings.WireguardPort.newBuilder().clearPort()
- is Constraint.Only ->
- ManagementInterface.ObfuscationSettings.WireguardPort.newBuilder()
- .setPort(this.value.value)
- }.build()
+ is Constraint.Any -> ObfuscationSettings.WireguardPort(port = null)
+ is Constraint.Only -> ObfuscationSettings.WireguardPort(this.value.value)
+ }
-internal fun GeoLocationId.fromDomain(): ManagementInterface.GeographicLocationConstraint =
- ManagementInterface.GeographicLocationConstraint.newBuilder()
- .apply {
- when (val id = this@fromDomain) {
- is GeoLocationId.Country -> setCountry(id.code)
- is GeoLocationId.City -> setCountry(id.country.code).setCity(id.code)
- is GeoLocationId.Hostname ->
- setCountry(id.country.code).setCity(id.city.code).setHostname(id.code)
- }
- }
- .build()
+internal fun GeoLocationId.fromDomain(): GeographicLocationConstraint =
+ when (val id = this) {
+ is GeoLocationId.Country -> GeographicLocationConstraint(id.code)
+ is GeoLocationId.City ->
+ GeographicLocationConstraint(country = id.country.code, city = id.code)
+ is GeoLocationId.Hostname ->
+ GeographicLocationConstraint(
+ country = id.country.code,
+ city = id.city.code,
+ hostname = id.code,
+ )
+ }
-internal fun CustomList.fromDomain(): ManagementInterface.CustomList =
- ManagementInterface.CustomList.newBuilder()
- .setId(id.value)
- .setName(name.value)
- .addAllLocations(locations.map { it.fromDomain() })
- .build()
+internal fun ModelWireguardConstraints.fromDomain(): WireguardConstraints =
+ WireguardConstraints(
+ use_multihop = isMultihopEnabled,
+ entry_location = entryLocation.fromDomain(),
+ ip_version = ipVersion.getOrNull()?.fromDomain(),
+ )
-internal fun WireguardConstraints.fromDomain(): ManagementInterface.WireguardConstraints =
- ManagementInterface.WireguardConstraints.newBuilder()
- .setUseMultihop(isMultihopEnabled)
- .setEntryLocation(entryLocation.fromDomain())
- .apply {
- when (val ipVersion = this@fromDomain.ipVersion) {
- is Constraint.Any -> clearIpVersion()
- is Constraint.Only -> setIpVersion(ipVersion.value.fromDomain())
- }
- }
- .build()
+internal fun ModelCustomList.fromDomain(): CustomList =
+ CustomList(id = id.value, name = name.value, locations = locations.map { it.fromDomain() })
-internal fun Ownership.fromDomain(): ManagementInterface.Ownership =
+internal fun ModelOwnership.fromDomain(): Ownership =
when (this) {
- Ownership.MullvadOwned -> ManagementInterface.Ownership.MULLVAD_OWNED
- Ownership.Rented -> ManagementInterface.Ownership.RENTED
+ ModelOwnership.MullvadOwned -> Ownership.MULLVAD_OWNED
+ ModelOwnership.Rented -> Ownership.RENTED
}
-internal fun RelaySettings.fromDomain(): ManagementInterface.RelaySettings =
- ManagementInterface.RelaySettings.newBuilder()
- .setNormal(
- ManagementInterface.NormalRelaySettings.newBuilder()
- .setWireguardConstraints(relayConstraints.wireguardConstraints.fromDomain())
- .setLocation(relayConstraints.location.fromDomain())
- .setOwnership(relayConstraints.ownership.fromDomain())
- .addAllProviders(relayConstraints.providers.fromDomain())
- .build()
- )
- .build()
+internal fun ModelRelaySettings.fromDomain(): RelaySettings =
+ RelaySettings(
+ normal =
+ NormalRelaySettings(
+ wireguard_constraints = relayConstraints.wireguardConstraints.fromDomain(),
+ location = relayConstraints.location.fromDomain(),
+ ownership = relayConstraints.ownership.fromDomain(),
+ providers = relayConstraints.providers.fromDomain(),
+ )
+ )
-internal fun Constraint<Ownership>.fromDomain(): ManagementInterface.Ownership =
+internal fun Constraint<ModelOwnership>.fromDomain(): Ownership =
when (this) {
- Constraint.Any -> ManagementInterface.Ownership.ANY
+ Constraint.Any -> Ownership.ANY
is Constraint.Only -> value.fromDomain()
}
-internal fun PlayPurchasePaymentToken.fromDomain(): ManagementInterface.PlayPurchasePaymentToken =
- ManagementInterface.PlayPurchasePaymentToken.newBuilder().setToken(value).build()
+internal fun ModelPlayPurchasePaymentToken.fromDomain(): PlayPurchasePaymentToken =
+ PlayPurchasePaymentToken(value)
-internal fun PlayPurchase.fromDomain(): ManagementInterface.PlayPurchase =
- ManagementInterface.PlayPurchase.newBuilder()
- .setPurchaseToken(purchaseToken.fromDomain())
- .setProductId(productId)
- .build()
+internal fun ModelPlayPurchase.fromDomain(): PlayPurchase =
+ PlayPurchase(purchase_token = purchaseToken.fromDomain(), product_id = productId)
-internal fun NewAccessMethodSetting.fromDomain(): ManagementInterface.NewAccessMethodSetting =
- ManagementInterface.NewAccessMethodSetting.newBuilder()
- .setName(name.value)
- .setEnabled(enabled)
- .setAccessMethod(
- ManagementInterface.AccessMethod.newBuilder().setCustom(apiAccessMethod.fromDomain())
- )
- .build()
+internal fun ModelNewAccessMethodSetting.fromDomain(): NewAccessMethodSetting =
+ NewAccessMethodSetting(
+ name = name.value,
+ enabled = enabled,
+ access_method = AccessMethod(custom = apiAccessMethod.fromDomain()),
+ )
-internal fun ApiAccessMethod.fromDomain(): ManagementInterface.AccessMethod =
- ManagementInterface.AccessMethod.newBuilder()
- .let {
- when (this) {
- ApiAccessMethod.Direct ->
- it.setDirect(ManagementInterface.AccessMethod.Direct.getDefaultInstance())
- ApiAccessMethod.Bridges ->
- it.setBridges(ManagementInterface.AccessMethod.Bridges.getDefaultInstance())
- is ApiAccessMethod.CustomProxy -> it.setCustom(fromDomain())
- is ApiAccessMethod.EncryptedDns ->
- it.setEncryptedDnsProxy(
- ManagementInterface.AccessMethod.EncryptedDnsProxy.getDefaultInstance()
- )
- }
- }
- .build()
+internal fun ModelApiAccessMethodSetting.fromDomain(): AccessMethodSetting =
+ AccessMethodSetting(
+ id = id.fromDomain(),
+ name = name.value,
+ enabled = enabled,
+ access_method = apiAccessMethod.fromDomain(),
+ )
-internal fun ApiAccessMethod.CustomProxy.fromDomain(): ManagementInterface.CustomProxy =
- ManagementInterface.CustomProxy.newBuilder()
- .let {
- when (this) {
- is ApiAccessMethod.CustomProxy.Shadowsocks -> it.setShadowsocks(fromDomain())
- is ApiAccessMethod.CustomProxy.Socks5Remote -> it.setSocks5Remote(fromDomain())
- }
- }
- .build()
+internal fun ModelApiAccessMethod.fromDomain(): AccessMethod =
+ when (this) {
+ ModelApiAccessMethod.Direct -> AccessMethod(direct = AccessMethod.Direct())
+ ModelApiAccessMethod.Bridges -> AccessMethod(bridges = AccessMethod.Bridges())
+ ModelApiAccessMethod.EncryptedDns ->
+ AccessMethod(encrypted_dns_proxy = AccessMethod.EncryptedDnsProxy())
+ is ModelApiAccessMethod.CustomProxy -> AccessMethod(custom = fromDomain())
+ }
-internal fun ApiAccessMethod.CustomProxy.Socks5Remote.fromDomain():
- ManagementInterface.Socks5Remote =
- ManagementInterface.Socks5Remote.newBuilder().setIp(ip).setPort(port.value).let {
- auth?.let { auth -> it.setAuth(auth.fromDomain()) }
- it.build()
+internal fun ModelApiAccessMethod.CustomProxy.fromDomain(): CustomProxy =
+ when (this) {
+ is ModelApiAccessMethod.CustomProxy.Shadowsocks -> CustomProxy(shadowsocks = fromDomain())
+ is ModelApiAccessMethod.CustomProxy.Socks5Remote -> CustomProxy(socks5remote = fromDomain())
}
-internal fun SocksAuth.fromDomain(): ManagementInterface.SocksAuth =
- ManagementInterface.SocksAuth.newBuilder().setUsername(username).setPassword(password).build()
+internal fun ModelSocksAuth.fromDomain(): SocksAuth =
+ SocksAuth(username = username, password = password)
-internal fun ApiAccessMethod.CustomProxy.Shadowsocks.fromDomain(): ManagementInterface.Shadowsocks =
- ManagementInterface.Shadowsocks.newBuilder()
- .setIp(ip)
- .setCipher(cipher.label)
- .setPort(port.value)
- .let {
- if (password != null) {
- it.setPassword(password)
- }
- it.build()
- }
+internal fun ModelApiAccessMethod.CustomProxy.Shadowsocks.fromDomain(): Shadowsocks =
+ Shadowsocks(ip = ip, cipher = cipher.label, port = port.value, password = password ?: "")
-internal fun ApiAccessMethodId.fromDomain(): ManagementInterface.UUID =
- ManagementInterface.UUID.newBuilder().setValue(value.toString()).build()
+internal fun ModelApiAccessMethodId.fromDomain(): UUID = UUID(value.toString())
-internal fun ApiAccessMethodSetting.fromDomain(): ManagementInterface.AccessMethodSetting =
- ManagementInterface.AccessMethodSetting.newBuilder()
- .setName(name.value)
- .setId(id.fromDomain())
- .setEnabled(enabled)
- .setAccessMethod(apiAccessMethod.fromDomain())
- .build()
+internal fun ModelApiAccessMethod.CustomProxy.Socks5Remote.fromDomain(): Socks5Remote =
+ Socks5Remote(ip = ip, port = port.value, auth = auth?.fromDomain())
-internal fun ShadowsocksObfuscationSettings.fromDomain():
- ManagementInterface.ObfuscationSettings.Shadowsocks =
+internal fun ModelShadowsocksObfuscationSettings.fromDomain(): ObfuscationSettings.Shadowsocks =
when (val port = port) {
- is Constraint.Any ->
- ManagementInterface.ObfuscationSettings.Shadowsocks.newBuilder().clearPort().build()
- is Constraint.Only ->
- ManagementInterface.ObfuscationSettings.Shadowsocks.newBuilder()
- .setPort(port.value.value)
- .build()
+ is Constraint.Any -> ObfuscationSettings.Shadowsocks(port = null)
+ is Constraint.Only -> ObfuscationSettings.Shadowsocks(port = port.value.value)
+ }
+
+internal fun ModelIpVersion.fromDomain(): IpVersion =
+ when (this) {
+ ModelIpVersion.IPV4 -> IpVersion.V4
+ ModelIpVersion.IPV6 -> IpVersion.V6
}
-internal fun IpVersion.fromDomain(): ManagementInterface.IpVersion =
+internal fun ModelQuantumResistantState.fromDomain(): QuantumResistantState =
when (this) {
- IpVersion.IPV4 -> ManagementInterface.IpVersion.V4
- IpVersion.IPV6 -> ManagementInterface.IpVersion.V6
+ ModelQuantumResistantState.On ->
+ QuantumResistantState(state = QuantumResistantState.State.ON)
+ ModelQuantumResistantState.Off ->
+ QuantumResistantState(state = QuantumResistantState.State.OFF)
}
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt
index 97216a9c37..51a0fc0908 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt
@@ -2,196 +2,231 @@
package net.mullvad.mullvadvpn.lib.daemon.grpc.mapper
-import io.grpc.ConnectivityState
import java.net.InetAddress
import java.net.InetSocketAddress
import java.time.Instant
import java.time.ZoneId
import java.util.UUID
-import mullvad_daemon.management_interface.ManagementInterface
-import mullvad_daemon.management_interface.entryLocationOrNull
-import mullvad_daemon.management_interface.locationOrNull
-import mullvad_daemon.management_interface.recentsOrNull
-import net.mullvad.mullvadvpn.lib.daemon.grpc.GrpcConnectivityState
+import kotlin.collections.sorted
+import mullvad_daemon.management_interface.AccessMethod
+import mullvad_daemon.management_interface.AccessMethodSetting
+import mullvad_daemon.management_interface.AccountData
+import mullvad_daemon.management_interface.AfterDisconnect
+import mullvad_daemon.management_interface.ApiAccessMethodSettings
+import mullvad_daemon.management_interface.AppVersionInfo
+import mullvad_daemon.management_interface.CustomDnsOptions
+import mullvad_daemon.management_interface.CustomList
+import mullvad_daemon.management_interface.CustomProxy
+import mullvad_daemon.management_interface.DaitaSettings
+import mullvad_daemon.management_interface.DefaultDnsOptions
+import mullvad_daemon.management_interface.Device
+import mullvad_daemon.management_interface.DeviceState
+import mullvad_daemon.management_interface.DnsOptions
+import mullvad_daemon.management_interface.ErrorState
+import mullvad_daemon.management_interface.FeatureIndicator
+import mullvad_daemon.management_interface.FeatureIndicators
+import mullvad_daemon.management_interface.GeoIpLocation
+import mullvad_daemon.management_interface.GeographicLocationConstraint
+import mullvad_daemon.management_interface.IpVersion
+import mullvad_daemon.management_interface.LocationConstraint
+import mullvad_daemon.management_interface.NormalRelaySettings
+import mullvad_daemon.management_interface.ObfuscationEndpoint
+import mullvad_daemon.management_interface.ObfuscationSettings
+import mullvad_daemon.management_interface.Ownership
+import mullvad_daemon.management_interface.PlayPurchasePaymentToken
+import mullvad_daemon.management_interface.PortRange
+import mullvad_daemon.management_interface.QuantumResistantState
+import mullvad_daemon.management_interface.Recent
+import mullvad_daemon.management_interface.Recents
+import mullvad_daemon.management_interface.Relay
+import mullvad_daemon.management_interface.RelayList
+import mullvad_daemon.management_interface.RelayListCity
+import mullvad_daemon.management_interface.RelayListCountry
+import mullvad_daemon.management_interface.RelayOverride
+import mullvad_daemon.management_interface.RelaySettings
+import mullvad_daemon.management_interface.Settings
+import mullvad_daemon.management_interface.Shadowsocks
+import mullvad_daemon.management_interface.Socks5Remote
+import mullvad_daemon.management_interface.SocksAuth
+import mullvad_daemon.management_interface.SplitTunnelSettings
+import mullvad_daemon.management_interface.TransportProtocol
+import mullvad_daemon.management_interface.TunnelEndpoint
+import mullvad_daemon.management_interface.TunnelOptions
+import mullvad_daemon.management_interface.TunnelState
+import mullvad_daemon.management_interface.VoucherSubmission
+import mullvad_daemon.management_interface.WireguardConstraints
+import mullvad_daemon.management_interface.WireguardEndpointData
import net.mullvad.mullvadvpn.lib.daemon.grpc.RelayNameComparator
-import net.mullvad.mullvadvpn.lib.model.AccountData
+import net.mullvad.mullvadvpn.lib.model.AccountData as ModelAccountData
import net.mullvad.mullvadvpn.lib.model.AccountId
-import net.mullvad.mullvadvpn.lib.model.AccountNumber
-import net.mullvad.mullvadvpn.lib.model.ActionAfterDisconnect
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethod
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodName
-import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting
+import net.mullvad.mullvadvpn.lib.model.AccountNumber as ModelAccountNumber
+import net.mullvad.mullvadvpn.lib.model.ActionAfterDisconnect as ModelActionAfterDisconnect
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethod as ModelApiAccessMethod
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId as ModelApiAccessMethodId
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodName as ModelApiAccessMethodName
+import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting as ModelApiAccessMethodSetting
import net.mullvad.mullvadvpn.lib.model.AppId
-import net.mullvad.mullvadvpn.lib.model.AppVersionInfo
-import net.mullvad.mullvadvpn.lib.model.AuthFailedError
-import net.mullvad.mullvadvpn.lib.model.Cipher
+import net.mullvad.mullvadvpn.lib.model.AppVersionInfo as ModelAppVersionInfo
+import net.mullvad.mullvadvpn.lib.model.AuthFailedError as ModelAuthFailedError
+import net.mullvad.mullvadvpn.lib.model.Cipher as ModelCipher
+import net.mullvad.mullvadvpn.lib.model.Constraint as ModelConstraint
import net.mullvad.mullvadvpn.lib.model.Constraint
-import net.mullvad.mullvadvpn.lib.model.CustomDnsOptions
-import net.mullvad.mullvadvpn.lib.model.CustomList
-import net.mullvad.mullvadvpn.lib.model.CustomListId
-import net.mullvad.mullvadvpn.lib.model.CustomListName
-import net.mullvad.mullvadvpn.lib.model.DaitaSettings
-import net.mullvad.mullvadvpn.lib.model.DefaultDnsOptions
-import net.mullvad.mullvadvpn.lib.model.Device
-import net.mullvad.mullvadvpn.lib.model.DeviceId
-import net.mullvad.mullvadvpn.lib.model.DeviceState
-import net.mullvad.mullvadvpn.lib.model.DnsOptions
-import net.mullvad.mullvadvpn.lib.model.DnsState
-import net.mullvad.mullvadvpn.lib.model.Endpoint
-import net.mullvad.mullvadvpn.lib.model.ErrorState
-import net.mullvad.mullvadvpn.lib.model.ErrorStateCause
-import net.mullvad.mullvadvpn.lib.model.FeatureIndicator
-import net.mullvad.mullvadvpn.lib.model.GeoIpLocation
-import net.mullvad.mullvadvpn.lib.model.GeoLocationId
-import net.mullvad.mullvadvpn.lib.model.IpVersion
-import net.mullvad.mullvadvpn.lib.model.Mtu
-import net.mullvad.mullvadvpn.lib.model.ObfuscationEndpoint
+import net.mullvad.mullvadvpn.lib.model.CustomDnsOptions as ModelCustomDnsOptions
+import net.mullvad.mullvadvpn.lib.model.CustomList as ModelCustomList
+import net.mullvad.mullvadvpn.lib.model.CustomListId as ModelCustomListId
+import net.mullvad.mullvadvpn.lib.model.CustomListName as ModelCustomListName
+import net.mullvad.mullvadvpn.lib.model.DaitaSettings as ModelDaitaSettings
+import net.mullvad.mullvadvpn.lib.model.DefaultDnsOptions as ModelDefaultDnsOptions
+import net.mullvad.mullvadvpn.lib.model.Device as ModelDevice
+import net.mullvad.mullvadvpn.lib.model.DeviceId as ModelDeviceId
+import net.mullvad.mullvadvpn.lib.model.DeviceState as ModelDeviceState
+import net.mullvad.mullvadvpn.lib.model.DnsOptions as ModelDnsOptions
+import net.mullvad.mullvadvpn.lib.model.DnsState as ModelDnsState
+import net.mullvad.mullvadvpn.lib.model.Endpoint as ModelEndpoint
+import net.mullvad.mullvadvpn.lib.model.ErrorState as ModelErrorState
+import net.mullvad.mullvadvpn.lib.model.ErrorStateCause as ModelErrorStateCause
+import net.mullvad.mullvadvpn.lib.model.FeatureIndicator as ModelFeatureIndicator
+import net.mullvad.mullvadvpn.lib.model.GeoIpLocation as ModelGeoIpLocation
+import net.mullvad.mullvadvpn.lib.model.GeoLocationId as ModelGeoLocationId
+import net.mullvad.mullvadvpn.lib.model.IpVersion as ModelIpVersion
+import net.mullvad.mullvadvpn.lib.model.Mtu as ModelMtu
+import net.mullvad.mullvadvpn.lib.model.ObfuscationEndpoint as ModelObfuscationEndpoint
+import net.mullvad.mullvadvpn.lib.model.ObfuscationMode as ModelObfuscationMode
import net.mullvad.mullvadvpn.lib.model.ObfuscationMode
-import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings
-import net.mullvad.mullvadvpn.lib.model.ObfuscationType
-import net.mullvad.mullvadvpn.lib.model.Ownership
-import net.mullvad.mullvadvpn.lib.model.ParameterGenerationError
-import net.mullvad.mullvadvpn.lib.model.PlayPurchasePaymentToken
+import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings as ModelObfuscationSettings
+import net.mullvad.mullvadvpn.lib.model.ObfuscationType as ModelObfuscationType
+import net.mullvad.mullvadvpn.lib.model.Ownership as ModelOwnership
+import net.mullvad.mullvadvpn.lib.model.ParameterGenerationError as ModelParameterGenerationError
+import net.mullvad.mullvadvpn.lib.model.PlayPurchasePaymentToken as ModelPlayPurchasePaymentToken
+import net.mullvad.mullvadvpn.lib.model.Port as ModelPort
import net.mullvad.mullvadvpn.lib.model.Port
-import net.mullvad.mullvadvpn.lib.model.PortRange
+import net.mullvad.mullvadvpn.lib.model.PortRange as ModelPortRange
+import net.mullvad.mullvadvpn.lib.model.ProviderId as ModelProviderId
import net.mullvad.mullvadvpn.lib.model.ProviderId
-import net.mullvad.mullvadvpn.lib.model.Providers
-import net.mullvad.mullvadvpn.lib.model.QuantumResistantState
+import net.mullvad.mullvadvpn.lib.model.Providers as ModelProviders
+import net.mullvad.mullvadvpn.lib.model.QuantumResistantState as ModelQuantumResistantState
import net.mullvad.mullvadvpn.lib.model.Quic
-import net.mullvad.mullvadvpn.lib.model.Recent
-import net.mullvad.mullvadvpn.lib.model.Recents
-import net.mullvad.mullvadvpn.lib.model.RedeemVoucherSuccess
-import net.mullvad.mullvadvpn.lib.model.RelayConstraints
-import net.mullvad.mullvadvpn.lib.model.RelayItem
-import net.mullvad.mullvadvpn.lib.model.RelayItemId
-import net.mullvad.mullvadvpn.lib.model.RelayList
-import net.mullvad.mullvadvpn.lib.model.RelayOverride
-import net.mullvad.mullvadvpn.lib.model.RelaySettings
-import net.mullvad.mullvadvpn.lib.model.Settings
-import net.mullvad.mullvadvpn.lib.model.ShadowsocksObfuscationSettings
-import net.mullvad.mullvadvpn.lib.model.SocksAuth
-import net.mullvad.mullvadvpn.lib.model.SplitTunnelSettings
-import net.mullvad.mullvadvpn.lib.model.TransportProtocol
-import net.mullvad.mullvadvpn.lib.model.TunnelEndpoint
-import net.mullvad.mullvadvpn.lib.model.TunnelOptions
-import net.mullvad.mullvadvpn.lib.model.TunnelState
-import net.mullvad.mullvadvpn.lib.model.Udp2TcpObfuscationSettings
-import net.mullvad.mullvadvpn.lib.model.WireguardConstraints
-import net.mullvad.mullvadvpn.lib.model.WireguardEndpointData
+import net.mullvad.mullvadvpn.lib.model.Recent as ModelRecent
+import net.mullvad.mullvadvpn.lib.model.Recents as ModelRecents
+import net.mullvad.mullvadvpn.lib.model.RedeemVoucherSuccess as ModelRedeemVoucherSuccess
+import net.mullvad.mullvadvpn.lib.model.RelayConstraints as ModelRelayConstraints
+import net.mullvad.mullvadvpn.lib.model.RelayItem as ModelRelayItem
+import net.mullvad.mullvadvpn.lib.model.RelayItemId as ModelRelayItemId
+import net.mullvad.mullvadvpn.lib.model.RelayList as ModelRelayList
+import net.mullvad.mullvadvpn.lib.model.RelayOverride as ModelRelayOverride
+import net.mullvad.mullvadvpn.lib.model.RelaySettings as ModelRelaySettings
+import net.mullvad.mullvadvpn.lib.model.Settings as ModelSettings
+import net.mullvad.mullvadvpn.lib.model.ShadowsocksObfuscationSettings as ModelShadowsocksObfuscationSettings
+import net.mullvad.mullvadvpn.lib.model.SocksAuth as ModelSocksAuth
+import net.mullvad.mullvadvpn.lib.model.SplitTunnelSettings as ModelSplitTunnelSettings
+import net.mullvad.mullvadvpn.lib.model.TransportProtocol as ModelTransportProtocol
+import net.mullvad.mullvadvpn.lib.model.TunnelEndpoint as ModelTunnelEndpoint
+import net.mullvad.mullvadvpn.lib.model.TunnelOptions as ModelTunnelOptions
+import net.mullvad.mullvadvpn.lib.model.TunnelState as ModelTunnelState
+import net.mullvad.mullvadvpn.lib.model.Udp2TcpObfuscationSettings as ModelUdp2TcpObfuscationSettings
+import net.mullvad.mullvadvpn.lib.model.WireguardConstraints as ModelWireguardConstraints
+import net.mullvad.mullvadvpn.lib.model.WireguardEndpointData as ModelWireguardEndpointData
-internal fun ManagementInterface.TunnelState.toDomain(): TunnelState =
- when (stateCase!!) {
- ManagementInterface.TunnelState.StateCase.DISCONNECTED -> disconnected.toDomain()
- ManagementInterface.TunnelState.StateCase.CONNECTING -> connecting.toDomain()
- ManagementInterface.TunnelState.StateCase.CONNECTED -> connected.toDomain()
- ManagementInterface.TunnelState.StateCase.DISCONNECTING -> disconnecting.toDomain()
- ManagementInterface.TunnelState.StateCase.ERROR -> error.toDomain()
- ManagementInterface.TunnelState.StateCase.STATE_NOT_SET ->
- TunnelState.Disconnected(location = disconnected.disconnectedLocation.toDomain())
+internal fun TunnelState.toDomain(): ModelTunnelState =
+ when {
+ disconnected != null -> disconnected.toDomain()
+ connecting != null -> connecting.toDomain()
+ connected != null -> connected.toDomain()
+ disconnecting != null -> disconnecting.toDomain()
+ error != null -> error.toDomain()
+ else -> error("Tunnelstate not supported")
}
-private fun ManagementInterface.TunnelState.Connecting.toDomain(): TunnelState.Connecting =
- TunnelState.Connecting(
- endpoint = relayInfo.tunnelEndpoint.toDomain(),
- location =
- if (relayInfo.hasLocation()) {
- relayInfo.location.toDomain()
- } else null,
- featureIndicators = featureIndicators.toDomain(),
+private fun TunnelState.Connecting.toDomain(): ModelTunnelState.Connecting =
+ ModelTunnelState.Connecting(
+ endpoint = relay_info?.tunnel_endpoint?.toDomain(),
+ location = relay_info?.location?.toDomain(),
+ featureIndicators = feature_indicators?.toDomain() ?: emptyList(),
)
-private fun ManagementInterface.TunnelState.Disconnected.toDomain(): TunnelState.Disconnected =
- TunnelState.Disconnected(
- location =
- if (hasDisconnectedLocation()) {
- disconnectedLocation.toDomain()
- } else null
- )
+private fun TunnelState.Disconnected.toDomain(): ModelTunnelState.Disconnected =
+ ModelTunnelState.Disconnected(location = disconnected_location?.toDomain())
-private fun ManagementInterface.TunnelState.Connected.toDomain(): TunnelState.Connected =
- TunnelState.Connected(
- endpoint = relayInfo.tunnelEndpoint.toDomain(),
- location =
- if (relayInfo.hasLocation()) {
- relayInfo.location.toDomain()
- } else {
- null
- },
- featureIndicators = featureIndicators.toDomain(),
+private fun TunnelState.Connected.toDomain(): ModelTunnelState.Connected =
+ ModelTunnelState.Connected(
+ endpoint = relay_info!!.tunnel_endpoint!!.toDomain(),
+ location = relay_info.location?.toDomain(),
+ featureIndicators = feature_indicators?.toDomain() ?: emptyList(),
)
-private fun ManagementInterface.TunnelState.Disconnecting.toDomain(): TunnelState.Disconnecting =
- TunnelState.Disconnecting(actionAfterDisconnect = afterDisconnect.toDomain())
+private fun TunnelState.Disconnecting.toDomain(): ModelTunnelState.Disconnecting =
+ ModelTunnelState.Disconnecting(actionAfterDisconnect = after_disconnect.toDomain())
-private fun ManagementInterface.TunnelState.Error.toDomain(): TunnelState.Error {
+private fun TunnelState.Error.toDomain(): ModelTunnelState.Error {
val otherAlwaysOnAppError =
- errorState.let {
- if (it.hasOtherAlwaysOnAppError()) {
- ErrorStateCause.OtherAlwaysOnApp(it.otherAlwaysOnAppError.appName)
+ error_state?.let {
+ if (it.other_always_on_app_error != null) {
+ ModelErrorStateCause.OtherAlwaysOnApp(it.other_always_on_app_error.app_name)
} else {
null
}
}
val invalidDnsServers =
- errorState.let {
- if (it.hasInvalidDnsServersError()) {
- ErrorStateCause.InvalidDnsServers(
- it.invalidDnsServersError.ipAddrsList.toList().map { InetAddress.getByName(it) }
+ error_state?.let {
+ if (it.invalid_dns_servers_error != null) {
+ ModelErrorStateCause.InvalidDnsServers(
+ it.invalid_dns_servers_error.ip_addrs.map { address ->
+ InetAddress.getByName(address)
+ }
)
} else {
null
}
}
- return TunnelState.Error(
+ return ModelTunnelState.Error(
errorState =
- errorState.toDomain(
+ error_state!!.toDomain(
otherAlwaysOnApp = otherAlwaysOnAppError,
invalidDnsServers = invalidDnsServers,
)
)
}
-internal fun ManagementInterface.GeoIpLocation.toDomain(): GeoIpLocation =
- GeoIpLocation(
+internal fun GeoIpLocation.toDomain(): ModelGeoIpLocation =
+ ModelGeoIpLocation(
ipv4 =
- if (hasIpv4()) {
+ if (ipv4 != null) {
InetAddress.getByName(ipv4)
} else {
null
},
ipv6 =
- if (hasIpv6()) {
+ if (ipv6 != null) {
InetAddress.getByName(ipv6)
} else {
null
},
country = country,
- city = if (hasCity()) city else null,
+ city = city,
latitude = latitude,
longitude = longitude,
- hostname = if (hasHostname()) hostname else null,
- entryHostname = if (hasEntryHostname()) entryHostname else null,
+ hostname = hostname,
+ entryHostname = entry_hostname,
)
-internal fun ManagementInterface.TunnelEndpoint.toDomain(): TunnelEndpoint =
- TunnelEndpoint(
+internal fun TunnelEndpoint.toDomain(): ModelTunnelEndpoint =
+ ModelTunnelEndpoint(
endpoint =
- Endpoint(address = address.toInetSocketAddress(), protocol = protocol.toDomain()),
+ ModelEndpoint(address = address.toInetSocketAddress(), protocol = protocol.toDomain()),
entryEndpoint =
- if (hasEntryEndpoint()) {
- Endpoint(
- address = entryEndpoint.address.toInetSocketAddress(),
- protocol = entryEndpoint.protocol.toDomain(),
+ if (entry_endpoint != null) {
+ ModelEndpoint(
+ address = entry_endpoint.address.toInetSocketAddress(),
+ protocol = entry_endpoint.protocol.toDomain(),
)
} else {
null
},
- quantumResistant = quantumResistant,
+ quantumResistant = quantum_resistant,
obfuscation =
- if (hasObfuscation() && obfuscation.hasSingle()) {
+ if (obfuscation != null && obfuscation.single != null) {
obfuscation.single.toDomain()
} else {
null
@@ -199,14 +234,14 @@ internal fun ManagementInterface.TunnelEndpoint.toDomain(): TunnelEndpoint =
daita = daita,
)
-internal fun ManagementInterface.ObfuscationEndpoint.toDomain(): ObfuscationEndpoint =
- ObfuscationEndpoint(
+internal fun ObfuscationEndpoint.toDomain(): ModelObfuscationEndpoint =
+ ModelObfuscationEndpoint(
endpoint =
- Endpoint(
- address = endpoint.address.toInetSocketAddress(),
+ ModelEndpoint(
+ address = endpoint!!.address.toInetSocketAddress(),
protocol = endpoint.protocol.toDomain(),
),
- obfuscationType = obfuscationType.toDomain(),
+ obfuscationType = obfuscation_type.toDomain(),
)
private fun String.toInetAddress(): InetAddress = InetAddress.getByName(this)
@@ -218,540 +253,474 @@ private fun String.toInetSocketAddress(): InetSocketAddress {
return InetSocketAddress(InetAddress.getByName(ipPart), portPart.toInt())
}
-internal fun ManagementInterface.ObfuscationEndpoint.ObfuscationType.toDomain(): ObfuscationType =
+internal fun ObfuscationEndpoint.ObfuscationType.toDomain(): ModelObfuscationType =
when (this) {
- ManagementInterface.ObfuscationEndpoint.ObfuscationType.UDP2TCP -> ObfuscationType.Udp2Tcp
- ManagementInterface.ObfuscationEndpoint.ObfuscationType.SHADOWSOCKS ->
- ObfuscationType.Shadowsocks
- ManagementInterface.ObfuscationEndpoint.ObfuscationType.QUIC -> ObfuscationType.Quic
- ManagementInterface.ObfuscationEndpoint.ObfuscationType.LWO -> ObfuscationType.Lwo
- ManagementInterface.ObfuscationEndpoint.ObfuscationType.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized obfuscation type")
+ ObfuscationEndpoint.ObfuscationType.UDP2TCP -> ModelObfuscationType.Udp2Tcp
+ ObfuscationEndpoint.ObfuscationType.SHADOWSOCKS -> ModelObfuscationType.Shadowsocks
+ ObfuscationEndpoint.ObfuscationType.QUIC -> ModelObfuscationType.Quic
+ ObfuscationEndpoint.ObfuscationType.LWO -> ModelObfuscationType.Lwo
}
-internal fun ManagementInterface.TransportProtocol.toDomain(): TransportProtocol =
+internal fun TransportProtocol.toDomain(): ModelTransportProtocol =
when (this) {
- ManagementInterface.TransportProtocol.TCP -> TransportProtocol.Tcp
- ManagementInterface.TransportProtocol.UDP -> TransportProtocol.Udp
- ManagementInterface.TransportProtocol.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized transport protocol")
+ TransportProtocol.TCP -> ModelTransportProtocol.Tcp
+ TransportProtocol.UDP -> ModelTransportProtocol.Udp
}
-internal fun ManagementInterface.AfterDisconnect.toDomain(): ActionAfterDisconnect =
+internal fun AfterDisconnect.toDomain(): ModelActionAfterDisconnect =
when (this) {
- ManagementInterface.AfterDisconnect.NOTHING -> ActionAfterDisconnect.Nothing
- ManagementInterface.AfterDisconnect.RECONNECT -> ActionAfterDisconnect.Reconnect
- ManagementInterface.AfterDisconnect.BLOCK -> ActionAfterDisconnect.Block
- ManagementInterface.AfterDisconnect.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized action after disconnect")
+ AfterDisconnect.NOTHING -> ModelActionAfterDisconnect.Nothing
+ AfterDisconnect.RECONNECT -> ModelActionAfterDisconnect.Reconnect
+ AfterDisconnect.BLOCK -> ModelActionAfterDisconnect.Block
}
-internal fun ManagementInterface.ErrorState.toDomain(
- otherAlwaysOnApp: ErrorStateCause.OtherAlwaysOnApp?,
- invalidDnsServers: ErrorStateCause.InvalidDnsServers?,
-): ErrorState =
- ErrorState(
+internal fun ErrorState.toDomain(
+ otherAlwaysOnApp: ModelErrorStateCause.OtherAlwaysOnApp?,
+ invalidDnsServers: ModelErrorStateCause.InvalidDnsServers?,
+): ModelErrorState =
+ ModelErrorState(
cause =
- when (cause!!) {
- ManagementInterface.ErrorState.Cause.AUTH_FAILED ->
- ErrorStateCause.AuthFailed(authFailedError.toDomain())
- ManagementInterface.ErrorState.Cause.IPV6_UNAVAILABLE ->
- ErrorStateCause.Ipv6Unavailable
- ManagementInterface.ErrorState.Cause.SET_FIREWALL_POLICY_ERROR ->
- policyError.toDomain()
- ManagementInterface.ErrorState.Cause.SET_DNS_ERROR -> ErrorStateCause.DnsError
- ManagementInterface.ErrorState.Cause.START_TUNNEL_ERROR ->
- ErrorStateCause.StartTunnelError
- ManagementInterface.ErrorState.Cause.TUNNEL_PARAMETER_ERROR ->
- ErrorStateCause.TunnelParameterError(parameterError.toDomain())
- ManagementInterface.ErrorState.Cause.IS_OFFLINE -> ErrorStateCause.IsOffline
- ManagementInterface.ErrorState.Cause.SPLIT_TUNNEL_ERROR ->
- ErrorStateCause.StartTunnelError
- ManagementInterface.ErrorState.Cause.UNRECOGNIZED,
- ManagementInterface.ErrorState.Cause.NEED_FULL_DISK_PERMISSIONS,
- ManagementInterface.ErrorState.Cause.CREATE_TUNNEL_DEVICE ->
+ when (cause) {
+ ErrorState.Cause.AUTH_FAILED ->
+ ModelErrorStateCause.AuthFailed(auth_failed_error.toDomain())
+ ErrorState.Cause.IPV6_UNAVAILABLE -> ModelErrorStateCause.Ipv6Unavailable
+ ErrorState.Cause.SET_FIREWALL_POLICY_ERROR if policy_error != null ->
+ policy_error.toDomain()
+ ErrorState.Cause.SET_DNS_ERROR -> ModelErrorStateCause.DnsError
+ ErrorState.Cause.START_TUNNEL_ERROR -> ModelErrorStateCause.StartTunnelError
+ ErrorState.Cause.TUNNEL_PARAMETER_ERROR ->
+ ModelErrorStateCause.TunnelParameterError(parameter_error.toDomain())
+ ErrorState.Cause.IS_OFFLINE -> ModelErrorStateCause.IsOffline
+ ErrorState.Cause.SPLIT_TUNNEL_ERROR -> ModelErrorStateCause.StartTunnelError
+ ErrorState.Cause.NEED_FULL_DISK_PERMISSIONS,
+ ErrorState.Cause.CREATE_TUNNEL_DEVICE ->
throw IllegalArgumentException("Unrecognized error state cause")
- ManagementInterface.ErrorState.Cause.NOT_PREPARED -> ErrorStateCause.NotPrepared
- ManagementInterface.ErrorState.Cause.OTHER_ALWAYS_ON_APP -> otherAlwaysOnApp!!
- ManagementInterface.ErrorState.Cause.OTHER_LEGACY_ALWAYS_ON_VPN ->
- ErrorStateCause.OtherLegacyAlwaysOnApp
- ManagementInterface.ErrorState.Cause.INVALID_DNS_SERVERS -> invalidDnsServers!!
+ ErrorState.Cause.NOT_PREPARED -> ModelErrorStateCause.NotPrepared
+ ErrorState.Cause.OTHER_ALWAYS_ON_APP -> otherAlwaysOnApp!!
+ ErrorState.Cause.OTHER_LEGACY_ALWAYS_ON_VPN ->
+ ModelErrorStateCause.OtherLegacyAlwaysOnApp
+ ErrorState.Cause.INVALID_DNS_SERVERS -> invalidDnsServers!!
+ else -> error("Invalid error state cause $cause")
},
- isBlocking = !hasBlockingError(),
+ isBlocking = blocking_error != null,
)
-private fun ManagementInterface.ErrorState.AuthFailedError.toDomain(): AuthFailedError =
+private fun ErrorState.AuthFailedError.toDomain(): ModelAuthFailedError =
when (this) {
- ManagementInterface.ErrorState.AuthFailedError.UNKNOWN -> AuthFailedError.Unknown
- ManagementInterface.ErrorState.AuthFailedError.INVALID_ACCOUNT ->
- AuthFailedError.InvalidAccount
- ManagementInterface.ErrorState.AuthFailedError.EXPIRED_ACCOUNT ->
- AuthFailedError.ExpiredAccount
- ManagementInterface.ErrorState.AuthFailedError.TOO_MANY_CONNECTIONS ->
- AuthFailedError.TooManyConnections
- ManagementInterface.ErrorState.AuthFailedError.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized auth failed error")
+ ErrorState.AuthFailedError.UNKNOWN -> ModelAuthFailedError.Unknown
+ ErrorState.AuthFailedError.INVALID_ACCOUNT -> ModelAuthFailedError.InvalidAccount
+ ErrorState.AuthFailedError.EXPIRED_ACCOUNT -> ModelAuthFailedError.ExpiredAccount
+ ErrorState.AuthFailedError.TOO_MANY_CONNECTIONS -> ModelAuthFailedError.TooManyConnections
}
-internal fun ManagementInterface.ErrorState.FirewallPolicyError.toDomain():
- ErrorStateCause.FirewallPolicyError =
- when (type!!) {
- ManagementInterface.ErrorState.FirewallPolicyError.ErrorType.GENERIC ->
- ErrorStateCause.FirewallPolicyError.Generic
- ManagementInterface.ErrorState.FirewallPolicyError.ErrorType.LOCKED,
- ManagementInterface.ErrorState.FirewallPolicyError.ErrorType.UNRECOGNIZED ->
+internal fun ErrorState.FirewallPolicyError.toDomain(): ModelErrorStateCause.FirewallPolicyError =
+ when (type) {
+ ErrorState.FirewallPolicyError.ErrorType.GENERIC ->
+ ModelErrorStateCause.FirewallPolicyError.Generic
+ ErrorState.FirewallPolicyError.ErrorType.LOCKED ->
throw IllegalArgumentException("Unrecognized firewall policy error")
}
-internal fun ManagementInterface.ErrorState.GenerationError.toDomain(): ParameterGenerationError =
+internal fun ErrorState.GenerationError.toDomain(): ModelParameterGenerationError =
when (this) {
- ManagementInterface.ErrorState.GenerationError.NO_MATCHING_RELAY_ENTRY ->
- ParameterGenerationError.NoMatchingRelayEntry
- ManagementInterface.ErrorState.GenerationError.NO_MATCHING_RELAY_EXIT ->
- ParameterGenerationError.NoMatchingRelayExit
- ManagementInterface.ErrorState.GenerationError.NO_MATCHING_RELAY ->
- ParameterGenerationError.NoMatchingRelay
- ManagementInterface.ErrorState.GenerationError.NO_MATCHING_BRIDGE_RELAY ->
- ParameterGenerationError.NoMatchingBridgeRelay
- ManagementInterface.ErrorState.GenerationError.CUSTOM_TUNNEL_HOST_RESOLUTION_ERROR ->
- ParameterGenerationError.CustomTunnelHostResolutionError
- ManagementInterface.ErrorState.GenerationError.NETWORK_IPV4_UNAVAILABLE ->
- ParameterGenerationError.Ipv4_Unavailable
- ManagementInterface.ErrorState.GenerationError.NETWORK_IPV6_UNAVAILABLE ->
- ParameterGenerationError.Ipv6_Unavailable
- ManagementInterface.ErrorState.GenerationError.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized parameter generation error")
+ ErrorState.GenerationError.NO_MATCHING_RELAY_ENTRY ->
+ ModelParameterGenerationError.NoMatchingRelayEntry
+ ErrorState.GenerationError.NO_MATCHING_RELAY_EXIT ->
+ ModelParameterGenerationError.NoMatchingRelayExit
+ ErrorState.GenerationError.NO_MATCHING_RELAY ->
+ ModelParameterGenerationError.NoMatchingRelay
+ ErrorState.GenerationError.NO_MATCHING_BRIDGE_RELAY ->
+ ModelParameterGenerationError.NoMatchingBridgeRelay
+ ErrorState.GenerationError.CUSTOM_TUNNEL_HOST_RESOLUTION_ERROR ->
+ ModelParameterGenerationError.CustomTunnelHostResolutionError
+ ErrorState.GenerationError.NETWORK_IPV4_UNAVAILABLE ->
+ ModelParameterGenerationError.Ipv4_Unavailable
+ ErrorState.GenerationError.NETWORK_IPV6_UNAVAILABLE ->
+ ModelParameterGenerationError.Ipv6_Unavailable
}
-internal fun ManagementInterface.Settings.toDomain(): Settings =
- Settings(
- relaySettings = relaySettings.toDomain(),
- obfuscationSettings = obfuscationSettings.toDomain(),
- customLists = customLists.customListsList.map { it.toDomain() },
- allowLan = allowLan,
- tunnelOptions = tunnelOptions.toDomain(),
- relayOverrides = relayOverridesList.map { it.toDomain() },
- showBetaReleases = showBetaReleases,
- splitTunnelSettings = splitTunnel.toDomain(),
- apiAccessMethodSettings = apiAccessMethods.toDomain(),
- recents = recentsOrNull.toDomain(),
+internal fun Settings.toDomain(): ModelSettings =
+ ModelSettings(
+ relaySettings = relay_settings!!.toDomain(),
+ obfuscationSettings = obfuscation_settings!!.toDomain(),
+ customLists = custom_lists?.custom_lists?.map { it.toDomain() } ?: emptyList(),
+ allowLan = allow_lan,
+ tunnelOptions = tunnel_options!!.toDomain(),
+ relayOverrides = relay_overrides.map { it.toDomain() },
+ showBetaReleases = show_beta_releases,
+ splitTunnelSettings = split_tunnel!!.toDomain(),
+ apiAccessMethodSettings = api_access_methods!!.toDomain(),
+ recents = recents.toDomain(),
)
-internal fun ManagementInterface.RelayOverride.toDomain(): RelayOverride =
- RelayOverride(
+internal fun RelayOverride.toDomain(): ModelRelayOverride =
+ ModelRelayOverride(
hostname = hostname,
- ipv4AddressIn = if (hasIpv4AddrIn()) InetAddress.getByName(ipv4AddrIn) else null,
- ipv6AddressIn = if (hasIpv6AddrIn()) InetAddress.getByName(ipv6AddrIn) else null,
+ ipv4AddressIn = if (ipv4_addr_in != null) InetAddress.getByName(ipv4_addr_in) else null,
+ ipv6AddressIn = if (ipv6_addr_in != null) InetAddress.getByName(ipv6_addr_in) else null,
)
-internal fun ManagementInterface.RelaySettings.toDomain(): RelaySettings =
- when (endpointCase) {
- ManagementInterface.RelaySettings.EndpointCase.CUSTOM ->
- throw IllegalArgumentException("CustomTunnelEndpoint is not supported")
- ManagementInterface.RelaySettings.EndpointCase.NORMAL -> RelaySettings(normal.toDomain())
- ManagementInterface.RelaySettings.EndpointCase.ENDPOINT_NOT_SET ->
- throw IllegalArgumentException("RelaySettings endpoint not set")
+internal fun RelaySettings.toDomain(): ModelRelaySettings =
+ when {
+ custom != null -> throw IllegalArgumentException("CustomTunnelEndpoint is not supported")
+ normal != null -> ModelRelaySettings(normal.toDomain())
else -> throw NullPointerException("RelaySettings endpoint is null")
}
-internal fun ManagementInterface.NormalRelaySettings.toDomain(): RelayConstraints =
- RelayConstraints(
- location = locationOrNull?.toDomain() ?: Constraint.Any,
- providers = providersList.toDomain(),
+internal fun NormalRelaySettings.toDomain(): ModelRelayConstraints =
+ ModelRelayConstraints(
+ location = location?.toDomain() ?: ModelConstraint.Any,
+ providers = providers.toDomain(),
ownership = ownership.toDomain(),
- wireguardConstraints = wireguardConstraints.toDomain(),
+ wireguardConstraints = wireguard_constraints!!.toDomain(),
)
-internal fun ManagementInterface.LocationConstraint.toDomain(): Constraint<RelayItemId> =
- when (typeCase) {
- ManagementInterface.LocationConstraint.TypeCase.CUSTOM_LIST ->
- Constraint.Only(CustomListId(customList))
- ManagementInterface.LocationConstraint.TypeCase.LOCATION ->
- Constraint.Only(location.toDomain())
- ManagementInterface.LocationConstraint.TypeCase.TYPE_NOT_SET -> Constraint.Any
+internal fun LocationConstraint.toDomain(): ModelConstraint<ModelRelayItemId> =
+ when {
+ custom_list != null -> ModelConstraint.Only(ModelCustomListId(custom_list))
+ location != null -> ModelConstraint.Only(location.toDomain())
else -> throw IllegalArgumentException("Invalid location constraint")
}
@Suppress("ReturnCount")
-internal fun ManagementInterface.GeographicLocationConstraint.toDomain(): GeoLocationId {
- val country = GeoLocationId.Country(country)
- if (!hasCity()) {
+internal fun GeographicLocationConstraint.toDomain(): ModelGeoLocationId {
+ val country = ModelGeoLocationId.Country(country)
+ if (city == null) {
return country
}
- val city = GeoLocationId.City(country, city)
- if (!hasHostname()) {
+ val city = ModelGeoLocationId.City(country, city)
+ if (hostname == null) {
return city
}
- return GeoLocationId.Hostname(city, hostname)
+ return ModelGeoLocationId.Hostname(city, hostname)
}
-internal fun List<String>.toDomain(): Constraint<Providers> =
- if (isEmpty()) Constraint.Any else Constraint.Only(map { ProviderId(it) }.toSet())
+internal fun List<String>.toDomain(): ModelConstraint<ModelProviders> =
+ if (isEmpty()) ModelConstraint.Any
+ else ModelConstraint.Only(map { ModelProviderId(it) }.toSet())
-internal fun ManagementInterface.WireguardConstraints.toDomain(): WireguardConstraints =
- WireguardConstraints(
- isMultihopEnabled = useMultihop,
- entryLocation = entryLocationOrNull?.toDomain() ?: Constraint.Any,
+internal fun WireguardConstraints.toDomain(): ModelWireguardConstraints =
+ ModelWireguardConstraints(
+ isMultihopEnabled = use_multihop,
+ entryLocation = entry_location?.toDomain() ?: ModelConstraint.Any,
ipVersion =
- if (hasIpVersion()) {
- Constraint.Only(ipVersion.toDomain())
+ if (ip_version != null) {
+ ModelConstraint.Only(ip_version.toDomain())
} else {
- Constraint.Any
+ ModelConstraint.Any
},
)
-internal fun ManagementInterface.Ownership.toDomain(): Constraint<Ownership> =
+internal fun Ownership.toDomain(): ModelConstraint<ModelOwnership> =
when (this) {
- ManagementInterface.Ownership.ANY -> Constraint.Any
- ManagementInterface.Ownership.MULLVAD_OWNED -> Constraint.Only(Ownership.MullvadOwned)
- ManagementInterface.Ownership.RENTED -> Constraint.Only(Ownership.Rented)
- ManagementInterface.Ownership.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized ownership")
+ Ownership.ANY -> ModelConstraint.Any
+ Ownership.MULLVAD_OWNED -> ModelConstraint.Only(ModelOwnership.MullvadOwned)
+ Ownership.RENTED -> ModelConstraint.Only(ModelOwnership.Rented)
}
-internal fun ManagementInterface.ObfuscationSettings.toDomain(): ObfuscationSettings =
- ObfuscationSettings(
- selectedObfuscationMode = selectedObfuscation.toDomain(),
- udp2tcp = udp2Tcp.toDomain(),
- shadowsocks = shadowsocks.toDomain(),
- wireguardPort = wireguardPort.toDomain(),
+internal fun ObfuscationSettings.toDomain(): ModelObfuscationSettings =
+ ModelObfuscationSettings(
+ selectedObfuscationMode = selected_obfuscation.toDomain(),
+ udp2tcp = udp2tcp!!.toDomain(),
+ shadowsocks = shadowsocks!!.toDomain(),
+ wireguardPort = wireguard_port!!.toDomain(),
)
-internal fun ManagementInterface.ObfuscationSettings.SelectedObfuscation.toDomain():
- ObfuscationMode =
+internal fun ObfuscationSettings.SelectedObfuscation.toDomain(): ModelObfuscationMode =
when (this) {
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.AUTO -> ObfuscationMode.Auto
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.OFF -> ObfuscationMode.Off
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.UDP2TCP ->
- ObfuscationMode.Udp2Tcp
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS ->
- ObfuscationMode.Shadowsocks
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.QUIC -> ObfuscationMode.Quic
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.LWO -> ObfuscationMode.Lwo
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.WIREGUARD_PORT ->
- ObfuscationMode.WireguardPort
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized selected obfuscation")
+ ObfuscationSettings.SelectedObfuscation.AUTO -> ObfuscationMode.Auto
+ ObfuscationSettings.SelectedObfuscation.OFF -> ObfuscationMode.Off
+ ObfuscationSettings.SelectedObfuscation.UDP2TCP -> ObfuscationMode.Udp2Tcp
+ ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS -> ObfuscationMode.Shadowsocks
+ ObfuscationSettings.SelectedObfuscation.QUIC -> ObfuscationMode.Quic
+ ObfuscationSettings.SelectedObfuscation.LWO -> ObfuscationMode.Lwo
+ ObfuscationSettings.SelectedObfuscation.WIREGUARD_PORT -> ObfuscationMode.WireguardPort
}
-internal fun ManagementInterface.ObfuscationSettings.Udp2TcpObfuscation.toDomain():
- Udp2TcpObfuscationSettings =
- if (hasPort()) {
- Udp2TcpObfuscationSettings(Constraint.Only(Port(port)))
+internal fun ObfuscationSettings.Udp2TcpObfuscation.toDomain(): ModelUdp2TcpObfuscationSettings =
+ if (port != null) {
+ ModelUdp2TcpObfuscationSettings(Constraint.Only(Port(port)))
} else {
- Udp2TcpObfuscationSettings(Constraint.Any)
+ ModelUdp2TcpObfuscationSettings(ModelConstraint.Any)
}
-internal fun ManagementInterface.ObfuscationSettings.Shadowsocks.toDomain():
- ShadowsocksObfuscationSettings =
- if (hasPort()) {
- ShadowsocksObfuscationSettings(Constraint.Only(Port(port)))
+internal fun ObfuscationSettings.Shadowsocks.toDomain(): ModelShadowsocksObfuscationSettings =
+ if (port != null) {
+ ModelShadowsocksObfuscationSettings(Constraint.Only(Port(port)))
} else {
- ShadowsocksObfuscationSettings(Constraint.Any)
+ ModelShadowsocksObfuscationSettings(Constraint.Any)
}
-internal fun ManagementInterface.ObfuscationSettings.WireguardPort.toDomain(): Constraint<Port> =
- if (hasPort()) {
+internal fun ObfuscationSettings.WireguardPort.toDomain(): Constraint<Port> =
+ if (port != null) {
Constraint.Only(Port(port))
} else {
Constraint.Any
}
-internal fun ManagementInterface.CustomList.toDomain(): CustomList =
- CustomList(
- id = CustomListId(id),
- name = CustomListName.fromString(name),
- locations = locationsList.map { it.toDomain() },
+internal fun CustomList.toDomain(): ModelCustomList =
+ ModelCustomList(
+ id = ModelCustomListId(id),
+ name = ModelCustomListName.fromString(name),
+ locations = locations.map { it.toDomain() },
)
-internal fun ManagementInterface.TunnelOptions.toDomain(): TunnelOptions =
- TunnelOptions(
- mtu = if (hasMtu()) Mtu(mtu) else null,
- quantumResistant = quantumResistant.toDomain(),
- daitaSettings = daita.toDomain(),
- dnsOptions = dnsOptions.toDomain(),
- enableIpv6 = enableIpv6,
+internal fun TunnelOptions.toDomain(): ModelTunnelOptions =
+ ModelTunnelOptions(
+ mtu = if (mtu != null) ModelMtu(mtu) else null,
+ quantumResistant = quantum_resistant!!.toDomain(),
+ daitaSettings = daita!!.toDomain(),
+ dnsOptions = dns_options!!.toDomain(),
+ enableIpv6 = enable_ipv6,
)
-internal fun ManagementInterface.DaitaSettings.toDomain(): DaitaSettings =
- DaitaSettings(enabled = enabled, directOnly = directOnly)
+internal fun DaitaSettings.toDomain(): ModelDaitaSettings =
+ ModelDaitaSettings(enabled = enabled, directOnly = direct_only)
-internal fun ManagementInterface.QuantumResistantState.toDomain(): QuantumResistantState =
+internal fun QuantumResistantState.toDomain(): ModelQuantumResistantState =
when (state) {
- ManagementInterface.QuantumResistantState.State.ON -> QuantumResistantState.On
- ManagementInterface.QuantumResistantState.State.OFF -> QuantumResistantState.Off
- ManagementInterface.QuantumResistantState.State.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized quantum resistant state")
- else -> throw NullPointerException("Quantum resistant state is null")
+ QuantumResistantState.State.ON -> ModelQuantumResistantState.On
+ QuantumResistantState.State.OFF -> ModelQuantumResistantState.Off
}
-internal fun ManagementInterface.DnsOptions.toDomain(): DnsOptions =
- DnsOptions(
+internal fun DnsOptions.toDomain(): ModelDnsOptions =
+ ModelDnsOptions(
state = state.toDomain(),
- defaultOptions = defaultOptions.toDomain(),
- customOptions = customOptions.toDomain(),
+ defaultOptions = default_options!!.toDomain(),
+ customOptions = custom_options!!.toDomain(),
)
-internal fun ManagementInterface.DnsOptions.DnsState.toDomain(): DnsState =
+internal fun DnsOptions.DnsState.toDomain(): ModelDnsState =
when (this) {
- ManagementInterface.DnsOptions.DnsState.DEFAULT -> DnsState.Default
- ManagementInterface.DnsOptions.DnsState.CUSTOM -> DnsState.Custom
- ManagementInterface.DnsOptions.DnsState.UNRECOGNIZED ->
- throw IllegalArgumentException("Unrecognized dns state")
+ DnsOptions.DnsState.DEFAULT -> ModelDnsState.Default
+ DnsOptions.DnsState.CUSTOM -> ModelDnsState.Custom
}
-internal fun ManagementInterface.DefaultDnsOptions.toDomain() =
- DefaultDnsOptions(
- blockAds = blockAds,
- blockMalware = blockMalware,
- blockAdultContent = blockAdultContent,
- blockGambling = blockGambling,
- blockSocialMedia = blockSocialMedia,
- blockTrackers = blockTrackers,
+internal fun DefaultDnsOptions.toDomain() =
+ ModelDefaultDnsOptions(
+ blockAds = block_ads,
+ blockMalware = block_malware,
+ blockAdultContent = block_adult_content,
+ blockGambling = block_gambling,
+ blockSocialMedia = block_social_media,
+ blockTrackers = block_trackers,
)
-internal fun ManagementInterface.CustomDnsOptions.toDomain() =
- CustomDnsOptions(addressesList.map { InetAddress.getByName(it) })
-
-internal fun QuantumResistantState.toDomain(): ManagementInterface.QuantumResistantState =
- ManagementInterface.QuantumResistantState.newBuilder()
- .setState(
- when (this) {
- QuantumResistantState.On -> ManagementInterface.QuantumResistantState.State.ON
- QuantumResistantState.Off -> ManagementInterface.QuantumResistantState.State.OFF
- }
- )
- .build()
+internal fun CustomDnsOptions.toDomain() =
+ ModelCustomDnsOptions(addresses.map { InetAddress.getByName(it) })
-internal fun ManagementInterface.AppVersionInfo.toDomain(): AppVersionInfo =
- AppVersionInfo(
- supported = supported,
- suggestedUpgrade = if (hasSuggestedUpgrade()) suggestedUpgrade.version else null,
- )
+internal fun AppVersionInfo.toDomain(): ModelAppVersionInfo =
+ ModelAppVersionInfo(supported = supported, suggestedUpgrade = suggested_upgrade?.version)
-internal fun ConnectivityState.toDomain(): GrpcConnectivityState =
- when (this) {
- ConnectivityState.CONNECTING -> GrpcConnectivityState.Connecting
- ConnectivityState.READY -> GrpcConnectivityState.Ready
- ConnectivityState.IDLE -> GrpcConnectivityState.Idle
- ConnectivityState.TRANSIENT_FAILURE -> GrpcConnectivityState.TransientFailure
- ConnectivityState.SHUTDOWN -> GrpcConnectivityState.Shutdown
- }
+/*internal fun ConnectivityState.toDomain(): GrpcConnectivityState =
+when (this) {
+ ConnectivityState.CONNECTING -> GrpcConnectivityState.Connecting
+ ConnectivityState.READY -> GrpcConnectivityState.Ready
+ ConnectivityState.IDLE -> GrpcConnectivityState.Idle
+ ConnectivityState.TRANSIENT_FAILURE -> GrpcConnectivityState.TransientFailure
+ ConnectivityState.SHUTDOWN -> GrpcConnectivityState.Shutdown
+}*/
-internal fun ManagementInterface.RelayList.toDomain(): RelayList =
- RelayList(countriesList.toDomain(), endpointData.toDomain())
+internal fun RelayList.toDomain(): ModelRelayList =
+ ModelRelayList(countries.toDomain(), endpoint_data!!.toDomain())
-internal fun ManagementInterface.WireguardEndpointData.toDomain(): WireguardEndpointData =
- WireguardEndpointData(
- portRangesList.map { it.toDomain() },
- shadowsocksPortRangesList.map { it.toDomain() },
+internal fun WireguardEndpointData.toDomain(): ModelWireguardEndpointData =
+ ModelWireguardEndpointData(
+ port_ranges.map { it.toDomain() },
+ shadowsocks_port_ranges.map { it.toDomain() },
)
-internal fun ManagementInterface.PortRange.toDomain(): PortRange = PortRange(first..last)
+internal fun PortRange.toDomain(): ModelPortRange = ModelPortRange(first..last)
/**
- * Convert from a list of ManagementInterface.RelayListCountry to a model.RelayList. Non-wireguard
- * relays are filtered out. So are also cities that only contains non-wireguard relays and countries
- * that does not have any cities. Countries, cities and relays are ordered by name.
+ * Convert from a list of RelayListCountry to a model.RelayList. Non-wireguard relays are filtered
+ * out. So are also cities that only contains non-wireguard relays and countries that does not have
+ * any cities. Countries, cities and relays are ordered by name.
*/
-internal fun List<ManagementInterface.RelayListCountry>.toDomain():
- List<RelayItem.Location.Country> =
- map(ManagementInterface.RelayListCountry::toDomain)
- .filter { it.cities.isNotEmpty() }
- .sortedBy { it.name }
+internal fun List<RelayListCountry>.toDomain(): List<ModelRelayItem.Location.Country> =
+ map(RelayListCountry::toDomain).filter { it.cities.isNotEmpty() }.sortedBy { it.name }
-internal fun ManagementInterface.RelayListCountry.toDomain(): RelayItem.Location.Country {
- val countryCode = GeoLocationId.Country(code)
- return RelayItem.Location.Country(
+internal fun RelayListCountry.toDomain(): ModelRelayItem.Location.Country {
+ val countryCode = ModelGeoLocationId.Country(code)
+ return ModelRelayItem.Location.Country(
countryCode,
name,
- citiesList
+ cities
.map { city -> city.toDomain(countryCode) }
.filter { it.relays.isNotEmpty() }
.sortedBy { it.name },
)
}
-internal fun ManagementInterface.RelayListCity.toDomain(
- countryCode: GeoLocationId.Country
-): RelayItem.Location.City {
- val cityCode = GeoLocationId.City(countryCode, code)
- return RelayItem.Location.City(
+internal fun RelayListCity.toDomain(
+ countryCode: ModelGeoLocationId.Country
+): ModelRelayItem.Location.City {
+ val cityCode = ModelGeoLocationId.City(countryCode, code)
+ return ModelRelayItem.Location.City(
name = name,
id = cityCode,
- relays = relaysList.map { it.toDomain(cityCode) }.sortedWith(RelayNameComparator),
+ relays = relays.map { it.toDomain(cityCode) }.sortedWith(RelayNameComparator),
)
}
-internal fun ManagementInterface.Relay.toDomain(
- cityCode: GeoLocationId.City
-): RelayItem.Location.Relay =
- RelayItem.Location.Relay(
- id = GeoLocationId.Hostname(cityCode, hostname),
+internal fun Relay.toDomain(cityCode: ModelGeoLocationId.City): ModelRelayItem.Location.Relay =
+ ModelRelayItem.Location.Relay(
+ id = ModelGeoLocationId.Hostname(cityCode, hostname),
active = active,
provider = ProviderId(provider),
- ownership = if (owned) Ownership.MullvadOwned else Ownership.Rented,
- daita = endpointData.daita,
- quic =
- if (endpointData.hasQuic()) {
- endpointData.quic.toDomain()
- } else {
- null
- },
- lwo = endpointData.lwo,
+ ownership = if (owned) ModelOwnership.MullvadOwned else ModelOwnership.Rented,
+ daita = endpoint_data?.daita ?: false,
+ quic = endpoint_data?.quic?.toDomain(),
+ lwo = endpoint_data?.lwo ?: false,
)
-private fun ManagementInterface.Relay.WireguardEndpoint.Quic.toDomain(): Quic =
- Quic(inAddresses = addrInList.map { it.toInetAddress() })
+private fun Relay.WireguardEndpoint.Quic.toDomain(): Quic =
+ Quic(inAddresses = addr_in.map { it.toInetAddress() })
private fun Instant.atDefaultZone() = atZone(ZoneId.systemDefault())
-internal fun ManagementInterface.Device.toDomain(): Device =
- Device(DeviceId.fromString(id), name, Instant.ofEpochSecond(created.seconds).atDefaultZone())
+internal fun Device.toDomain(): ModelDevice =
+ ModelDevice(ModelDeviceId.fromString(id), name, created!!.atDefaultZone())
-internal fun ManagementInterface.DeviceState.toDomain(): DeviceState =
+internal fun DeviceState.toDomain(): ModelDeviceState =
when (state) {
- ManagementInterface.DeviceState.State.LOGGED_IN ->
- DeviceState.LoggedIn(AccountNumber(device.accountNumber), device.device.toDomain())
- ManagementInterface.DeviceState.State.LOGGED_OUT -> DeviceState.LoggedOut
- ManagementInterface.DeviceState.State.REVOKED -> DeviceState.Revoked
- ManagementInterface.DeviceState.State.UNRECOGNIZED ->
- throw IllegalArgumentException("Non valid device state")
+ DeviceState.State.LOGGED_IN if device != null && device.device != null ->
+ ModelDeviceState.LoggedIn(
+ ModelAccountNumber(device.account_number),
+ device.device.toDomain(),
+ )
+ DeviceState.State.LOGGED_OUT -> ModelDeviceState.LoggedOut
+ DeviceState.State.REVOKED -> ModelDeviceState.Revoked
else -> throw NullPointerException("Device state is null")
}
-internal fun ManagementInterface.AccountData.toDomain(accountNumber: AccountNumber): AccountData =
- AccountData(
+internal fun AccountData.toDomain(accountNumber: ModelAccountNumber): ModelAccountData =
+ ModelAccountData(
id = AccountId(UUID.fromString(id)),
accountNumber = accountNumber,
- expiryDate = Instant.ofEpochSecond(expiry.seconds).atDefaultZone(),
+ expiryDate = expiry!!.atDefaultZone(),
)
-internal fun ManagementInterface.VoucherSubmission.toDomain(): RedeemVoucherSuccess =
- RedeemVoucherSuccess(
- timeAdded = secondsAdded,
- newExpiryDate = Instant.ofEpochSecond(newExpiry.seconds).atDefaultZone(),
+internal fun VoucherSubmission.toDomain(): ModelRedeemVoucherSuccess =
+ ModelRedeemVoucherSuccess(
+ timeAdded = seconds_added,
+ newExpiryDate = new_expiry!!.atDefaultZone(),
)
-internal fun ManagementInterface.SplitTunnelSettings.toDomain(): SplitTunnelSettings =
- SplitTunnelSettings(
- enabled = enableExclusions,
- excludedApps = appsList.map { AppId(it) }.toSet(),
+internal fun SplitTunnelSettings.toDomain(): ModelSplitTunnelSettings =
+ ModelSplitTunnelSettings(
+ enabled = enable_exclusions,
+ excludedApps = apps.map { AppId(it) }.toSet(),
)
-internal fun ManagementInterface.PlayPurchasePaymentToken.toDomain(): PlayPurchasePaymentToken =
- PlayPurchasePaymentToken(value = token)
+internal fun PlayPurchasePaymentToken.toDomain(): ModelPlayPurchasePaymentToken =
+ ModelPlayPurchasePaymentToken(value = token)
-internal fun ManagementInterface.ApiAccessMethodSettings.toDomain(): List<ApiAccessMethodSetting> =
- buildList {
+internal fun ApiAccessMethodSettings.toDomain(): List<ModelApiAccessMethodSetting> = buildList {
+ if (direct != null) {
add(direct.toDomain())
- add(mullvadBridges.toDomain())
- add(encryptedDnsProxy.toDomain())
- addAll(customList.map { it.toDomain() })
}
+ if (mullvad_bridges != null) {
+ add(mullvad_bridges.toDomain())
+ }
+ if (encrypted_dns_proxy != null) {
+ add(encrypted_dns_proxy.toDomain())
+ }
+ addAll(custom.map { it.toDomain() })
+}
-internal fun ManagementInterface.AccessMethodSetting.toDomain(): ApiAccessMethodSetting =
- ApiAccessMethodSetting(
- id = ApiAccessMethodId.fromString(id.value),
- name = ApiAccessMethodName.fromString(name),
+internal fun AccessMethodSetting.toDomain(): ModelApiAccessMethodSetting =
+ ModelApiAccessMethodSetting(
+ id = ModelApiAccessMethodId.fromString(id!!.value_),
+ name = ModelApiAccessMethodName.fromString(name),
enabled = enabled,
- apiAccessMethod = accessMethod.toDomain(),
+ apiAccessMethod = access_method.toDomain(),
)
-internal fun ManagementInterface.AccessMethod.toDomain(): ApiAccessMethod =
+internal fun AccessMethod?.toDomain(): ModelApiAccessMethod =
when {
- hasDirect() -> ApiAccessMethod.Direct
- hasBridges() -> ApiAccessMethod.Bridges
- hasEncryptedDnsProxy() -> ApiAccessMethod.EncryptedDns
- hasCustom() -> custom.toDomain()
+ this == null -> error("Access method is null")
+ direct != null -> ModelApiAccessMethod.Direct
+ bridges != null -> ModelApiAccessMethod.Bridges
+ encrypted_dns_proxy != null -> ModelApiAccessMethod.EncryptedDns
+ custom != null -> custom.toDomain()
else -> error("Type not found")
}
-internal fun ManagementInterface.CustomProxy.toDomain(): ApiAccessMethod.CustomProxy =
+internal fun CustomProxy.toDomain(): ModelApiAccessMethod.CustomProxy =
when {
- hasShadowsocks() -> shadowsocks.toDomain()
- hasSocks5Remote() -> socks5Remote.toDomain()
- hasSocks5Local() -> error("Socks5 local not supported")
+ shadowsocks != null -> shadowsocks.toDomain()
+ socks5remote != null -> socks5remote.toDomain()
+ socks5local != null -> error("Socks5 local not supported")
else -> error("Custom proxy not found")
}
-internal fun ManagementInterface.Shadowsocks.toDomain(): ApiAccessMethod.CustomProxy.Shadowsocks =
- ApiAccessMethod.CustomProxy.Shadowsocks(
+internal fun Shadowsocks.toDomain(): ModelApiAccessMethod.CustomProxy.Shadowsocks =
+ ModelApiAccessMethod.CustomProxy.Shadowsocks(
ip = ip,
- port = Port(port),
+ port = ModelPort(port),
password = password,
- cipher = Cipher.fromString(cipher),
+ cipher = ModelCipher.fromString(cipher),
)
-internal fun ManagementInterface.Socks5Remote.toDomain(): ApiAccessMethod.CustomProxy.Socks5Remote =
- ApiAccessMethod.CustomProxy.Socks5Remote(
+internal fun Socks5Remote.toDomain(): ModelApiAccessMethod.CustomProxy.Socks5Remote =
+ ModelApiAccessMethod.CustomProxy.Socks5Remote(
ip = ip,
- port = Port(port),
- auth =
- if (hasAuth()) {
- auth.toDomain()
- } else {
- null
- },
+ port = ModelPort(port),
+ auth = auth?.toDomain(),
)
-internal fun ManagementInterface.SocksAuth.toDomain(): SocksAuth =
- SocksAuth(username = username, password = password)
+internal fun SocksAuth.toDomain(): ModelSocksAuth =
+ ModelSocksAuth(username = username, password = password)
-internal fun ManagementInterface.FeatureIndicators.toDomain(): List<FeatureIndicator> =
- activeFeaturesList.map { it.toDomain() }.sorted()
+internal fun FeatureIndicators.toDomain(): List<ModelFeatureIndicator> =
+ active_features.map { it.toDomain() }.sorted()
@Suppress("ComplexMethod")
-internal fun ManagementInterface.FeatureIndicator.toDomain() =
+internal fun FeatureIndicator.toDomain(): ModelFeatureIndicator =
when (this) {
- ManagementInterface.FeatureIndicator.QUANTUM_RESISTANCE ->
- FeatureIndicator.QUANTUM_RESISTANCE
- ManagementInterface.FeatureIndicator.SPLIT_TUNNELING -> FeatureIndicator.SPLIT_TUNNELING
- ManagementInterface.FeatureIndicator.UDP_2_TCP -> FeatureIndicator.UDP_2_TCP
- ManagementInterface.FeatureIndicator.LAN_SHARING -> FeatureIndicator.LAN_SHARING
- ManagementInterface.FeatureIndicator.DNS_CONTENT_BLOCKERS ->
- FeatureIndicator.DNS_CONTENT_BLOCKERS
- ManagementInterface.FeatureIndicator.CUSTOM_DNS -> FeatureIndicator.CUSTOM_DNS
- ManagementInterface.FeatureIndicator.SERVER_IP_OVERRIDE ->
- FeatureIndicator.SERVER_IP_OVERRIDE
- ManagementInterface.FeatureIndicator.CUSTOM_MTU -> FeatureIndicator.CUSTOM_MTU
- ManagementInterface.FeatureIndicator.DAITA -> FeatureIndicator.DAITA
- ManagementInterface.FeatureIndicator.SHADOWSOCKS -> FeatureIndicator.SHADOWSOCKS
- ManagementInterface.FeatureIndicator.MULTIHOP -> FeatureIndicator.MULTIHOP
- ManagementInterface.FeatureIndicator.DAITA_MULTIHOP -> FeatureIndicator.DAITA_MULTIHOP
- ManagementInterface.FeatureIndicator.QUIC -> FeatureIndicator.QUIC
- ManagementInterface.FeatureIndicator.LWO -> FeatureIndicator.LWO
- ManagementInterface.FeatureIndicator.WIREGUARD_PORT -> FeatureIndicator.WIREGUARD_PORT
- ManagementInterface.FeatureIndicator.LOCKDOWN_MODE,
- ManagementInterface.FeatureIndicator.UNRECOGNIZED ->
- error("Feature not supported ${this.name}")
+ FeatureIndicator.QUANTUM_RESISTANCE -> ModelFeatureIndicator.QUANTUM_RESISTANCE
+ FeatureIndicator.SPLIT_TUNNELING -> ModelFeatureIndicator.SPLIT_TUNNELING
+ FeatureIndicator.UDP_2_TCP -> ModelFeatureIndicator.UDP_2_TCP
+ FeatureIndicator.LAN_SHARING -> ModelFeatureIndicator.LAN_SHARING
+ FeatureIndicator.DNS_CONTENT_BLOCKERS -> ModelFeatureIndicator.DNS_CONTENT_BLOCKERS
+ FeatureIndicator.CUSTOM_DNS -> ModelFeatureIndicator.CUSTOM_DNS
+ FeatureIndicator.SERVER_IP_OVERRIDE -> ModelFeatureIndicator.SERVER_IP_OVERRIDE
+ FeatureIndicator.CUSTOM_MTU -> ModelFeatureIndicator.CUSTOM_MTU
+ FeatureIndicator.DAITA -> ModelFeatureIndicator.DAITA
+ FeatureIndicator.SHADOWSOCKS -> ModelFeatureIndicator.SHADOWSOCKS
+ FeatureIndicator.MULTIHOP -> ModelFeatureIndicator.MULTIHOP
+ FeatureIndicator.DAITA_MULTIHOP -> ModelFeatureIndicator.DAITA_MULTIHOP
+ FeatureIndicator.QUIC -> ModelFeatureIndicator.QUIC
+ FeatureIndicator.LWO -> ModelFeatureIndicator.LWO
+ FeatureIndicator.WIREGUARD_PORT -> ModelFeatureIndicator.WIREGUARD_PORT
+ FeatureIndicator.LOCKDOWN_MODE -> error("Feature not supported ${this.name}")
}
-internal fun ManagementInterface.IpVersion.toDomain() =
+internal fun IpVersion.toDomain() =
when (this) {
- ManagementInterface.IpVersion.V4 -> IpVersion.IPV4
- ManagementInterface.IpVersion.V6 -> IpVersion.IPV6
- ManagementInterface.IpVersion.UNRECOGNIZED -> error("Not supported ${this.name}")
+ IpVersion.V4 -> ModelIpVersion.IPV4
+ IpVersion.V6 -> ModelIpVersion.IPV6
}
-internal fun ManagementInterface.Recents?.toDomain(): Recents =
+internal fun Recents?.toDomain(): ModelRecents =
if (this != null) {
- Recents.Enabled(recentsList.map { it.toDomain() })
+ ModelRecents.Enabled(recents = recents.map { it.toDomain() })
} else {
- Recents.Disabled
+ ModelRecents.Disabled
}
-internal fun ManagementInterface.Recent.toDomain(): Recent =
- when (typeCase) {
- ManagementInterface.Recent.TypeCase.MULTIHOP ->
- Recent.Multihop(
- entry = (multihop.entry.toDomain() as Constraint.Only).value,
- exit = (multihop.exit.toDomain() as Constraint.Only).value,
+internal fun Recent.toDomain(): ModelRecent =
+ when {
+ multihop != null ->
+ ModelRecent.Multihop(
+ entry = (multihop.entry!!.toDomain() as ModelConstraint.Only).value,
+ exit = (multihop.exit!!.toDomain() as ModelConstraint.Only).value,
)
- ManagementInterface.Recent.TypeCase.SINGLEHOP ->
- Recent.Singlehop((singlehop.toDomain() as Constraint.Only).value)
+ singlehop != null ->
+ ModelRecent.Singlehop((singlehop.toDomain() as ModelConstraint.Only).value)
- ManagementInterface.Recent.TypeCase.TYPE_NOT_SET -> error("Recent type must be set")
+ else -> error("Recent type must be set")
}
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/LogInterceptor.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/LogInterceptor.kt
index 1bff85300f..ccc775fc2b 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/LogInterceptor.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/LogInterceptor.kt
@@ -1,19 +1,21 @@
package net.mullvad.mullvadvpn.lib.daemon.grpc.util
import co.touchlab.kermit.Logger
-import io.grpc.CallOptions
-import io.grpc.Channel
-import io.grpc.ClientCall
-import io.grpc.ClientInterceptor
-import io.grpc.MethodDescriptor
+import okhttp3.Interceptor
+import okhttp3.Response
-internal class LogInterceptor : ClientInterceptor {
- override fun <ReqT : Any?, RespT : Any?> interceptCall(
+internal class LogInterceptor : Interceptor {
+ /*override fun <ReqT : Any?, RespT : Any?> interceptCall(
method: MethodDescriptor<ReqT, RespT>?,
callOptions: CallOptions?,
next: Channel?,
): ClientCall<ReqT, RespT> {
Logger.v("Intercepted call: ${method?.fullMethodName}")
return next!!.newCall(method, callOptions)
+ }*/
+
+ override fun intercept(chain: Interceptor.Chain): Response {
+ Logger.v("Intercepted call: ${chain.request()}")
+ return chain.proceed(chain.request()).also { Logger.v("Intercepted response $it") }
}
}
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/ManagedChannel.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/ManagedChannel.kt
index 8ce5a10876..e5f8f27972 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/ManagedChannel.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/ManagedChannel.kt
@@ -1,16 +1,15 @@
package net.mullvad.mullvadvpn.lib.daemon.grpc.util
-import co.touchlab.kermit.Logger
-import io.grpc.ConnectivityState
-import io.grpc.ManagedChannel
+import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
-import kotlinx.coroutines.isActive
-import kotlinx.coroutines.suspendCancellableCoroutine
+import net.mullvad.mullvadvpn.lib.daemon.grpc.GrpcConnectivityState
+import okhttp3.OkHttpClient
-internal fun ManagedChannel.connectivityFlow(): Flow<ConnectivityState> {
+internal fun OkHttpClient.connectivityFlow(): Flow<GrpcConnectivityState> {
return callbackFlow {
- var currentState = getState(false)
+ send(GrpcConnectivityState.Ready)
+ /*var currentState = getState(false)
while (isActive) {
// Check that we are active before sending
@@ -23,6 +22,7 @@ internal fun ManagedChannel.connectivityFlow(): Flow<ConnectivityState> {
}
}
}
- }
+ }*/
+ awaitClose {}
}
}
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/TunnelingUnixSocket.java b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/TunnelingUnixSocket.java
new file mode 100644
index 0000000000..7082f0c434
--- /dev/null
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/TunnelingUnixSocket.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2018 Square, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.mullvad.mullvadvpn.lib.daemon.grpc.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import jnr.unixsocket.UnixSocket;
+import jnr.unixsocket.UnixSocketAddress;
+import jnr.unixsocket.UnixSocketChannel;
+
+/**
+ * Subtype UNIX socket for a higher-fidelity impersonation of TCP sockets. This is named "tunneling"
+ * because it assumes the ultimate destination has a hostname and port.
+ */
+final class TunnelingUnixSocket extends UnixSocket {
+ private final File path;
+ private InetSocketAddress inetSocketAddress;
+
+ TunnelingUnixSocket(File path, UnixSocketChannel channel) {
+ super(channel);
+ this.path = path;
+ }
+
+ TunnelingUnixSocket(File path, UnixSocketChannel channel, InetSocketAddress address) {
+ this(path, channel);
+ this.inetSocketAddress = address;
+ }
+
+ @Override public void connect(SocketAddress endpoint) throws IOException {
+ this.inetSocketAddress = (InetSocketAddress) endpoint;
+ super.connect(new UnixSocketAddress(path), 0);
+ }
+
+ @Override public void connect(SocketAddress endpoint, int timeout) throws IOException {
+ this.inetSocketAddress = (InetSocketAddress) endpoint;
+ super.connect(new UnixSocketAddress(path), timeout);
+ }
+
+ @Override public InetAddress getInetAddress() {
+ return inetSocketAddress.getAddress();
+ }
+}
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/UnixDomainSocketFactory.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/UnixDomainSocketFactory.kt
new file mode 100644
index 0000000000..019f47ce76
--- /dev/null
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/util/UnixDomainSocketFactory.kt
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2018 Square, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.mullvad.mullvadvpn.lib.daemon.grpc.util
+
+import java.net.InetAddress
+import java.net.Socket
+import java.net.SocketAddress
+import javax.net.SocketFactory
+import org.newsclub.net.unix.AFSocketAddress
+
+/** Impersonate TCP-style SocketFactory over UNIX domain sockets. */
+class UnixDomainSocketFactory(private val addr: SocketAddress) : SocketFactory() {
+
+ override fun createSocket(): Socket {
+ val socket = AFSocketAddress.mapOrFail(addr).getAddressFamily().newSocket()
+ socket.forceConnectAddress(addr)
+ return socket
+ }
+
+ override fun createSocket(host: String?, port: Int): Socket {
+ return createSocket()
+ }
+
+ override fun createSocket(
+ host: String,
+ port: Int,
+ localHost: InetAddress,
+ localPort: Int,
+ ): Socket {
+ return createSocket(host, port)
+ }
+
+ override fun createSocket(host: InetAddress?, port: Int): Socket {
+ return createSocket()
+ }
+
+ override fun createSocket(
+ host: InetAddress?,
+ port: Int,
+ localAddress: InetAddress?,
+ localPort: Int,
+ ): Socket {
+ return createSocket(host, port)
+ }
+}
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs
index ef65152640..50a6897d87 100644
--- a/mullvad-daemon/src/management_interface.rs
+++ b/mullvad-daemon/src/management_interface.rs
@@ -107,12 +107,18 @@ impl ManagementService for ManagementServiceImpl {
//
async fn events_listen(&self, _: Request<()>) -> ServiceResult<Self::EventsListenStream> {
+ log::debug!("LOLZ events_listen 1");
+
let (tx, rx) = tokio::sync::mpsc::unbounded_channel();
+ log::debug!("LOLZ events_listen 2");
+
let mut subscriptions = self.subscriptions.lock().unwrap();
subscriptions.push(tx);
- Ok(Response::new(UnboundedReceiverStream::new(rx)))
+ let ret = Ok(Response::new(UnboundedReceiverStream::new(rx)));
+ log::debug!("LOLZ events_listen returned");
+ ret
}
async fn prepare_restart(&self, _: Request<()>) -> ServiceResult<()> {
@@ -284,7 +290,7 @@ impl ManagementService for ManagementServiceImpl {
#[cfg(target_os = "android")]
async fn set_lockdown_mode(&self, request: Request<BoolValue>) -> ServiceResult<()> {
let lockdown_mode = request.into_inner();
- log::debug!("set_lockdown_mode({})", lockdown_mode);
+ log::debug!("set_lockdown_mode({})", lockdown_mode.value);
Err(Status::unimplemented(
"Setting Lockdown mode on Android is not supported - this is handled by the OS, not the daemon",
))
@@ -300,7 +306,7 @@ impl ManagementService for ManagementServiceImpl {
}
async fn set_wireguard_mtu(&self, request: Request<types::UInt32Value>) -> ServiceResult<()> {
- let mtu = request.into_inner();
+ let mtu = request.into_inner().value;
let mtu = if mtu != 0 { Some(mtu as u16) } else { None };
log::debug!("set_wireguard_mtu({:?})", mtu);
let (tx, rx) = oneshot::channel();
diff --git a/mullvad-management-interface/src/lib.rs b/mullvad-management-interface/src/lib.rs
index 4735cdd392..091714acf6 100644
--- a/mullvad-management-interface/src/lib.rs
+++ b/mullvad-management-interface/src/lib.rs
@@ -181,8 +181,6 @@ pub fn spawn_rpc_server<T: ManagementService, F: Future<Output = ()> + Send + 's
.map_err(Error::PermissionsError)?;
}
- log::debug!("We got here! 3 LOLZ");
-
Ok(tokio::spawn(async move {
if let Err(execution_error) = Server::builder()
.add_service(ManagementServiceServer::new(service))