diff --git a/.vscode/settings.json b/.vscode/settings.json index 4c1cd20459..e89c7c5caa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -41,6 +41,7 @@ "Ljava", "loadbalancer", "mainactivity", + "MASTG", "MASVS", "MITM", "MSTG", diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0021/MASTG-DEMO-0021.md b/demos/android/MASVS-CODE/MASTG-DEMO-0021/MASTG-DEMO-0021.md new file mode 100644 index 0000000000..34b9214240 --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0021/MASTG-DEMO-0021.md @@ -0,0 +1,27 @@ +--- +platform: android +title: Identifying Insecure Dependencies in Android Studio +id: MASTG-DEMO-0021 +code: [java] +test: MASTG-TEST-0216 +--- + +### Sample + +{{ build.gradle.kts # build.gradle.kts }} + +### Steps + +Execute `gradle` in Android Studio to trigger @MASTG-TOOL-0116. + +{{ run.sh }} + +### Observation + +The scan has identified 262 unique dependencies with 35 vulnerable dependencies and 83 vulnerabilities (as more vulnerabilities might be found over time this number might increase). + +{{ output.txt }} + +### Evaluation + +Due to the number of vulnerabilities, the `dependency-check` report can be lengthy and can contain false positives. Review each of the reported instances. The dependency `okhttp-4.8.0.jar` added in the `build.gradle.kts` has known vulnerabilities and should be updated to the latest version. diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0021/build.gradle.kts b/demos/android/MASVS-CODE/MASTG-DEMO-0021/build.gradle.kts new file mode 100644 index 0000000000..6353605690 --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0021/build.gradle.kts @@ -0,0 +1,84 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("org.owasp.dependencycheck") version "10.0.4" // dependencyCheck Plugin +} + +// dependencyCheck Configuration +dependencyCheck { + + formats = listOf("HTML", "XML", "JSON") // Generate reports in HTML, JSON and XML format + nvd { + apiKey = "" // Set the NVD API key + delay = 16000 + } + +} + +android { + namespace = "org.owasp.mastestapp" + compileSdk = 34 + + defaultConfig { + applicationId = "org.owasp.mastestapp" + minSdk = 29 + targetSdk = 34 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary = true + } + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = "1.5.1" + } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } +} + +dependencies { + + implementation("androidx.core:core-ktx:1.12.0") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") + implementation("androidx.activity:activity-compose:1.8.2") + implementation(platform("androidx.compose:compose-bom:2024.04.00")) + implementation("androidx.compose.ui:ui") + implementation("androidx.compose.ui:ui-graphics") + implementation("androidx.compose.ui:ui-tooling-preview") + implementation("androidx.compose.material3:material3") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + androidTestImplementation(platform("androidx.compose:compose-bom:2024.04.00")) + androidTestImplementation("androidx.compose.ui:ui-test-junit4") + debugImplementation("androidx.compose.ui:ui-tooling") + debugImplementation("androidx.compose.ui:ui-test-manifest") + implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.10") + implementation ("com.squareup.okhttp3:okhttp:4.8.0") // vulnerable library + +} \ No newline at end of file diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0021/output.txt b/demos/android/MASVS-CODE/MASTG-DEMO-0021/output.txt new file mode 100644 index 0000000000..e850adce81 --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0021/output.txt @@ -0,0 +1,87 @@ +... +[redacted for readability] +... + { + "isVirtual": false, + "fileName": "okhttp-4.8.0.jar", + "filePath": "\/Users\/sushi2k\/.gradle\/caches\/modules-2\/files-2.1\/com.squareup.okhttp3\/okhttp\/4.8.0\/5c34a8c35bb3fd5ec39d3a67ceae691d0f3eb455\/okhttp-4.8.0.jar", + "md5": "5132d18a9ed0b5eb9a6137885959bcb5", + "sha1": "5c34a8c35bb3fd5ec39d3a67ceae691d0f3eb455", + "sha256": "04d68254c5216d059504d97e2cf2f8ba7922453059701a5adc65652809dd1599", +... +[redacted for readability] +... + "packages": [ + { + "id": "pkg:maven\/com.squareup.okhttp3\/okhttp@4.8.0", + "confidence": "HIGHEST", + "url": "https:\/\/ossindex.sonatype.org\/component\/pkg:maven\/com.squareup.okhttp3\/okhttp@4.8.0?utm_source=dependency-check&utm_medium=integration&utm_content=10.0.4" + } + ], + "vulnerabilityIds": [ + { + "id": "cpe:2.3:a:squareup:okhttp:4.8.0:*:*:*:*:*:*:*", + "confidence": "LOW" + }, + { + "id": "cpe:2.3:a:squareup:okhttp3:4.8.0:*:*:*:*:*:*:*", + "confidence": "LOW" + } + ], + "vulnerabilities": [ + { + "source": "OSSINDEX", + "name": "CVE-2021-0341", + "severity": "HIGH", + "cvssv3": { + "baseScore": 7.5, + "attackVector": "NETWORK", + "attackComplexity": "LOW", + "privilegesRequired": "NONE", + "userInteraction": "NONE", + "scope": "UNCHANGED", + "confidentialityImpact": "HIGH", + "integrityImpact": "NONE", + "availabilityImpact": "NONE", + "baseSeverity": "HIGH", + "version": "3.1" + }, + "cwes": [ + "CWE-295" + ], + "description": "In verifyHostName of OkHostnameVerifier.java, there is a possible way to accept a certificate for the wrong domain due to improperly used crypto. This could lead to remote information disclosure with no additional execution privileges needed. User interaction is not needed for exploitation.Product: AndroidVersions: Android-8.1 Android-9 Android-10 Android-11Android ID: A-171980069", + "notes": "", + "references": [ + { + "source": "OSSINDEX", + "url": "https:\/\/ossindex.sonatype.org\/vulnerability\/CVE-2021-0341?component-type=maven&component-name=com.squareup.okhttp3%2Fokhttp&utm_source=dependency-check&utm_medium=integration&utm_content=10.0.4", + "name": "[CVE-2021-0341] CWE-295: Improper Certificate Validation" + }, + { + "source": "OSSIndex", + "url": "https:\/\/source.android.com\/security\/bulletin\/2021-02-01#android-runtime", + "name": "https:\/\/source.android.com\/security\/bulletin\/2021-02-01#android-runtime" + }, + { + "source": "OSSIndex", + "url": "http:\/\/web.nvd.nist.gov\/view\/vuln\/detail?vulnId=CVE-2021-0341", + "name": "http:\/\/web.nvd.nist.gov\/view\/vuln\/detail?vulnId=CVE-2021-0341" + }, + { + "source": "OSSIndex", + "url": "https:\/\/github.com\/square\/okhttp\/pull\/6353", + "name": "https:\/\/github.com\/square\/okhttp\/pull\/6353" + } + ], + "vulnerableSoftware": [ + { + "software": { + "id": "cpe:2.3:a:com.squareup.okhttp3:okhttp:4.8.0:*:*:*:*:*:*:*", + "vulnerabilityIdMatched": "true" + } + } + ] + }, +... +[redacted for readability] +... \ No newline at end of file diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0021/run.sh b/demos/android/MASVS-CODE/MASTG-DEMO-0021/run.sh new file mode 100644 index 0000000000..835327c131 --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0021/run.sh @@ -0,0 +1 @@ +./gradlew dependencyCheckAnalyze \ No newline at end of file diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0022/MASTG-DEMO-022.md b/demos/android/MASVS-CODE/MASTG-DEMO-0022/MASTG-DEMO-022.md new file mode 100644 index 0000000000..99623a06d8 --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0022/MASTG-DEMO-022.md @@ -0,0 +1,24 @@ +--- +platform: android +title: Identifying Insecure Dependencies through SBOM creation +id: MASTG-DEMO-0022 +test: MASTG-TEST-0216 +--- + +### Steps + +Execute `cdxgen` in the root directory of the Android Studio project. + +{{ run.sh }} + +This will create a SBOM file that can be uploaded to @MASTG-TOOL-0117 by following @MASTG-TECH-0122. + +### Observation + +In the project of @MASTG-TOOL-0117, where the SBOM has been uploaded, the scan should have identified over 200 unique dependencies (components) with 7 vulnerable dependencies and 7 vulnerabilities (as more vulnerabilities might be found over time this number might increase). + +{{ output.txt }} + +### Evaluation + +Review each of the reported instances. The dependency `okhttp` has 2 known vulnerabilities and `okio` has 1 known vulnerability and they should all be updated to the latest version. diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0022/output.txt b/demos/android/MASVS-CODE/MASTG-DEMO-0022/output.txt new file mode 100644 index 0000000000..96b960251d --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0022/output.txt @@ -0,0 +1 @@ +{"bomFormat":"CycloneDX","specVersion":"1.5","serialNumber":"urn:uuid:08260d88-3747-4adf-8364-e8d75174bf8e","version":1,"metadata":{"timestamp":"2024-10-20T17:18:51Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"10.10.5","purl":"pkg:npm/%40cyclonedx/cdxgen@10.10.5","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@10.10.5","author":"OWASP Foundation","publisher":"OWASP Foundation"}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"build"}],"component":{"name":"MASTestApp","type":"application","group":"","version":"latest","properties":[{"name":"GradleModule","value":"MASTestApp"},{"name":"buildFile","value":"/Users/sushi2k/Documents/mastg-apps/MASTestApp-Android-MASWE-0076/build.gradle.kts"},{"name":"projectDir","value":"/Users/sushi2k/Documents/mastg-apps/MASTestApp-Android-MASWE-0076"},{"name":"rootDir","value":"/Users/sushi2k/Documents/mastg-apps/MASTestApp-Android-MASWE-0076"}],"purl":"pkg:maven/MASTestApp@latest?type=jar","bom-ref":"pkg:maven/MASTestApp@latest?type=jar","components":[{"group":"MASTestApp","name":"app","version":"latest","purl":"pkg:maven/MASTestApp/app@latest?type=jar","type":"application","bom-ref":"pkg:maven/MASTestApp/app@latest?type=jar","properties":[{"name":"GradleModule","value":":app"},{"name":"buildFile","value":"/Users/sushi2k/Documents/mastg-apps/MASTestApp-Android-MASWE-0076/app/build.gradle.kts"},{"name":"projectDir","value":"/Users/sushi2k/Documents/mastg-apps/MASTestApp-Android-MASWE-0076/app"},{"name":"rootDir","value":"/Users/sushi2k/Documents/mastg-apps/MASTestApp-Android-MASWE-0076"}]}]},"properties":[{"name":"cdx:bom:componentTypes","value":"maven"},{"name":"cdx:bom:componentNamespaces","value":"androidx.activity\\nandroidx.annotation\\nandroidx.arch.core\\nandroidx.autofill\\nandroidx.collection\\nandroidx.compose\\nandroidx.compose.animation\\nandroidx.compose.compiler\\nandroidx.compose.foundation\\nandroidx.compose.material\\nandroidx.compose.material3\\nandroidx.compose.runtime\\nandroidx.compose.ui\\nandroidx.concurrent\\nandroidx.core\\nandroidx.customview\\nandroidx.emoji2\\nandroidx.interpolator\\nandroidx.lifecycle\\nandroidx.profileinstaller\\nandroidx.savedstate\\nandroidx.startup\\nandroidx.test\\nandroidx.test.espresso\\nandroidx.test.ext\\nandroidx.test.services\\nandroidx.tracing\\nandroidx.versionedparcelable\\ncom.android.tools\\ncom.android.tools.ddms\\ncom.android.tools.emulator\\ncom.android.tools.utp\\ncom.google.android\\ncom.google.api.grpc\\ncom.google.code.findbugs\\ncom.google.code.gson\\ncom.google.crypto.tink\\ncom.google.errorprone\\ncom.google.guava\\ncom.google.j2objc\\ncom.google.protobuf\\ncom.google.testing.platform\\ncom.squareup\\ncom.squareup.okhttp3\\ncom.squareup.okio\\ncommons-io\\nio.grpc\\nio.netty\\nio.perfmark\\njavax.annotation\\njavax.inject\\njunit\\nnet.java.dev.jna\\nnet.sf.kxml\\norg.checkerframework\\norg.codehaus.mojo\\norg.hamcrest\\norg.jetbrains\\norg.jetbrains.intellij.deps\\norg.jetbrains.kotlin\\norg.jetbrains.kotlinx"}]},"components":[{"group":"com.android.tools.utp","name":"android-device-provider-ddmlib","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-device-provider-ddmlib@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-device-provider-ddmlib@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.android.tools","name":"common","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools/common@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools/common@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.android.tools","name":"annotations","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools/annotations@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools/annotations@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.guava","name":"guava","version":"32.0.1-jre","scope":"optional","purl":"pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","type":"library","bom-ref":"pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.guava","name":"failureaccess","version":"1.0.1","scope":"optional","purl":"pkg:maven/com.google.guava/failureaccess@1.0.1?type=jar","type":"library","bom-ref":"pkg:maven/com.google.guava/failureaccess@1.0.1?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.guava","name":"listenablefuture","version":"9999.0-empty-to-avoid-conflict-with-guava","scope":"optional","purl":"pkg:maven/com.google.guava/listenablefuture@9999.0-empty-to-avoid-conflict-with-guava?type=jar","type":"library","bom-ref":"pkg:maven/com.google.guava/listenablefuture@9999.0-empty-to-avoid-conflict-with-guava?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.code.findbugs","name":"jsr305","version":"3.0.2","scope":"optional","purl":"pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","type":"library","bom-ref":"pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.checkerframework","name":"checker-qual","version":"3.33.0","scope":"optional","purl":"pkg:maven/org.checkerframework/checker-qual@3.33.0?type=jar","type":"library","bom-ref":"pkg:maven/org.checkerframework/checker-qual@3.33.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.errorprone","name":"error_prone_annotations","version":"2.18.0","scope":"optional","purl":"pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","type":"library","bom-ref":"pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.j2objc","name":"j2objc-annotations","version":"2.8","scope":"optional","purl":"pkg:maven/com.google.j2objc/j2objc-annotations@2.8?type=jar","type":"library","bom-ref":"pkg:maven/com.google.j2objc/j2objc-annotations@2.8?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"net.java.dev.jna","name":"jna-platform","version":"5.6.0","scope":"optional","purl":"pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar","type":"library","bom-ref":"pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"net.java.dev.jna","name":"jna","version":"5.6.0","scope":"optional","purl":"pkg:maven/net.java.dev.jna/jna@5.6.0?type=jar","type":"library","bom-ref":"pkg:maven/net.java.dev.jna/jna@5.6.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-jdk8","version":"1.9.20","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib","version":"1.9.20","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.20?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.20?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains","name":"annotations","version":"23.0.0","scope":"optional","purl":"pkg:maven/org.jetbrains/annotations@23.0.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains/annotations@23.0.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-jdk7","version":"1.9.20","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.20?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.20?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-common","version":"1.9.20","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.20?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.20?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.android.tools.ddms","name":"ddmlib","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.ddms/ddmlib@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.ddms/ddmlib@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.protobuf","name":"protobuf-java","version":"3.22.3","scope":"optional","purl":"pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","type":"library","bom-ref":"pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"net.sf.kxml","name":"kxml2","version":"2.3.0","scope":"optional","purl":"pkg:maven/net.sf.kxml/kxml2@2.3.0?type=jar","type":"library","bom-ref":"pkg:maven/net.sf.kxml/kxml2@2.3.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.android.tools.utp","name":"android-device-provider-ddmlib-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-device-provider-ddmlib-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-device-provider-ddmlib-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-core","version":"1.6.4","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-core-jvm","version":"1.6.4","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.6.4?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.6.4?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-bom","version":"1.6.4","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.6.4?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.6.4?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.testing.platform","name":"core-proto","version":"0.0.9-alpha02","scope":"optional","purl":"pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","type":"library","bom-ref":"pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.google.testing.platform","name":"android-device-provider-local","version":"0.0.9-alpha02","scope":"optional","purl":"pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","type":"library","bom-ref":"pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-ddmlib"}]},{"group":"com.android.tools.utp","name":"android-device-provider-gradle","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-device-provider-gradle@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-device-provider-gradle@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-gradle"}]},{"group":"org.jetbrains","name":"annotations","version":"13.0","scope":"optional","purl":"pkg:maven/org.jetbrains/annotations@13.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains/annotations@13.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-gradle"}]},{"group":"com.android.tools.utp","name":"android-device-provider-gradle-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-device-provider-gradle-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-device-provider-gradle-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-device-provider-gradle"}]},{"group":"com.google.testing.platform","name":"android-driver-instrumentation","version":"0.0.9-alpha02","scope":"optional","purl":"pkg:maven/com.google.testing.platform/android-driver-instrumentation@0.0.9-alpha02?type=jar","type":"library","bom-ref":"pkg:maven/com.google.testing.platform/android-driver-instrumentation@0.0.9-alpha02?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-driver-instrumentation"}]},{"group":"com.google.testing.platform","name":"android-test-plugin","version":"0.0.9-alpha02","scope":"optional","purl":"pkg:maven/com.google.testing.platform/android-test-plugin@0.0.9-alpha02?type=jar","type":"library","bom-ref":"pkg:maven/com.google.testing.platform/android-test-plugin@0.0.9-alpha02?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-additional-test-output","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-additional-test-output"}]},{"group":"com.android.tools.utp","name":"utp-common","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-additional-test-output"}]},{"group":"com.google.testing.platform","name":"launcher","version":"0.0.9-alpha02","scope":"optional","purl":"pkg:maven/com.google.testing.platform/launcher@0.0.9-alpha02?type=jar","type":"library","bom-ref":"pkg:maven/com.google.testing.platform/launcher@0.0.9-alpha02?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-additional-test-output"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-additional-test-output-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-additional-test-output"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-apk-installer","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-apk-installer"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-apk-installer-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-apk-installer"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-coverage","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-coverage"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-coverage-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-coverage"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-device-info","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-device-info"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-device-info-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-device-info"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-emulator-control","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"commons-io","name":"commons-io","version":"2.13.0","scope":"optional","purl":"pkg:maven/commons-io/commons-io@2.13.0?type=jar","type":"library","bom-ref":"pkg:maven/commons-io/commons-io@2.13.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.google.code.gson","name":"gson","version":"2.10.1","scope":"optional","purl":"pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","type":"library","bom-ref":"pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-emulator-control-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.android.tools.emulator","name":"proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.emulator/proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.emulator/proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-core","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","type":"library","bom-ref":"pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-api","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-api@1.57.0?type=jar","type":"library","bom-ref":"pkg:maven/io.grpc/grpc-api@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.google.android","name":"annotations","version":"4.1.1.4","scope":"optional","purl":"pkg:maven/com.google.android/annotations@4.1.1.4?type=jar","type":"library","bom-ref":"pkg:maven/com.google.android/annotations@4.1.1.4?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"org.codehaus.mojo","name":"animal-sniffer-annotations","version":"1.23","scope":"optional","purl":"pkg:maven/org.codehaus.mojo/animal-sniffer-annotations@1.23?type=jar","type":"library","bom-ref":"pkg:maven/org.codehaus.mojo/animal-sniffer-annotations@1.23?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.perfmark","name":"perfmark-api","version":"0.26.0","scope":"optional","purl":"pkg:maven/io.perfmark/perfmark-api@0.26.0?type=jar","type":"library","bom-ref":"pkg:maven/io.perfmark/perfmark-api@0.26.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-context","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-context@1.57.0?type=jar","type":"library","bom-ref":"pkg:maven/io.grpc/grpc-context@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-netty","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","type":"framework","bom-ref":"pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-codec-http2","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-codec-http2@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-codec-http2@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-common","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-buffer","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-transport","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-resolver","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-resolver@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-resolver@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-codec","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-handler","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-handler@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-handler@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-transport-native-unix-common","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-transport-native-unix-common@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-transport-native-unix-common@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-codec-http","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-codec-http@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-codec-http@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-handler-proxy","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-handler-proxy@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-handler-proxy@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.netty","name":"netty-codec-socks","version":"4.1.93.Final","scope":"optional","purl":"pkg:maven/io.netty/netty-codec-socks@4.1.93.Final?type=jar","type":"framework","bom-ref":"pkg:maven/io.netty/netty-codec-socks@4.1.93.Final?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-protobuf","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","type":"library","bom-ref":"pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.google.api.grpc","name":"proto-google-common-protos","version":"2.17.0","scope":"optional","purl":"pkg:maven/com.google.api.grpc/proto-google-common-protos@2.17.0?type=jar","type":"library","bom-ref":"pkg:maven/com.google.api.grpc/proto-google-common-protos@2.17.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-protobuf-lite","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-protobuf-lite@1.57.0?type=jar","type":"library","bom-ref":"pkg:maven/io.grpc/grpc-protobuf-lite@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"io.grpc","name":"grpc-stub","version":"1.57.0","scope":"optional","purl":"pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","type":"library","bom-ref":"pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"javax.annotation","name":"javax.annotation-api","version":"1.3.2","scope":"optional","purl":"pkg:maven/javax.annotation/javax.annotation-api@1.3.2?type=jar","type":"library","bom-ref":"pkg:maven/javax.annotation/javax.annotation-api@1.3.2?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.google.crypto.tink","name":"tink","version":"1.7.0","scope":"optional","purl":"pkg:maven/com.google.crypto.tink/tink@1.7.0?type=jar","type":"library","bom-ref":"pkg:maven/com.google.crypto.tink/tink@1.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-emulator-control"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-logcat","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-logcat"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-logcat-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-logcat"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-retention","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-retention@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-retention@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-retention"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-host-retention-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-host-retention-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-retention-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-host-retention"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-result-listener-gradle","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-result-listener-gradle"}]},{"group":"com.android.tools.utp","name":"android-test-plugin-result-listener-gradle-proto","version":"31.4.0","scope":"optional","purl":"pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle-proto@31.4.0?type=jar","type":"library","bom-ref":"pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle-proto@31.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-android-test-plugin-result-listener-gradle"}]},{"group":"com.google.testing.platform","name":"core","version":"0.0.9-alpha02","scope":"optional","purl":"pkg:maven/com.google.testing.platform/core@0.0.9-alpha02?type=jar","type":"library","bom-ref":"pkg:maven/com.google.testing.platform/core@0.0.9-alpha02?type=jar","properties":[{"name":"GradleProfileName","value":"_internal-unified-test-platform-core"}]},{"group":"androidx.test.ext","name":"junit","version":"1.1.5","scope":"optional","purl":"pkg:maven/androidx.test.ext/junit@1.1.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test.ext/junit@1.1.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test.espresso","name":"espresso-core","version":"3.5.1","scope":"optional","purl":"pkg:maven/androidx.test.espresso/espresso-core@3.5.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test.espresso/espresso-core@3.5.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose","name":"compose-bom","version":"2024.04.00","scope":"optional","purl":"pkg:maven/androidx.compose/compose-bom@2024.04.00?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose/compose-bom@2024.04.00?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"junit","name":"junit","version":"4.13.2","scope":"optional","purl":"pkg:maven/junit/junit@4.13.2?type=jar","type":"library","bom-ref":"pkg:maven/junit/junit@4.13.2?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.hamcrest","name":"hamcrest-core","version":"1.3","scope":"optional","purl":"pkg:maven/org.hamcrest/hamcrest-core@1.3?type=jar","type":"library","bom-ref":"pkg:maven/org.hamcrest/hamcrest-core@1.3?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test","name":"core","version":"1.5.0","scope":"optional","purl":"pkg:maven/androidx.test/core@1.5.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test/core@1.5.0?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.annotation","name":"annotation","version":"1.7.0","scope":"optional","purl":"pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib","version":"1.8.22","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-common","version":"1.8.22","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test","name":"monitor","version":"1.6.1","scope":"optional","purl":"pkg:maven/androidx.test/monitor@1.6.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test/monitor@1.6.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test","name":"annotation","version":"1.0.1","scope":"optional","purl":"pkg:maven/androidx.test/annotation@1.0.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test/annotation@1.0.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.annotation","name":"annotation-experimental","version":"1.1.0","scope":"optional","purl":"pkg:maven/androidx.annotation/annotation-experimental@1.1.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.annotation/annotation-experimental@1.1.0?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.tracing","name":"tracing","version":"1.0.0","scope":"optional","purl":"pkg:maven/androidx.tracing/tracing@1.0.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.tracing/tracing@1.0.0?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test.services","name":"storage","version":"1.4.2","scope":"optional","purl":"pkg:maven/androidx.test.services/storage@1.4.2?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test.services/storage@1.4.2?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"com.google.code.findbugs","name":"jsr305","version":"2.0.2","scope":"optional","purl":"pkg:maven/com.google.code.findbugs/jsr305@2.0.2?type=jar","type":"library","bom-ref":"pkg:maven/com.google.code.findbugs/jsr305@2.0.2?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.lifecycle","name":"lifecycle-common","version":"2.3.1","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-common@2.3.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-common@2.3.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"com.google.guava","name":"listenablefuture","version":"1.0","scope":"optional","purl":"pkg:maven/com.google.guava/listenablefuture@1.0?type=jar","type":"library","bom-ref":"pkg:maven/com.google.guava/listenablefuture@1.0?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.concurrent","name":"concurrent-futures","version":"1.1.0","scope":"optional","purl":"pkg:maven/androidx.concurrent/concurrent-futures@1.1.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.concurrent/concurrent-futures@1.1.0?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test","name":"runner","version":"1.5.2","scope":"optional","purl":"pkg:maven/androidx.test/runner@1.5.2?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test/runner@1.5.2?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.test.espresso","name":"espresso-idling-resource","version":"3.5.1","scope":"optional","purl":"pkg:maven/androidx.test.espresso/espresso-idling-resource@3.5.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.test.espresso/espresso-idling-resource@3.5.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"com.squareup","name":"javawriter","version":"2.1.1","scope":"optional","purl":"pkg:maven/com.squareup/javawriter@2.1.1?type=jar","type":"library","bom-ref":"pkg:maven/com.squareup/javawriter@2.1.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"javax.inject","name":"javax.inject","version":"1","scope":"optional","purl":"pkg:maven/javax.inject/javax.inject@1?type=jar","type":"library","bom-ref":"pkg:maven/javax.inject/javax.inject@1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.hamcrest","name":"hamcrest-library","version":"1.3","scope":"optional","purl":"pkg:maven/org.hamcrest/hamcrest-library@1.3?type=jar","type":"library","bom-ref":"pkg:maven/org.hamcrest/hamcrest-library@1.3?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.hamcrest","name":"hamcrest-integration","version":"1.3","scope":"optional","purl":"pkg:maven/org.hamcrest/hamcrest-integration@1.3?type=jar","type":"library","bom-ref":"pkg:maven/org.hamcrest/hamcrest-integration@1.3?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-test-junit4","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-test","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.runtime","name":"runtime","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-text","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-unit","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.runtime","name":"runtime-saveable","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-geometry","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-graphics","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"androidx.compose.ui","name":"ui-util","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-core","version":"1.7.1","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-jdk8","version":"1.8.20","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.8.20?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.8.20?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-jdk7","version":"1.8.20","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.8.20?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.8.20?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlinx","name":"atomicfu","version":"0.20.2","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/atomicfu@0.20.2?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/atomicfu@0.20.2?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-test","version":"1.7.1","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar","properties":[{"name":"GradleProfileName","value":"androidTestImplementation"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-jdk8","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"api"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"api"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-common","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"api"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-jdk7","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"api"}]},{"group":"androidx.annotation","name":"annotation-jvm","version":"1.7.0","scope":"optional","purl":"pkg:maven/androidx.annotation/annotation-jvm@1.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.annotation/annotation-jvm@1.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib","version":"1.9.10","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-stdlib-common","version":"1.9.10","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.annotation","name":"annotation-experimental","version":"1.4.0","scope":"optional","purl":"pkg:maven/androidx.annotation/annotation-experimental@1.4.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.annotation/annotation-experimental@1.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-common","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-android","version":"1.7.1","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-core-jvm","version":"1.7.1","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.7.1?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.7.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-bom","version":"1.7.1","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.7.1?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.7.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlinx","name":"kotlinx-coroutines-test-jvm","version":"1.7.1","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test-jvm@1.7.1?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test-jvm@1.7.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-runtime","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-runtime-ktx","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-viewmodel","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-viewmodel-ktx","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-viewmodel-savedstate","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-livedata-core","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.material3","name":"material3","version":"1.2.1","scope":"optional","purl":"pkg:maven/androidx.compose.material3/material3@1.2.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material3/material3@1.2.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-test-manifest","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-tooling","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-tooling-preview","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-test-junit4-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-test-junit4-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-test-junit4-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-graphics-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-graphics-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-graphics-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.material3","name":"material3-android","version":"1.2.1","scope":"optional","purl":"pkg:maven/androidx.compose.material3/material3-android@1.2.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material3/material3-android@1.2.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-tooling-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-tooling-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-tooling-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-tooling-preview-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-tooling-preview-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-tooling-preview-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.runtime","name":"runtime-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.runtime/runtime-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.runtime/runtime-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.runtime","name":"runtime-saveable-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.runtime/runtime-saveable-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.runtime/runtime-saveable-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.foundation","name":"foundation","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.foundation","name":"foundation-layout","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.material","name":"material-icons-core","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.material","name":"material-ripple","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-tooling-data","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-test-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-test-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-test-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-geometry-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-geometry-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-geometry-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-text-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-text-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-text-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-unit-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-unit-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-unit-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-util-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-util-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-util-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.foundation","name":"foundation-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.foundation/foundation-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.foundation/foundation-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.foundation","name":"foundation-layout-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.foundation/foundation-layout-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.foundation/foundation-layout-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.material","name":"material-icons-core-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.material/material-icons-core-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material/material-icons-core-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.material","name":"material-ripple-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.material/material-ripple-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material/material-ripple-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.ui","name":"ui-tooling-data-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.ui/ui-tooling-data-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.ui/ui-tooling-data-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.animation","name":"animation","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.animation","name":"animation-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.animation/animation-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.animation/animation-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.animation","name":"animation-core","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.compose.animation","name":"animation-core-android","version":"1.6.5","scope":"optional","purl":"pkg:maven/androidx.compose.animation/animation-core-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.animation/animation-core-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.activity","name":"activity","version":"1.8.2","scope":"optional","purl":"pkg:maven/androidx.activity/activity@1.8.2?type=jar","type":"library","bom-ref":"pkg:maven/androidx.activity/activity@1.8.2?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.core","name":"core","version":"1.12.0","scope":"optional","purl":"pkg:maven/androidx.core/core@1.12.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.core/core@1.12.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.arch.core","name":"core-common","version":"2.2.0","scope":"optional","purl":"pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.versionedparcelable","name":"versionedparcelable","version":"1.1.1","scope":"optional","purl":"pkg:maven/androidx.versionedparcelable/versionedparcelable@1.1.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.versionedparcelable/versionedparcelable@1.1.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.collection","name":"collection","version":"1.4.0","scope":"optional","purl":"pkg:maven/androidx.collection/collection@1.4.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.collection/collection@1.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.collection","name":"collection-jvm","version":"1.4.0","scope":"optional","purl":"pkg:maven/androidx.collection/collection-jvm@1.4.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.collection/collection-jvm@1.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.core","name":"core-ktx","version":"1.12.0","scope":"optional","purl":"pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.savedstate","name":"savedstate","version":"1.2.1","scope":"optional","purl":"pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.savedstate","name":"savedstate-ktx","version":"1.2.1","scope":"optional","purl":"pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.activity","name":"activity-compose","version":"1.8.2","scope":"optional","purl":"pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","type":"library","bom-ref":"pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.activity","name":"activity-ktx","version":"1.8.2","scope":"optional","purl":"pkg:maven/androidx.activity/activity-ktx@1.8.2?type=jar","type":"library","bom-ref":"pkg:maven/androidx.activity/activity-ktx@1.8.2?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-reflect","version":"1.9.10","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.9.10?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.9.10?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"com.squareup.okhttp3","name":"okhttp","version":"4.8.0","scope":"optional","purl":"pkg:maven/com.squareup.okhttp3/okhttp@4.8.0?type=jar","type":"library","bom-ref":"pkg:maven/com.squareup.okhttp3/okhttp@4.8.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"com.squareup.okio","name":"okio","version":"2.7.0","scope":"optional","purl":"pkg:maven/com.squareup.okio/okio@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/com.squareup.okio/okio@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestCompileClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-process","version":"2.7.0","scope":"optional","purl":"pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.collection","name":"collection-ktx","version":"1.4.0","scope":"optional","purl":"pkg:maven/androidx.collection/collection-ktx@1.4.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.collection/collection-ktx@1.4.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.interpolator","name":"interpolator","version":"1.0.0","scope":"optional","purl":"pkg:maven/androidx.interpolator/interpolator@1.0.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.interpolator/interpolator@1.0.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.arch.core","name":"core-runtime","version":"2.2.0","scope":"optional","purl":"pkg:maven/androidx.arch.core/core-runtime@2.2.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.arch.core/core-runtime@2.2.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.profileinstaller","name":"profileinstaller","version":"1.3.0","scope":"optional","purl":"pkg:maven/androidx.profileinstaller/profileinstaller@1.3.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.profileinstaller/profileinstaller@1.3.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.startup","name":"startup-runtime","version":"1.1.1","scope":"optional","purl":"pkg:maven/androidx.startup/startup-runtime@1.1.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.startup/startup-runtime@1.1.1?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.autofill","name":"autofill","version":"1.0.0","scope":"optional","purl":"pkg:maven/androidx.autofill/autofill@1.0.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.autofill/autofill@1.0.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.emoji2","name":"emoji2","version":"1.3.0","scope":"optional","purl":"pkg:maven/androidx.emoji2/emoji2@1.3.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.emoji2/emoji2@1.3.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.customview","name":"customview-poolingcontainer","version":"1.0.0","scope":"optional","purl":"pkg:maven/androidx.customview/customview-poolingcontainer@1.0.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.customview/customview-poolingcontainer@1.0.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugAndroidTestRuntimeClasspath"}]},{"group":"androidx.lifecycle","name":"lifecycle-common-java8","version":"2.7.0","scope":"required","purl":"pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"debugRuntimeClasspath"}]},{"group":"androidx.compose.material","name":"material","version":"1.6.5","scope":"required","purl":"pkg:maven/androidx.compose.material/material@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material/material@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugRuntimeClasspath"}]},{"group":"androidx.compose.material","name":"material-android","version":"1.6.5","scope":"required","purl":"pkg:maven/androidx.compose.material/material-android@1.6.5?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.material/material-android@1.6.5?type=jar","properties":[{"name":"GradleProfileName","value":"debugRuntimeClasspath"}]},{"group":"androidx.annotation","name":"annotation-experimental","version":"1.3.0","purl":"pkg:maven/androidx.annotation/annotation-experimental@1.3.0?type=jar","type":"library","bom-ref":"pkg:maven/androidx.annotation/annotation-experimental@1.3.0?type=jar","properties":[{"name":"GradleProfileName","value":"implementation"}]},{"group":"com.squareup.okio","name":"okio-metadata","version":"2.7.0","purl":"pkg:maven/com.squareup.okio/okio-metadata@2.7.0?type=jar","type":"library","bom-ref":"pkg:maven/com.squareup.okio/okio-metadata@2.7.0?type=jar","properties":[{"name":"GradleProfileName","value":"implementation"}]},{"group":"androidx.compose.compiler","name":"compiler","version":"1.5.1","purl":"pkg:maven/androidx.compose.compiler/compiler@1.5.1?type=jar","type":"library","bom-ref":"pkg:maven/androidx.compose.compiler/compiler@1.5.1?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-build-tools-impl","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-impl@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-impl@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-build-tools-api","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-api@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-api@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-compiler-embeddable","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-compiler-embeddable@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-compiler-embeddable@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-script-runtime","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-script-runtime@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-script-runtime@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-reflect","version":"1.6.10","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.6.10?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.6.10?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-daemon-embeddable","version":"1.9.0","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-daemon-embeddable@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-daemon-embeddable@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.intellij.deps","name":"trove4j","version":"1.0.20200330","purl":"pkg:maven/org.jetbrains.intellij.deps/trove4j@1.0.20200330?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.intellij.deps/trove4j@1.0.20200330?type=jar","properties":[{"name":"GradleProfileName","value":"kotlin-extension"}]},{"group":"org.jetbrains.kotlin","name":"kotlin-klib-commonizer-embeddable","version":"1.9.0","scope":"optional","purl":"pkg:maven/org.jetbrains.kotlin/kotlin-klib-commonizer-embeddable@1.9.0?type=jar","type":"library","bom-ref":"pkg:maven/org.jetbrains.kotlin/kotlin-klib-commonizer-embeddable@1.9.0?type=jar","properties":[{"name":"GradleProfileName","value":"kotlinCompilerPluginClasspathReleaseUnitTest"}]}],"dependencies":[{"ref":"pkg:maven/MASTestApp@latest?type=jar","dependsOn":["pkg:maven/MASTestApp/app@latest?type=jar"]},{"ref":"pkg:maven/MASTestApp/app@latest?type=jar","dependsOn":["pkg:maven/MASTestApp/app@latest?type=jar","pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","pkg:maven/androidx.compose.compiler/compiler@1.5.1?type=jar","pkg:maven/androidx.compose.material3/material3@1.2.1?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.compose/compose-bom@2024.04.00?type=jar","pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.test.espresso/espresso-core@3.5.1?type=jar","pkg:maven/androidx.test.ext/junit@1.1.5?type=jar","pkg:maven/com.android.tools.utp/android-device-provider-ddmlib@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-device-provider-gradle@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-retention@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle@31.4.0?type=jar","pkg:maven/com.google.testing.platform/android-driver-instrumentation@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/android-test-plugin@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/core@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/launcher@0.0.9-alpha02?type=jar","pkg:maven/com.squareup.okhttp3/okhttp@4.8.0?type=jar","pkg:maven/junit/junit@4.13.2?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-impl@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-compiler-embeddable@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-klib-commonizer-embeddable@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-device-provider-ddmlib@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.ddms/ddmlib@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-device-provider-ddmlib-proto@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar"]},{"ref":"pkg:maven/com.android.tools/common@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools/annotations@31.4.0?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools/annotations@31.4.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","dependsOn":["pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","pkg:maven/com.google.guava/failureaccess@1.0.1?type=jar","pkg:maven/com.google.guava/listenablefuture@9999.0-empty-to-avoid-conflict-with-guava?type=jar","pkg:maven/com.google.j2objc/j2objc-annotations@2.8?type=jar","pkg:maven/org.checkerframework/checker-qual@3.33.0?type=jar"]},{"ref":"pkg:maven/com.google.guava/failureaccess@1.0.1?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.guava/listenablefuture@9999.0-empty-to-avoid-conflict-with-guava?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.checkerframework/checker-qual@3.33.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.j2objc/j2objc-annotations@2.8?type=jar","dependsOn":[]},{"ref":"pkg:maven/net.java.dev.jna/jna-platform@5.6.0?type=jar","dependsOn":["pkg:maven/net.java.dev.jna/jna@5.6.0?type=jar"]},{"ref":"pkg:maven/net.java.dev.jna/jna@5.6.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.20?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.20?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","pkg:maven/org.jetbrains/annotations@13.0?type=jar","pkg:maven/org.jetbrains/annotations@23.0.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains/annotations@23.0.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.20?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.20?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.20?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.ddms/ddmlib@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/net.sf.kxml/kxml2@2.3.0?type=jar","pkg:maven/org.jetbrains/annotations@23.0.0?type=jar"]},{"ref":"pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","dependsOn":[]},{"ref":"pkg:maven/net.sf.kxml/kxml2@2.3.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.android.tools.utp/android-device-provider-ddmlib-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.6.4?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.6.4?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.6.4?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.6.4?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.6.4?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar"]},{"ref":"pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.android.tools.utp/android-device-provider-gradle@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-device-provider-gradle-proto@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/org.jetbrains/annotations@13.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.android.tools.utp/android-device-provider-gradle-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.google.testing.platform/android-driver-instrumentation@0.0.9-alpha02?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.testing.platform/android-test-plugin@0.0.9-alpha02?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output-proto@31.4.0?type=jar","pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.testing.platform/launcher@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.google.testing.platform/launcher@0.0.9-alpha02?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-additional-test-output-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer-proto@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-apk-installer-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage-proto@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-coverage-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info-proto@31.4.0?type=jar","pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-device-info-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.emulator/proto@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control-proto@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.crypto.tink/tink@1.7.0?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/android-driver-instrumentation@0.0.9-alpha02?type=jar","pkg:maven/commons-io/commons-io@2.13.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar"]},{"ref":"pkg:maven/commons-io/commons-io@2.13.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-emulator-control-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.emulator/proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","pkg:maven/javax.annotation/javax.annotation-api@1.3.2?type=jar"]},{"ref":"pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","dependsOn":["pkg:maven/com.google.android/annotations@4.1.1.4?type=jar","pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/io.grpc/grpc-api@1.57.0?type=jar","pkg:maven/io.grpc/grpc-context@1.57.0?type=jar","pkg:maven/io.perfmark/perfmark-api@0.26.0?type=jar","pkg:maven/org.codehaus.mojo/animal-sniffer-annotations@1.23?type=jar"]},{"ref":"pkg:maven/io.grpc/grpc-api@1.57.0?type=jar","dependsOn":["pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar"]},{"ref":"pkg:maven/com.google.android/annotations@4.1.1.4?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.codehaus.mojo/animal-sniffer-annotations@1.23?type=jar","dependsOn":[]},{"ref":"pkg:maven/io.perfmark/perfmark-api@0.26.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/io.grpc/grpc-context@1.57.0?type=jar","dependsOn":["pkg:maven/io.grpc/grpc-api@1.57.0?type=jar"]},{"ref":"pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","dependsOn":["pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","pkg:maven/io.netty/netty-codec-http2@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-handler-proxy@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport-native-unix-common@4.1.93.Final?type=jar","pkg:maven/io.perfmark/perfmark-api@0.26.0?type=jar"]},{"ref":"pkg:maven/io.netty/netty-codec-http2@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec-http@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-handler@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","dependsOn":[]},{"ref":"pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-resolver@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-resolver@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-handler@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-resolver@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport-native-unix-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-transport-native-unix-common@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-codec-http@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-handler@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-handler-proxy@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec-http@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec-socks@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.netty/netty-codec-socks@4.1.93.Final?type=jar","dependsOn":["pkg:maven/io.netty/netty-buffer@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-codec@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-common@4.1.93.Final?type=jar","pkg:maven/io.netty/netty-transport@4.1.93.Final?type=jar"]},{"ref":"pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","dependsOn":["pkg:maven/com.google.api.grpc/proto-google-common-protos@2.17.0?type=jar","pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/io.grpc/grpc-api@1.57.0?type=jar","pkg:maven/io.grpc/grpc-protobuf-lite@1.57.0?type=jar"]},{"ref":"pkg:maven/com.google.api.grpc/proto-google-common-protos@2.17.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/io.grpc/grpc-protobuf-lite@1.57.0?type=jar","dependsOn":["pkg:maven/com.google.code.findbugs/jsr305@3.0.2?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/io.grpc/grpc-api@1.57.0?type=jar"]},{"ref":"pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","dependsOn":["pkg:maven/com.google.errorprone/error_prone_annotations@2.18.0?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/io.grpc/grpc-api@1.57.0?type=jar"]},{"ref":"pkg:maven/javax.annotation/javax.annotation-api@1.3.2?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.google.crypto.tink/tink@1.7.0?type=jar","dependsOn":["pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat-proto@31.4.0?type=jar","pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-logcat-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-retention@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.emulator/proto@31.4.0?type=jar","pkg:maven/com.android.tools.utp/android-test-plugin-host-retention-proto@31.4.0?type=jar","pkg:maven/com.android.tools.utp/utp-common@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/commons-io/commons-io@2.13.0?type=jar","pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-host-retention-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle@31.4.0?type=jar","dependsOn":["pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle-proto@31.4.0?type=jar","pkg:maven/com.android.tools/common@31.4.0?type=jar","pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/com.google.testing.platform/android-device-provider-local@0.0.9-alpha02?type=jar","pkg:maven/com.google.testing.platform/core-proto@0.0.9-alpha02?type=jar","pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.20?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.6.4?type=jar"]},{"ref":"pkg:maven/com.android.tools.utp/android-test-plugin-result-listener-gradle-proto@31.4.0?type=jar","dependsOn":["pkg:maven/com.google.code.gson/gson@2.10.1?type=jar","pkg:maven/com.google.guava/guava@32.0.1-jre?type=jar","pkg:maven/com.google.protobuf/protobuf-java@3.22.3?type=jar","pkg:maven/io.grpc/grpc-core@1.57.0?type=jar","pkg:maven/io.grpc/grpc-netty@1.57.0?type=jar","pkg:maven/io.grpc/grpc-protobuf@1.57.0?type=jar","pkg:maven/io.grpc/grpc-stub@1.57.0?type=jar","pkg:maven/javax.annotation/javax.annotation-api@1.3.2?type=jar"]},{"ref":"pkg:maven/com.google.testing.platform/core@0.0.9-alpha02?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.test.ext/junit@1.1.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.test/core@1.5.0?type=jar","pkg:maven/androidx.test/monitor@1.6.1?type=jar","pkg:maven/junit/junit@4.13.2?type=jar"]},{"ref":"pkg:maven/androidx.test.espresso/espresso-core@3.5.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.test.espresso/espresso-idling-resource@3.5.1?type=jar","pkg:maven/androidx.test/annotation@1.0.1?type=jar","pkg:maven/androidx.test/core@1.5.0?type=jar","pkg:maven/androidx.test/runner@1.5.2?type=jar","pkg:maven/com.google.code.findbugs/jsr305@2.0.2?type=jar","pkg:maven/com.squareup/javawriter@2.1.1?type=jar","pkg:maven/javax.inject/javax.inject@1?type=jar","pkg:maven/org.hamcrest/hamcrest-integration@1.3?type=jar","pkg:maven/org.hamcrest/hamcrest-library@1.3?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose/compose-bom@2024.04.00?type=jar","dependsOn":["pkg:maven/androidx.compose.animation/animation-android@1.6.5?type=jar","pkg:maven/androidx.compose.animation/animation-core-android@1.6.5?type=jar","pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-android@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout-android@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-android@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core-android@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple-android@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","pkg:maven/androidx.compose.material/material@1.6.5?type=jar","pkg:maven/androidx.compose.material3/material3-android@1.2.1?type=jar","pkg:maven/androidx.compose.material3/material3@1.2.1?type=jar","pkg:maven/androidx.compose.runtime/runtime-android@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable-android@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/junit/junit@4.13.2?type=jar","dependsOn":["pkg:maven/org.hamcrest/hamcrest-core@1.3?type=jar"]},{"ref":"pkg:maven/org.hamcrest/hamcrest-core@1.3?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.test/core@1.5.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.concurrent/concurrent-futures@1.1.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.3.1?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.test.services/storage@1.4.2?type=jar","pkg:maven/androidx.test/monitor@1.6.1?type=jar","pkg:maven/androidx.tracing/tracing@1.0.0?type=jar","pkg:maven/com.google.guava/listenablefuture@1.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation-jvm@1.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","pkg:maven/org.jetbrains/annotations@13.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.test/monitor@1.6.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.test/annotation@1.0.1?type=jar","pkg:maven/androidx.tracing/tracing@1.0.0?type=jar"]},{"ref":"pkg:maven/androidx.test/annotation@1.0.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation-experimental@1.1.0?type=jar","pkg:maven/androidx.annotation/annotation-experimental@1.4.0?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar"]},{"ref":"pkg:maven/androidx.annotation/annotation-experimental@1.1.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.tracing/tracing@1.0.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar"]},{"ref":"pkg:maven/androidx.test.services/storage@1.4.2?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.test/annotation@1.0.1?type=jar","pkg:maven/androidx.test/monitor@1.6.1?type=jar","pkg:maven/com.google.code.findbugs/jsr305@2.0.2?type=jar"]},{"ref":"pkg:maven/com.google.code.findbugs/jsr305@2.0.2?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-common@2.3.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar"]},{"ref":"pkg:maven/com.google.guava/listenablefuture@1.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.concurrent/concurrent-futures@1.1.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/com.google.guava/listenablefuture@1.0?type=jar"]},{"ref":"pkg:maven/androidx.test/runner@1.5.2?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.test.services/storage@1.4.2?type=jar","pkg:maven/androidx.test/annotation@1.0.1?type=jar","pkg:maven/androidx.test/monitor@1.6.1?type=jar","pkg:maven/androidx.tracing/tracing@1.0.0?type=jar","pkg:maven/junit/junit@4.13.2?type=jar"]},{"ref":"pkg:maven/androidx.test.espresso/espresso-idling-resource@3.5.1?type=jar","dependsOn":[]},{"ref":"pkg:maven/com.squareup/javawriter@2.1.1?type=jar","dependsOn":[]},{"ref":"pkg:maven/javax.inject/javax.inject@1?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.hamcrest/hamcrest-library@1.3?type=jar","dependsOn":["pkg:maven/org.hamcrest/hamcrest-core@1.3?type=jar"]},{"ref":"pkg:maven/org.hamcrest/hamcrest-integration@1.3?type=jar","dependsOn":["pkg:maven/org.hamcrest/hamcrest-library@1.3?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/junit/junit@4.13.2?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.runtime/runtime-android@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.runtime/runtime-saveable-android@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-geometry-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.8.20?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlinx/atomicfu@0.20.2?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.7.1?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.8.20?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.8.20?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.8.20?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.8.22?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/atomicfu@0.20.2?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.8.22?type=jar","pkg:maven/org.jetbrains.kotlinx/atomicfu@0.20.2?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test-jvm@1.7.1?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.0?type=jar","pkg:maven/org.jetbrains/annotations@13.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk7@1.9.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.annotation/annotation-jvm@1.7.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains/annotations@13.0?type=jar","pkg:maven/org.jetbrains/annotations@23.0.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","dependsOn":[]},{"ref":"pkg:maven/androidx.annotation/annotation-experimental@1.4.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.7.1?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.7.1?type=jar","pkg:maven/org.jetbrains/annotations@23.0.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.7.1?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test-jvm@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test-jvm@1.7.1?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-jdk8@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-bom@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","pkg:maven/org.jetbrains/annotations@23.0.0?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar","pkg:maven/androidx.arch.core/core-runtime@2.2.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.profileinstaller/profileinstaller@1.3.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar","pkg:maven/androidx.arch.core/core-runtime@2.2.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.material3/material3@1.2.1?type=jar","dependsOn":["pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","pkg:maven/androidx.compose.material3/material3-android@1.2.1?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.activity/activity@1.8.2?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-tooling-android@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview-android@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-test-junit4-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","pkg:maven/androidx.activity/activity@1.8.2?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.test.espresso/espresso-core@3.5.1?type=jar","pkg:maven/androidx.test.espresso/espresso-idling-resource@3.5.1?type=jar","pkg:maven/androidx.test.ext/junit@1.1.5?type=jar","pkg:maven/androidx.test/core@1.5.0?type=jar","pkg:maven/androidx.test/monitor@1.6.1?type=jar","pkg:maven/junit/junit@4.13.2?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-ktx@1.8.2?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.autofill/autofill@1.0.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/androidx.customview/customview-poolingcontainer@1.0.0?type=jar","pkg:maven/androidx.emoji2/emoji2@1.3.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.profileinstaller/profileinstaller@1.3.0?type=jar","pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-graphics-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.material3/material3-android@1.2.1?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","pkg:maven/androidx.annotation/annotation-experimental@1.4.0?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-tooling-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-tooling-preview-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.runtime/runtime-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-android@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.runtime/runtime-saveable-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-android@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.foundation/foundation-layout-android@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.material/material-icons-core-android@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple-android@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-tooling-data-android@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-test-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","pkg:maven/androidx.test.espresso/espresso-core@3.5.1?type=jar","pkg:maven/androidx.test/monitor@1.6.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-test@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-geometry-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-text-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/androidx.emoji2/emoji2@1.3.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-unit-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection-ktx@1.4.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-util-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-data@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.foundation/foundation-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/androidx.emoji2/emoji2@1.3.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.foundation/foundation-layout-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.material/material-icons-core-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","pkg:maven/androidx.compose.material/material@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.material/material-ripple-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","pkg:maven/androidx.compose.material/material@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.ui/ui-tooling-data-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-graphics@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-junit4@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test-manifest@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-test@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling-preview@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-tooling@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.animation/animation-android@1.6.5?type=jar","pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.animation/animation-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-geometry@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.animation/animation-core-android@1.6.5?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.compose.animation/animation-core-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-unit@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlinx/kotlinx-coroutines-core@1.7.1?type=jar"]},{"ref":"pkg:maven/androidx.activity/activity@1.8.2?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","pkg:maven/androidx.activity/activity-ktx@1.8.2?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.profileinstaller/profileinstaller@1.3.0?type=jar","pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","pkg:maven/androidx.tracing/tracing@1.0.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.core/core@1.12.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation-experimental@1.3.0?type=jar","pkg:maven/androidx.annotation/annotation-experimental@1.4.0?type=jar","pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.concurrent/concurrent-futures@1.1.0?type=jar","pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","pkg:maven/androidx.interpolator/interpolator@1.0.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.versionedparcelable/versionedparcelable@1.1.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar"]},{"ref":"pkg:maven/androidx.versionedparcelable/versionedparcelable@1.1.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar"]},{"ref":"pkg:maven/androidx.collection/collection@1.4.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection-jvm@1.4.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.collection/collection-jvm@1.4.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection-ktx@1.4.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","dependsOn":["pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-ktx@1.8.2?type=jar","pkg:maven/androidx.activity/activity@1.8.2?type=jar","pkg:maven/androidx.compose.runtime/runtime-saveable@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.activity/activity-ktx@1.8.2?type=jar","dependsOn":["pkg:maven/androidx.activity/activity-compose@1.8.2?type=jar","pkg:maven/androidx.activity/activity@1.8.2?type=jar","pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.savedstate/savedstate-ktx@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.9.10?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/com.squareup.okhttp3/okhttp@4.8.0?type=jar","dependsOn":["pkg:maven/com.squareup.okio/okio@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/com.squareup.okio/okio@2.7.0?type=jar","dependsOn":["pkg:maven/com.squareup.okio/okio-metadata@2.7.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.startup/startup-runtime@1.1.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.collection/collection-ktx@1.4.0?type=jar","dependsOn":["pkg:maven/androidx.collection/collection@1.4.0?type=jar"]},{"ref":"pkg:maven/androidx.interpolator/interpolator@1.0.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar"]},{"ref":"pkg:maven/androidx.arch.core/core-runtime@2.2.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.arch.core/core-common@2.2.0?type=jar"]},{"ref":"pkg:maven/androidx.profileinstaller/profileinstaller@1.3.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.concurrent/concurrent-futures@1.1.0?type=jar","pkg:maven/androidx.startup/startup-runtime@1.1.1?type=jar","pkg:maven/com.google.guava/listenablefuture@1.0?type=jar"]},{"ref":"pkg:maven/androidx.startup/startup-runtime@1.1.1?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.tracing/tracing@1.0.0?type=jar"]},{"ref":"pkg:maven/androidx.autofill/autofill@1.0.0?type=jar","dependsOn":["pkg:maven/androidx.core/core@1.12.0?type=jar"]},{"ref":"pkg:maven/androidx.emoji2/emoji2@1.3.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.collection/collection@1.4.0?type=jar","pkg:maven/androidx.core/core@1.12.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.startup/startup-runtime@1.1.1?type=jar"]},{"ref":"pkg:maven/androidx.customview/customview-poolingcontainer@1.0.0?type=jar","dependsOn":["pkg:maven/androidx.core/core-ktx@1.12.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.lifecycle/lifecycle-common-java8@2.7.0?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-common@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-livedata-core@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-process@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-ktx@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel-savedstate@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar"]},{"ref":"pkg:maven/androidx.compose.material/material@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.compose.material/material-android@1.6.5?type=jar"]},{"ref":"pkg:maven/androidx.compose.material/material-android@1.6.5?type=jar","dependsOn":["pkg:maven/androidx.annotation/annotation@1.7.0?type=jar","pkg:maven/androidx.compose.animation/animation-core@1.6.5?type=jar","pkg:maven/androidx.compose.animation/animation@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation-layout@1.6.5?type=jar","pkg:maven/androidx.compose.foundation/foundation@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-icons-core@1.6.5?type=jar","pkg:maven/androidx.compose.material/material-ripple@1.6.5?type=jar","pkg:maven/androidx.compose.runtime/runtime@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-text@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui-util@1.6.5?type=jar","pkg:maven/androidx.compose.ui/ui@1.6.5?type=jar","pkg:maven/androidx.lifecycle/lifecycle-runtime@2.7.0?type=jar","pkg:maven/androidx.lifecycle/lifecycle-viewmodel@2.7.0?type=jar","pkg:maven/androidx.savedstate/savedstate@1.2.1?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.annotation/annotation-experimental@1.3.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.10?type=jar"]},{"ref":"pkg:maven/com.squareup.okio/okio-metadata@2.7.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-stdlib-common@1.9.10?type=jar"]},{"ref":"pkg:maven/androidx.compose.compiler/compiler@1.5.1?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-impl@1.9.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-api@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-build-tools-api@1.9.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-compiler-embeddable@1.9.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.intellij.deps/trove4j@1.0.20200330?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-daemon-embeddable@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.6.10?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-script-runtime@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar"]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-script-runtime@1.9.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-reflect@1.6.10?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-daemon-embeddable@1.9.0?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.intellij.deps/trove4j@1.0.20200330?type=jar","dependsOn":[]},{"ref":"pkg:maven/org.jetbrains.kotlin/kotlin-klib-commonizer-embeddable@1.9.0?type=jar","dependsOn":["pkg:maven/org.jetbrains.kotlin/kotlin-compiler-embeddable@1.9.0?type=jar","pkg:maven/org.jetbrains.kotlin/kotlin-stdlib@1.9.0?type=jar"]}]} \ No newline at end of file diff --git a/demos/android/MASVS-CODE/MASTG-DEMO-0022/run.sh b/demos/android/MASVS-CODE/MASTG-DEMO-0022/run.sh new file mode 100644 index 0000000000..9ca300887f --- /dev/null +++ b/demos/android/MASVS-CODE/MASTG-DEMO-0022/run.sh @@ -0,0 +1 @@ +cdxgen -t java -o sbom.json \ No newline at end of file diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0020/MASTG-DEMO-0020.md b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/MASTG-DEMO-0020.md new file mode 100644 index 0000000000..d4704931bc --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/MASTG-DEMO-0020.md @@ -0,0 +1,27 @@ +--- +platform: ios +title: Scanning Package Manager Artifacts for Insecure iOS Dependencies +id: MASTG-DEMO-0020 +code: [java] +test: MASTG-TEST-0215 +--- + +### Sample + +{{ Package.resolved # Package.resolved }} + +### Steps + +Let's run @MASTG-TOOL-0116 in the root directory of the Xcode project. + +{{ run.sh }} + +### Observation + +The SARIF file can be opened by using @MASTG-TOOL-0118 for analyzing the identified vulnerabilities. + +{{ output.txt }} + +### Evaluation + +Review each of the reported instances, as it can contain false positives. The library `swift-nio` has at least 2 known vulnerabilities as part of Swift with CVE-2022-3918 and CVE-2022-1642 and should be updated to the latest version. diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0020/Package.resolved b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/Package.resolved new file mode 100644 index 0000000000..ac1796e354 --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/Package.resolved @@ -0,0 +1,15 @@ +{ + "originHash" : "b68c973e78e301de37753c919a62c1dda9a70e82a8dbd432336372a4edf9b951", + "pins" : [ + { + "identity" : "swift-nio", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio.git", + "state" : { + "revision" : "6aa9347d9bc5bbfe6a84983aec955c17ffea96ef", + "version" : "2.33.0" + } + } + ], + "version" : 3 +} diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0020/output.txt b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/output.txt new file mode 100644 index 0000000000..c6ddd443c3 --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/output.txt @@ -0,0 +1,63 @@ +{ + "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "name": "dependency-check", + "version": "10.0.4", + "informationUri": "https://jeremylong.github.io/DependencyCheck/", + "rules": [ + { + "id": "CVE-2020-9861", + "shortDescription": { + "text": "high severity - CVE-2020-9861 Uncontrolled Recursion vulnerability in pkg:swift\/swift-nio@2.33.0" + }, + "fullDescription": { + "text": "A stack overflow issue existed in Swift for Linux. The issue was addressed with improved input validation for dealing with deeply nested malicious JSON input." + }, + "help": { + "text": "", + "markdown": "For more information see [CVE-2020-9861](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-9861).\n\n\nIf this is a false positive - consider using the HTML report to generate a suppression file. For more information see [How dependency-check works](https://jeremylong.github.io/DependencyCheck/general/internals.html), [How to read the HTML report](https://jeremylong.github.io/DependencyCheck/general/thereport.html), and [Suppressing false positives](https://jeremylong.github.io/DependencyCheck/general/suppression.html)." + }, + "properties": { + "cvssv2_score": 5.0, + "cvssv2_accessVector": "NETWORK", + "cvssv2_accessComplexity": "LOW", + "cvssv2_authenticationr": "NONE", + "cvssv2_confidentialityImpact": "NONE", + "cvssv2_integrityImpact": "NONE", + "cvssv2_availabilityImpact": "PARTIAL", + "cvssv2_severity": "MEDIUM", + "cvssv3_baseScore": 7.5, + "security-severity": "7.5", + "cvssv3_attackVector": "NETWORK", + "cvssv3_attackComplexity": "LOW", + "cvssv3_privilegesRequired": "NONE", + "cvssv3_userInteraction": "NONE", + "cvssv3_scope": "UNCHANGED", + "cvssv3_confidentialityImpact": "NONE", + "cvssv3_integrityImpact": "NONE", + "cvssv3_availabilityImpact": "HIGH", + "cvssv3_baseSeverity": "HIGH", + "cvssv3_exploitabilityScore": "3.9", + "cvssv3_impactScore": "3.6", + "cvssv3_version": "_3_1", + "source": "NVD" + } + }, + { + "id": "CVE-2022-1642", + "shortDescription": { + "text": "high severity - CVE-2022-1642 Incorrect Type Conversion or Cast vulnerability in pkg:swift\/swift-nio@2.33.0" + }, + "fullDescription": { + "text": "A program using swift-corelibs-foundation is vulnerable to a denial of service attack caused by a potentially malicious source producing a JSON document containing a type mismatch. This vulnerability is caused by the interaction between a deserialization mechanism offered by the Swift standard library, the Codable protocol; and the JSONDecoder class offered by swift-corelibs-foundation, which can deserialize types that adopt the Codable protocol based on the content of a provided JSON document. When a type that adopts Codable requests the initialization of a field with an integer value, the JSONDecoder class uses a type-erased container with different accessor methods to attempt and coerce a corresponding JSON value and produce an integer. In the case the JSON value was a numeric literal with a floating-point portion, JSONDecoder used different type-eraser methods during validation than it did during the final casting of the value. The checked casting produces a deterministic crash due to this mismatch. The JSONDecoder class is often wrapped by popular Swift-based web frameworks to parse the body of HTTP requests and perform basic type validation. This makes the attack low-effort: sending a specifically crafted JSON document during a request to these endpoints will cause them to crash. The attack does not have any confidentiality or integrity risks in and of itself; the crash is produced deterministically by an abort function that ensures that execution does not continue in the face of this violation of assumptions. However, unexpected crashes can lead to violations of invariants in services, so it's possible that this attack can be used to trigger error conditions that escalate the risk. Producing a denial of service may also be the goal of an attacker in itself. This issue is solved in Swift 5.6.2 for Linux and Windows. This issue was solved by ensuring that the same methods are invoked both when validating and during casting, so that no type mismatch occurs. Swift for Linux and Windows versions are not ABI-interchangeable. To upgrade a service, its owner must update to this version of the Swift toolchain, then recompile and redeploy their software. The new version of Swift includes an updated swift-corelibs-foundation package. Versions of Swift running on Darwin-based operating systems are not affected." + }, + "help": { + "text": "", + "markdown": "For more information see [CVE-2022-1642](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2022-1642).\n\n\nIf this is a false positive - consider using the HTML report to generate a suppression file. For more information see [How dependency-check works](https://jeremylong.github.io/DependencyCheck/general/internals.html), [How to read the HTML report](https://jeremylong.github.io/DependencyCheck/general/thereport.html), and [Suppressing false positives](https://jeremylong.github.io/DependencyCheck/general/suppression.html)." + + } +...[REDACTED]... \ No newline at end of file diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0020/run.sh b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/run.sh new file mode 100644 index 0000000000..5dfadd4bca --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0020/run.sh @@ -0,0 +1,2 @@ +$NVD_API_KEY="YOUR_NVD_API" +dependency-check --enableExperimental -f SARIF --nvdApiKey $NVD_API_KEY -s Package.resolved \ No newline at end of file diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0023/MASTG-DEMO-0023.md b/demos/ios/MASVS-CODE/MASTG-DEMO-0023/MASTG-DEMO-0023.md new file mode 100644 index 0000000000..bb37a2555e --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0023/MASTG-DEMO-0023.md @@ -0,0 +1,24 @@ +--- +platform: ios +title: Identifying Insecure Dependencies in SwiftPM through SBOM creation +id: MASTG-DEMO-0023 +test: MASTG-TEST-0215 +--- + +### Steps + +Execute @MASTG-TOOL-0119 in the root directory of the Xcode project. + +{{ run.sh }} + +This will create a SBOM file that can be uploaded to @MASTG-TOOL-0117 by following @MASTG-TECH-0123. + +### Observation + +In the project of @MASTG-TOOL-0117, where the SBOM has been uploaded, the scan should have identified 2 unique dependencies (components) with 2 vulnerable dependencies and 2 vulnerabilities (as more vulnerabilities might be found over time this number might increase). + +{{ output.txt }} + +### Evaluation + +Review each of the reported instances. The dependency `swift-nio` has 2 known vulnerabilities and should be updated to the latest version. diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0023/output.txt b/demos/ios/MASVS-CODE/MASTG-DEMO-0023/output.txt new file mode 100644 index 0000000000..9d9ed267fc --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0023/output.txt @@ -0,0 +1,129 @@ +{ + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:54c73891-97b0-40be-90a1-a432ffc62330", + "version": 1, + "metadata": { + "timestamp": "2024-10-20T17:34:54Z", + "tools": { + "components": [ + { + "group": "@cyclonedx", + "name": "cdxgen", + "version": "10.10.5", + "purl": "pkg:npm/%40cyclonedx/cdxgen@10.10.5", + "type": "application", + "bom-ref": "pkg:npm/@cyclonedx/cdxgen@10.10.5", + "author": "OWASP Foundation", + "publisher": "OWASP Foundation" + } + ] + }, + "authors": [ + { + "name": "OWASP Foundation" + } + ], + "lifecycles": [ + { + "phase": "build" + } + ], + "component": { + "group": "", + "name": "MASTestApp-iOS-MASWE-0076", + "version": "latest", + "type": "application", + "bom-ref": "pkg:swift/MASTestApp-iOS-MASWE-0076@latest", + "purl": "pkg:swift/MASTestApp-iOS-MASWE-0076@latest" + }, + "properties": [ + { + "name": "cdx:bom:componentTypes", + "value": "github\\nswift" + }, + { + "name": "cdx:bom:componentNamespaces", + "value": "actions\\ngithub.com/apple" + } + ] + }, + "components": [ + { + "group": "actions", + "name": "checkout", + "version": "v4", + "purl": "pkg:github/actions/checkout@v4", + "type": "application", + "bom-ref": "pkg:github/actions/checkout@v4" + }, + { + "group": "github.com/apple", + "name": "swift-nio", + "version": "1.4.0", + "purl": "pkg:swift/github.com/apple/swift-nio@1.4.0", + "externalReferences": [ + { + "type": "vcs", + "url": "https://github.com/apple/swift-nio.git" + } + ], + "type": "library", + "bom-ref": "pkg:swift/github.com/apple/swift-nio@1.4.0", + "evidence": { + "identity": { + "field": "purl", + "confidence": 1, + "methods": [ + { + "technique": "manifest-analysis", + "confidence": 1, + "value": "/Users/sushi2k/Documents/mastg-apps/MASTestApp-iOS-MASWE-0076/MASTestApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved" + } + ] + } + }, + "properties": [ + { + "name": "SrcFile", + "value": "/Users/sushi2k/Documents/mastg-apps/MASTestApp-iOS-MASWE-0076/MASTestApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved" + } + ] + }, + { + "group": "github.com/apple", + "name": "swift-nio-zlib-support", + "version": "1.0.0", + "purl": "pkg:swift/github.com/apple/swift-nio-zlib-support@1.0.0", + "externalReferences": [ + { + "type": "vcs", + "url": "https://github.com/apple/swift-nio-zlib-support.git" + } + ], + "type": "library", + "bom-ref": "pkg:swift/github.com/apple/swift-nio-zlib-support@1.0.0", + "evidence": { + "identity": { + "field": "purl", + "confidence": 1, + "methods": [ + { + "technique": "manifest-analysis", + "confidence": 1, + "value": "/Users/sushi2k/Documents/mastg-apps/MASTestApp-iOS-MASWE-0076/MASTestApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved" + } + ] + } + }, + "properties": [ + { + "name": "SrcFile", + "value": "/Users/sushi2k/Documents/mastg-apps/MASTestApp-iOS-MASWE-0076/MASTestApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved" + } + ] + } + ], + "services": [], + "dependencies": [] +} \ No newline at end of file diff --git a/demos/ios/MASVS-CODE/MASTG-DEMO-0023/run.sh b/demos/ios/MASVS-CODE/MASTG-DEMO-0023/run.sh new file mode 100644 index 0000000000..36b35255d2 --- /dev/null +++ b/demos/ios/MASVS-CODE/MASTG-DEMO-0023/run.sh @@ -0,0 +1 @@ +cdxgen -o sbom.json \ No newline at end of file diff --git a/techniques/android/MASTG-TECH-0112.md b/techniques/android/MASTG-TECH-0112.md new file mode 100644 index 0000000000..1a938173ce --- /dev/null +++ b/techniques/android/MASTG-TECH-0112.md @@ -0,0 +1,50 @@ +--- +title: Software Composition Analysis (SCA) of Android Dependencies during the Build +platform: android +--- + +For Android both popular build automation tools, are also dependency managers: + +- [Gradle](https://developer.android.com/build/dependencies) and +- Maven. + +Gradle is the default build automation tool in Android Studio and this technique will focus on it. + +Tools like @MASTG-TOOL-0116 can be integrated into the build environments, where they can inspect the build configuration files or the actual `.jar` files and their metadata, such as the version, to identify dependencies. Once identified such tools will identify known vulnerabilities in the dependencies by comparing them to a vulnerability database (like the National Vulnerability Database, NVD). + +In order to test for dependencies with known vulnerabilities, we need to integrate the @MASTG-TOOL-0116 plugin into the Android project via Gradle. The dependencies of the Android project are located in the following directory `~/.gradle/caches/modules-2/files-2.1`, and not in the Android Project directory. + +The dependencies will be integrated into the project during run-time, but will also be modified and compiled into the DEX file(s) of the APK. therefore we need to scan dependencies in Android Studio and cannot scan the APK. + +Before we can run the scan, you will need to obtain an API key for NVD, which is used to retrieve the latest CVE information. The API Key to access the NVD API can be requested from . + +In the `build.gradle` of `Module: app` (not the project `build.gradle` file), add the `dependencycheck` dependency in the latest version and the `dependencyCheck` configuration: + +```groovy +plugins { + ... + id("org.owasp.dependencycheck") version "10.0.4" // This is the latest version at the time of writing, please update accordingly +} + +dependencyCheck { + + formats = listOf("HTML", "XML", "JSON") // Generate reports in HTML, JSON and XML format + + nvd { + apiKey = "" + delay = 16000 + } + +} +``` + +Open a terminal in Android Studio and execute the following command: + +```bash +$ ./gradlew dependencyCheckAnalyze +... +BUILD SUCCESSFUL in 6s +1 actionable task: 1 executed +``` + +The report was generated in 3 different formats (HTML, JSON and XML) and can be found in the project directory in `app/build/reports`. diff --git a/techniques/android/MASTG-TECH-0121.md b/techniques/android/MASTG-TECH-0121.md new file mode 100644 index 0000000000..1eb0513e50 --- /dev/null +++ b/techniques/android/MASTG-TECH-0121.md @@ -0,0 +1,8 @@ +--- +title: Verifying Android Dependencies during runtime +platform: android +--- + +> The preferred technique for analyzing dependencies, is @MASTG-TECH-0112 or @MASTG-TECH-0122. This technique described here should only be used in a black-box environment, as it is manual and and cannot easily be automated. + +When analysing an application, it's important to analyse the dependencies of the application, usually in the form of libraries, and make sure they don't contain any known vulnerabilities. If the sources are not available, you can decompile the application and check the JAR files. If @MASTG-TOOL-0022D or other obfuscation tools are used properly, the version information about the library is often obfuscated and therefore gone. Otherwise, the information can often still be found in the comments of the Java files of given libraries. Tools such as @MASTG-TOOL-0002 can help to analyse the possible libraries packaged with the application. If you can get the version of the library, either from the comments or from specific methods used in certain versions, you can look for CVEs by hand. diff --git a/techniques/android/MASTG-TECH-0122.md b/techniques/android/MASTG-TECH-0122.md new file mode 100644 index 0000000000..c81ce24c91 --- /dev/null +++ b/techniques/android/MASTG-TECH-0122.md @@ -0,0 +1,27 @@ +--- +title: Software Composition Analysis (SCA) of Android Dependencies by Creating a SBOM +platform: android +--- + +@MASTG-TOOL-0119 can be used to create a so called Software Bill of Material (SBOM) in the CycloneDX format. Navigate to the root directory of the Android Studio project you want to scan and execute the following command: + +```bash +$ cdxgen -t java -o sbom.json +``` + +The created SBOM file need to be Base64 encoded and can then be uploaded to @MASTG-TOOL-0117 for analysis: + +```bash +$ cat sbom.json | base64 +$ curl -X "PUT" "http://localhost:8081/api/v1/bom" \ + -H 'Content-Type: application/json' \ + -H 'X-API-Key: >' \ + -d $'{ + "project": "", + "bom": "" + }' +``` + +Go to the frontend of dependency-check, which is , if you are using the default settings of the dependency-track docker container. Open the project you uploaded the SBOM to and you can verify if there are any vulnerable dependencies. + +> Note: Transitive dependencies are supported by @MASTG-TOOL-0117 for [Java and Kotlin](https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES). diff --git a/techniques/ios/MASTG-TECH-0115.md b/techniques/ios/MASTG-TECH-0115.md new file mode 100644 index 0000000000..9511b97af3 --- /dev/null +++ b/techniques/ios/MASTG-TECH-0115.md @@ -0,0 +1,31 @@ +--- +title: Verifying iOS Dependencies during runtime +platform: ios +--- + +> The preferred technique for analyzing dependencies, is @MASTG-TECH-0123 or @MASTG-TECH-0124. This technique described here should only be used in a black-box environment, as it is manual and cannot easily be automated. + +When performing app analysis, it is important to also analyze the app dependencies, usually in the form of libraries or so-called iOS Frameworks and ensure that they don't contain any known vulnerabilities. Even when you don't have the source code, you can still identify some of the app dependencies using tools like @MASTG-TOOL-0038, @MASTG-TOOL-0035 or the `otool -L` command. @MASTG-TOOL-0038 is the recommended tool, since it provides the most accurate results and it is easy to use. It contains a module to work with iOS Bundles, which offers two commands: `list_bundles` and `list_frameworks`. + +The `list_bundles` command lists all of the application’s bundles that are not related to frameworks. The output contains the executable name, bundle id, version of the library and path to the library. + +```bash +...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios bundles list_bundles +Executable Bundle Version Path +------------ ----------------------------------------- --------- ------------------------------------------- +DVIA-v2 com.highaltitudehacks.DVIAswiftv2.develop 2 ...-1F0C-4DB1-8C39-04ACBFFEE7C8/DVIA-v2.app +CoreGlyphs com.apple.CoreGlyphs 1 ...m/Library/CoreServices/CoreGlyphs.bundle +``` + +The `list_frameworks` command lists all of the application’s bundles that represent frameworks and their version. + +```bash +...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios bundles list_frameworks +Executable Bundle Version Path +-------------- ----------------------------------------- --------- ------------------------------------------- +Bolts org.cocoapods.Bolts 1.9.0 ...8/DVIA-v2.app/Frameworks/Bolts.framework +RealmSwift org.cocoapods.RealmSwift 4.1.1 ...A-v2.app/Frameworks/RealmSwift.framework +... +``` + +With this information it is possible to investigate manually if the frameworks and it's version have publicly known vulnerabilities. diff --git a/techniques/ios/MASTG-TECH-0123.md b/techniques/ios/MASTG-TECH-0123.md new file mode 100644 index 0000000000..f6be56080b --- /dev/null +++ b/techniques/ios/MASTG-TECH-0123.md @@ -0,0 +1,29 @@ +--- +title: Software Composition Analysis (SCA) of iOS Dependencies by Creating a SBOM +platform: ios +--- + +@MASTG-TOOL-0119 can be used to create a so called Software Bill of Material (SBOM) in the CycloneDX format in case SwiftPM is used (Carthage and CocoaPods are not supported yet). Either you ask the development team to provide the SBOM file to you, or you create the SBOM by yourself. To do this, navigate to the root directory of the Xcode project you want to scan and execute the following command: + +```bash +$ cdxgen -o sbom.json +``` + +The created SBOM file need to be Base64 encoded and can then be uploaded to @MASTG-TOOL-0117 for analysis: + +```bash +$ cat sbom.json | base64 +$ curl -X "PUT" "http://localhost:8081/api/v1/bom" \ + -H 'Content-Type: application/json' \ + -H 'X-API-Key: >' \ + -d $'{ + "project": "", + "bom": "" + }' +``` + +Check also [alternatives for uploading](https://docs.dependencytrack.org/usage/cicd/) the SBOM file, in case the produced json file is too large. + +Go to the frontend of @MASTG-TOOL-0117, which is , if you are using the default settings of the @MASTG-TOOL-0118 docker container. Open the project you uploaded the SBOM to and you can verify if there are any vulnerable dependencies. + +> Note: Transitive dependencies are not supported by @MASTG-TOOL-0119 for [SwiftPM](https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES). diff --git a/techniques/ios/MASTG-TECH-0124.md b/techniques/ios/MASTG-TECH-0124.md new file mode 100644 index 0000000000..e973388a82 --- /dev/null +++ b/techniques/ios/MASTG-TECH-0124.md @@ -0,0 +1,48 @@ +--- +title: Software Composition Analysis (SCA) of iOS Dependencies by Scanning Package Manager Artifacts +platform: ios +--- + +iOS has several dependency managers, where the most popular are: + +- [Carthage](https://github.com/Carthage/Carthage), +- [CocoaPods](https://github.com/CocoaPods/CocoaPods) and +- [SwiftPM](https://github.com/swiftlang/swift-package-manager) (Swift Package Manager) + +The dependencies are integrated into the project during build and compiled into the IPA. The version information of the dependencies may be stripped out during compilation, so we cannot scan the IPA file, but we can scan the artifacts produced by the dependency managers. + +Tools such as @MASTG-TOOL-0116 can be used to scan the files created by all three dependency managers, which list the dependencies as [Common Platform Enumeration (CPE)](https://nvd.nist.gov/products/cpe "CPE") and their versions, which will be included in the iOS app. Once identified, such tools will search for known vulnerabilities, so called [CVE's (Common Vulnerability and Exposure)](https://cve.mitre.org/ "CVE") in the dependencies by checking them against a vulnerability database such as the National Vulnerability Database (NVD). + +> Note that @MASTG-TOOL-0116 does support [Carthage](https://jeremylong.github.io/DependencyCheck/analyzers/carthage.html), [CocoaPods](https://jeremylong.github.io/DependencyCheck/analyzers/cocoapods.html) and [SwiftPM](https://jeremylong.github.io/DependencyCheck/analyzers/swift.html), but the analyzers are considered experimental. While this analyzer may be useful and provide valid results more testing must be completed to ensure that the false negative/positive rates are acceptable. + +In order to test with @MASTG-TOOL-0116, we need to retrieve the corresponding file of the dependency manager used: + +- For Carthage it is the file `Cartfile.resolved`. +- For CocoaPods it is the file `*.podspec` or `Podfile.lock` +- For SwiftPM it is the file `Package.swift` or `Package.resolved` + +Keep in mind that developers may use more than one dependency manager and you might need to execute therefore more than one scan. When scanning with @MASTG-TOOL-0116 it is sufficient to scan the file created by the dependency manager, you don't need access to the whole Xcode project or source code. + +Before we can run the scan, you will need to obtain an API key for NVD, which is used to retrieve the latest CVE information. The API Key to access the NVD API can be requested from . + +- To start a scan for a project using SwiftPM, execute the following command to scan the `Package.Swift` or `Package.resolved`: + +```bash +$ dependency-check --enableExperimental -f SARIF --nvdApiKey -s Package.resolved +``` + +- To start a scan for a project using CocoaPods, execute the following command to scan the `Podfile.lock` or `*.podspec`: + +```bash +$ dependency-check --enableExperimental -f SARIF --nvdApiKey -s Podfile.lock +``` + +- To start a scan for a project using Carthage, execute the following command to scan the `Cartfile.resolved.`: + +```bash +$ dependency-check --enableExperimental -f SARIF --nvdApiKey -s Cartfile.resolved +``` + +The output is always a SARIF file which can be viewed using the Sarif viewer plugin in @MASTG-TOOL-0118. If any known vulnerabilities are found, they will be listed with their CVE number and description. + +You can only scan one file at at time. If you are scanning for CocoaPods or Carthage, you can use the same command again, but scan the corresponding dependency manager file instead. diff --git a/tests-beta/android/MASVS-CODE/MASTG-TEST-0216.md b/tests-beta/android/MASVS-CODE/MASTG-TEST-0216.md new file mode 100644 index 0000000000..4cbc9834b2 --- /dev/null +++ b/tests-beta/android/MASVS-CODE/MASTG-TEST-0216.md @@ -0,0 +1,23 @@ +--- +platform: android +title: Identify Dependencies with Known Vulnerabilities in the Android Project +id: MASTG-TEST-0216 +type: [static] +weakness: MASWE-0076 +--- + +## Overview + +In this test case we will identify dependencies in Android Studio and scan them with @MASTG-TOOL-0116. + +## Steps + +1. Follow @MASTG-TECH-0112 and execute a scan through the build environment of Android Studio by using Gradle. + +## Observation + +The output should include the dependency and the CVE identifiers for any dependency with known vulnerabilities. + +## Evaluation + +The test case fails if you can find dependencies with known vulnerabilities. diff --git a/tests-beta/android/MASVS-CODE/MASTG-TEST-0218.md b/tests-beta/android/MASVS-CODE/MASTG-TEST-0218.md new file mode 100644 index 0000000000..44838a29e4 --- /dev/null +++ b/tests-beta/android/MASVS-CODE/MASTG-TEST-0218.md @@ -0,0 +1,25 @@ +--- +platform: android +title: Identify Dependencies with Known Vulnerabilities through usage of SBOM +id: MASTG-TEST-0218 +type: [static] +weakness: MASWE-0076 +--- + +## Overview + +In this test case we are identifying dependencies with known vulnerabilities by relying on a Software Bill of Material (SBOM). + +## Steps + +1. Either ask the development team to share a SBOM in CycloneDX format, or create one by yourself and follow @MASTG-TECH-0122. + +2. Open @MASTG-TOOL-0117 and inspect the project where the SBOM was uploaded for the use of vulnerable dependencies. + +## Observation + +The output should include the dependency and the CVE identifiers for any dependency with known vulnerabilities. + +## Evaluation + +The test case fails if you can find dependencies with known vulnerabilities. diff --git a/tests-beta/ios/MASVS-CODE/MASTG-TEST-0215.md b/tests-beta/ios/MASVS-CODE/MASTG-TEST-0215.md new file mode 100644 index 0000000000..5bcedec434 --- /dev/null +++ b/tests-beta/ios/MASVS-CODE/MASTG-TEST-0215.md @@ -0,0 +1,25 @@ +--- +platform: ios +title: Identify Dependencies with Known Vulnerabilities by Scanning Dependency Managers Artifacts +id: MASTG-TEST-0215 +type: [static] +weakness: MASWE-0076 +--- + +## Overview + +In this test case we are identifying dependencies with known vulnerabilities in iOS. Dependencies are integrated through dependency managers, and there might be one or more of them being used. We therefore need all of the relevant artifacts created by them to analyse them with a SCA scanning tool. + +## Steps + +1. In order to do this in the most efficient way you would need to ask the developer(s) which dependency managers are being used and to share the relevant file(s) created by them. Follow @MASTG-TECH-0124 for on overview of the package managers and request for the relevant files. + +2. Run a SCA analysis tool such as @MASTG-TOOL-0116 against the file(s) created by the dependency manager(s) and look for the use of vulnerable dependencies. + +## Observation + +The output should include the dependency name and the CVE identifiers for any dependency with known vulnerabilities. + +## Evaluation + +The test case fails if you can find dependencies with known vulnerabilities. diff --git a/tests-beta/ios/MASVS-CODE/MASTG-TEST-0217.md b/tests-beta/ios/MASVS-CODE/MASTG-TEST-0217.md new file mode 100644 index 0000000000..219b0a6b6d --- /dev/null +++ b/tests-beta/ios/MASVS-CODE/MASTG-TEST-0217.md @@ -0,0 +1,25 @@ +--- +platform: ios +title: Identify Dependencies with Known Vulnerabilities through usage of SBOM +id: MASTG-TEST-0217 +type: [static] +weakness: MASWE-0076 +--- + +## Overview + +In this test case we are identifying SwiftPM dependencies with known vulnerabilities by relying on a Software Bill of Material (SBOM). + +## Steps + +1. Either ask the development team to share a SBOM in CycloneDX format, or create one by yourself and follow @MASTG-TECH-0123. + +2. Open @MASTG-TOOL-0117 and inspect the project where the SBOM was uploaded for the use of vulnerable dependencies. + +## Observation + +The output should include the dependency name and the CVE identifiers for any dependency with known vulnerabilities. + +## Evaluation + +The test case fails if you can find dependencies with known vulnerabilities. diff --git a/tools/android/MASTG-TOOL-0125.md b/tools/android/MASTG-TOOL-0125.md new file mode 100644 index 0000000000..4bc1a9c42a --- /dev/null +++ b/tools/android/MASTG-TOOL-0125.md @@ -0,0 +1,15 @@ +--- +title: blint +platform: android +source: https://github.com/owasp-dep-scan/blint +--- + +[BLint](https://github.com/owasp-dep-scan/blint) is a Binary Linter that checks the security properties and capabilities of an executable. Since version 2, `blint` can generate Software Bill-of-Materials (SBOM) for supported binaries, which includes Android (APK and AAB), but not iOS (IPA) apps. + +The creation of an SBOM out of an Android App (APK or AAB) is supported, but [limited](https://github.com/owasp-dep-scan/blint/issues/119). Due to stripping out meta-information of the libraries used in an app, a SBOM created ouf of an Android app will always be incomplete. + +BLint can be a choice in a black-box security assessment, but other tools should be preferred during a grey/white-box test, like: + +- @MASTG-TOOL-0116 +- @MASTG-TOOL-0117 +- @MASTG-TOOL-0119 diff --git a/tools/generic/MASTG-TOOL-0116.md b/tools/generic/MASTG-TOOL-0116.md new file mode 100644 index 0000000000..89f97ffc4a --- /dev/null +++ b/tools/generic/MASTG-TOOL-0116.md @@ -0,0 +1,14 @@ +--- +title: dependency-check +platform: generic +source: https://github.com/jeremylong/DependencyCheck +--- + +[Dependency-Check](https://github.com/jeremylong/DependencyCheck) is a Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project's dependencies. + +Limitations for SCA tools are, that they will usually fail to scan an IPA or APK, due to 2 main reasons: + +- **Transformed format**: The libraries are no longer in their original format but are part of the app binaries compiled code format. For example an Android app will not contain the 3rd party JAR files in the APK, as they part of the compiled DEX files. +- **Lack of metadata**: Information such as the library version or name is stripped or altered when building the mobile app. + +Therefore, for iOS, the files generated by dependency managers (such as Podfile for CocoaPods) that list the dependencies used in an app are scanned, or for Android, the scan is performed at build time using Dependency-Check. diff --git a/tools/generic/MASTG-TOOL-0117.md b/tools/generic/MASTG-TOOL-0117.md new file mode 100644 index 0000000000..4d2e254f51 --- /dev/null +++ b/tools/generic/MASTG-TOOL-0117.md @@ -0,0 +1,13 @@ +--- +title: dependency-track +platform: generic +source: https://github.com/DependencyTrack/dependency-track +--- + +[Dependency-Track](https://github.com/DependencyTrack/dependency-track) is a Component Analysis platform that allows organizations to identify and reduce risk in the software supply chain. + +You can install Dependency-Track by using [docker](https://docs.dependencytrack.org/getting-started/deploy-docker/). The default credentials can be found in the [initial setup](https://docs.dependencytrack.org/getting-started/initial-startup/). + +Dependency-Track relies on Software Bill of Materials (SBOM) for identifying vulnerable dependencies, which can be generated through @MASTG-TOOL-0119 and uploaded via [API](https://docs.dependencytrack.org/usage/cicd/). + +To use the REST API you need to create an [API Key](https://docs.dependencytrack.org/integrations/rest-api/) and a project where the SBOM can be uploaded to. diff --git a/tools/generic/MASTG-TOOL-0118.md b/tools/generic/MASTG-TOOL-0118.md new file mode 100644 index 0000000000..104c92f391 --- /dev/null +++ b/tools/generic/MASTG-TOOL-0118.md @@ -0,0 +1,11 @@ +--- +title: vs-code +platform: generic +source: https://github.com/microsoft/vscode +--- + +[Visual Studio Code](https://github.com/microsoft/vscode) is a code editor that offers various plugins, that are useful for security tests, like: + +- [SARIF Viewer](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer) - to work with and visualise SARIF files. +- [Swift](https://marketplace.visualstudio.com/items?itemName=sswg.swift-lang) - for syntax support for the Swift programming language +- [Kotlin](https://marketplace.visualstudio.com/items?itemName=mathiasfrohlich.Kotlin) - for syntax support for the Kotlin programming language diff --git a/tools/generic/MASTG-TOOL-0119.md b/tools/generic/MASTG-TOOL-0119.md new file mode 100644 index 0000000000..57fd2a1ea2 --- /dev/null +++ b/tools/generic/MASTG-TOOL-0119.md @@ -0,0 +1,11 @@ +--- +title: cdxgen +platform: generic +source: https://github.com/CycloneDX/cdxgen +--- + +[cdxgen](https://cyclonedx.github.io/cdxgen/) can generate Software Bill of Materials (SBOM) for most applications and container images with a single command. It supports SwiftPM for iOS and Maven for Android. The generated SBOM can then be submitted to @MASTG-TOOL-0117 for analysis. + +The creation of an SBOM out of an Android App (APK or AAB) is supported, but limited. Due to stripping out meta-information of the libraries used in an app, a SBOM created ouf of an Android app will always be incomplete. + +It is therefore recommended to execute `cdxgen` in the Android App project folder to create a complete SBOM. diff --git a/weaknesses/MASVS-CODE/MASWE-0076.md b/weaknesses/MASVS-CODE/MASWE-0076.md index eb65f89c47..028965e81f 100644 --- a/weaknesses/MASVS-CODE/MASWE-0076.md +++ b/weaknesses/MASVS-CODE/MASWE-0076.md @@ -7,17 +7,32 @@ profiles: [L1, L2] mappings: masvs-v1: [MSTG-CODE-5] masvs-v2: [MASVS-CODE-3] +status: new +refs: +- https://developer.android.com/privacy-and-security/risks/insecure-library +--- -draft: - description: e.g. via dependency check and SBOM (software bill of materials) - topics: - - Frameworks on iOS - - Gradle dependencies on Android - - maven dependencies on Android - - cocoapods on iOS - - swift package manager on iOS - - carthage on iOS -status: draft +## Overview ---- +External or third-party libraries, SDK's or frameworks used by the app that contain security flaws that are publicly documented, usually through CVE's, are called "Dependencies with Known Vulnerabilities". + +## Impact + +Using dependencies with known vulnerabilities in mobile apps can result in various security risks, including but not limited to: + +- **Data Exposure**: Known vulnerabilities in dependencies can be exploited by attackers to gain unauthorized access to sensitive user data or app functionality. This can lead to data breaches, exposing private information like user credentials or personal data, which can have legal and financial consequences for the app owner and undermine user trust. +- **Compromise of System Integrity and Functionality**: Vulnerabilities in dependencies may allow attackers to compromise the app’s overall integrity, potentially introducing malicious behavior such as unauthorized code execution or privilege escalation. This can lead to account take-over or lead to app downtime. +- **Non-Compliance**: Using outdated or vulnerable dependencies can result in non-compliance with security standards and regulations. This can expose businesses to regulatory penalties and legal liabilities, especially in industries handling sensitive data like healthcare or finance. + +## Modes of Introduction + +Mobile apps rely heavily on dependencies. This can be "closed-source" dependencies through vendor products, or "open-source" dependencies that are maintained by the community. + +Dependencies can be implemented manually by adding them into the project and linking them, but are usually added through dependency managers that take care of the integration into the project's files. + +## Mitigations +- **Keep Dependencies Updated**: Regularly update dependencies to their latest secure versions to ensure that any known vulnerabilities are patched. +- **Regular Dependency Audits:**: Continuously scan and audit third-party libraries for vulnerabilities using Software Composition Analysis (SCA) tools in the CI/CD pipeline, like @MASTG-TOOL-0116 or @MASTG-TOOL-0117. +- **Software Bill of Material (SBOM)**: Create a SBOM and manage the dependencies by using tools like @MASTG-TOOL-0119 and @MASTG-TOOL-0117. +- **Remove Unused Dependencies**: Regularly review and remove any unused or unnecessary libraries to reduce the app’s attack surface.