diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 277f01d1ee3..00000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: ['submitted', 'bug'] -assignees: '' - ---- - - - -**Describe the bug** -A clear and concise description of what the bug is. - -**Affected platforms** - -- Desktop (Windows, Linux, macOS) -- iOS -- Web (K/Wasm) - Canvas based API -- Web (K/JS) - Canvas based API -- Web (K/JS) - HTML library - -**Versions** -- Libraries: - - Compose Multiplatform version: - - Navigation Multiplatform version (for related issues): - - ... -- Kotlin version: -- OS version(s) (required for Desktop and iOS issues): -- OS architecture (x86 or arm64): -- Device (model or simulator for iOS issues): -- JDK (for desktop issues): - -**To Reproduce** -Steps to reproduce the behavior: -1. Run this code snippet: - ```kt - @Composable - fun BugReproduction() { - // ... - } - ``` -2. Click on '...' -3. Scroll down to '...' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..402e7340c7e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Create + url: https://youtrack.jetbrains.com/newIssue?project=CMP + about: Please report new issues to the JetBrains YouTrack + - name: Jetpack Compose tracker + url: https://issuetracker.google.com/issues/new?component=612128 + about: If the issue is in the API with `androidx.*` namespace and affects Android, report it in the Jetpack Compose tracker, mentioning the corresponding Jetpack version. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md deleted file mode 100644 index d039a554c89..00000000000 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: Enhancement -about: 'New feature or request' -title: '' -labels: 'submitted, enhancement' -assignees: '' - ---- diff --git a/.github/ISSUE_TEMPLATE/performance.md b/.github/ISSUE_TEMPLATE/performance.md deleted file mode 100644 index 7cd4658e8b5..00000000000 --- a/.github/ISSUE_TEMPLATE/performance.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -name: Performance problem -about: Create a report to help us improve -title: '' -labels: ['submitted', 'performance'] -assignees: '' - ---- - -**Describe the problem** -Explain the performance issue you're experiencing, including the following details: - -- What specific issue did you encounter? (e.g. missing frames, high CPU usage, memory leaks) -- Have you noticed any patterns or specific circumstances under which the problem occurs? - -**Affected platforms** -Select one of the platforms below: -- All -- Desktop -- Web (K/Wasm) - Canvas based API -- Web (K/JS) - Canvas based API -- Web (K/JS) - HTML library -- iOS -- Other - -If the problem is Android-only, report it in the [Jetpack Compose tracker](https://issuetracker.google.com/issues/new?component=612128) - -**Versions** -- Kotlin version: -- Compose Multiplatform version: -- OS version(s) (required for Desktop and iOS issues): -- OS architecture (x86 or arm64): -- JDK (for desktop issues): - -**Sample code** -If possible, provide a small piece of code that reproduces the problem. If the code snippet is too large to paste here, please link to a Gist, a GitHub repo, or any other public code repository. - -**Reproduction steps** -Please provide a detailed step-by-step guide on how to reproduce the issue you are experiencing. - -**Video** -If you're reporting slow app work or missing frames, please provide a video of the problem. - -**Profiling data** -Please provide any relevant profiling data that might be helpful. This could include information like FPS, memory usage, CPU time, or any other data that could provide insight into the performance issue. - -**Additional information** -Provide any other details that you think might be helpful for us to understand the problem. This could include things like the system configuration, external factors, etc. diff --git a/.github/ISSUE_TEMPLATE/youtrack-redirect.yml b/.github/ISSUE_TEMPLATE/youtrack-redirect.yml new file mode 100644 index 00000000000..46ff8107299 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/youtrack-redirect.yml @@ -0,0 +1,18 @@ +name: "↓ Please use another option below ↓" +description: Please do not use this template, and report issues in YouTrack instead +body: + - type: markdown + attributes: + value: | + Thank you for taking the time to file a bug report. + The Compose Multiplatform project works with issues in YouTrack, so please report issues over there: + https://youtrack.jetbrains.com/newIssue?project=CMP + + We had to create this issue template as a workaround for this GitHub bug: + https://github.com/orgs/community/discussions/153714 + - type: checkboxes + attributes: + label: Please confirm that you understood the above message + options: + - label: "I have read the message and will create the issue in YouTrack instead" + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ffe3800b524..ab0bca9a038 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,40 +1,14 @@ Describe proposed changes and the issue being fixed - -Fixes [link to the issue] +(Optional) Fixes [link to the issue] ## Testing - -Describe how you tested your changes. If possible and needed: -- Test it on a sample project -- Write unit tests -- Provide a code snippet +(Optional) Describe how you tested your changes (provide a snippet or/and steps) - -This should be tested by QA +(Optional) This should be tested by QA ## Release Notes - -### Section - Subsection -- Describe a change for adding it to https://github.com/JetBrains/compose-multiplatform/blob/master/CHANGELOG.md -- _(prerelease fix)_ Fix some bug that introduced in a prerelease version (dev/beta). It will be included in a dev/beta changelog, but excluded from a stable changelog - ### Section - Subsection -- Describe another change if needed +- Describe change in format https://github.com/JetBrains/compose-multiplatform/blob/master/tools/changelog/PR_FORMAT.md + - Sections: Highlights, Known Issues, Breaking Changes, Migration Notes, Features, Fixes + - Subsections: Multiple Platforms, iOS, Desktop, Web, Android, Resources, Gradle Plugin, Lifecycle, Navigation, SavedState diff --git a/.github/workflows/benchmarks-smoke.yml b/.github/workflows/benchmarks-smoke.yml new file mode 100644 index 00000000000..b32c010a493 --- /dev/null +++ b/.github/workflows/benchmarks-smoke.yml @@ -0,0 +1,55 @@ +name: Build and run benchmarks/multiplatform +on: + pull_request: + paths: + - 'benchmarks/multiplatform/**' + - '.github/workflows/benchmarks-smoke.yml' + push: + branches: + - master + paths: + - 'benchmarks/multiplatform/**' + - '.github/workflows/benchmarks-smoke.yml' + +jobs: + benchmarks-macos-arm64: + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'corretto' + java-version: '17' + - name: K/Native MacOS arm64 + shell: bash + run: | + cd benchmarks/multiplatform + ./gradlew :benchmarks:runReleaseExecutableMacosArm64 + + benchmarks-desktop-jvm: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'corretto' + java-version: '17' + - name: Desktop/JVM target + shell: bash + run: | + cd benchmarks/multiplatform + ./gradlew :benchmarks:run + + benchmarks-wasm-d8: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'corretto' + java-version: '17' + - name: K/Wasm D8 + shell: bash + run: | + cd benchmarks/multiplatform + ./gradlew :benchmarks:wasmJsD8ProductionRun \ No newline at end of file diff --git a/.github/workflows/check-release-notes.yml b/.github/workflows/check-release-notes.yml new file mode 100644 index 00000000000..b42be7debf0 --- /dev/null +++ b/.github/workflows/check-release-notes.yml @@ -0,0 +1,21 @@ +# Checks Release Notes in the PR description, runs when: +# opened - PR is opened +# edited - The title/description are changed +# synchronize - New commits appeared. +# We don't use the new content, but we still need to mark this commit Green/Red in GitHub UI + +name: Check Release Notes in the description +on: + pull_request: + types: [opened, edited, synchronize] + +jobs: + check: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + sparse-checkout: 'tools/changelog/check-release-notes-github-action' + - uses: ./tools/changelog/check-release-notes-github-action + with: + checkout_ref: ${{ github.ref }} diff --git a/.github/workflows/gradle-plugin.yml b/.github/workflows/gradle-plugin.yml index d5d688cc4aa..b6cb6fcaf27 100644 --- a/.github/workflows/gradle-plugin.yml +++ b/.github/workflows/gradle-plugin.yml @@ -16,16 +16,18 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-20.04, macos-14, windows-2022] - gradle: [7.4, 8.7] - agp: [8.1.0, 8.4.0] + os: ['ubuntu-24.04', 'macos-14', 'windows-2022'] + gradle: ['8.7', '9.0.0'] + agp: ['8.6.0', '8.9.0', '9.0.0-alpha01'] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: - distribution: 'corretto' - java-version: '17' + distribution: 'jetbrains' + java-version: '21' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Test Gradle plugin shell: bash run: | @@ -33,9 +35,9 @@ jobs: ./gradlew assemble ./gradlew --continue :preview-rpc:test :compose:test ':compose:test-Gradle(${{ matrix.gradle }})-Agp(${{ matrix.agp }})' - name: Upload Reports - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: - name: Test-Reports + name: Test-Reports-${{ matrix.os }}-Gradle-${{ matrix.gradle }}-Agp${{ matrix.agp }} path: gradle-plugins/compose/build/reports if: always() - name: Print summary diff --git a/.gitignore b/.gitignore index a99e6254036..bb87a87a051 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ prebuilds/fullsdk-linux prebuilds/fullsdk-darwin +bin out *.iml .gradle @@ -10,6 +11,7 @@ build/ /captures .externalNativeBuild .cxx +.kotlin # Ignoring the persistant lockfile until kotlin.js vulnerabilities are fixed # yarn.lock # but absent yarn.lock leads to inconsistent builds on CI, so let's keep it diff --git a/CHANGELOG.md b/CHANGELOG.md index a818e8f7a1f..dad91766bad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,2495 @@ +# 1.9.1 (October 2025) + +_Changes since 1.9.0_ + +## Migration Notes + +### Multiple Platforms + +- `compose.material3` alias from Gradle plugin now points to `org.jetbrains.compose.material3:material3:1.9.0` (based on Jetpack Compose Material3 `1.4.0`), it was `org.jetbrains.compose.material3:material3:1.8.2` (based on Jetpack Compose Material3 `1.3.2`) in Compose Multiplatform `1.9.0`. If you want to stay on the same minor version, replace the alias by an explicit dependency: [#5441](https://github.com/JetBrains/compose-multiplatform/pull/5441) + + ``` + // was + implementation(compose.material3) + + // replace by + implementation("org.jetbrains.compose.material3:material3:1.8.2") + ``` + +## Fixes + +### iOS + +- Add ability to reach internal accessibility elements inside accessibility nodes [#2416](https://github.com/JetBrains/compose-multiplatform-core/pull/2416) +- Fix input session restarts triggered by `PlatformImeOptionsImpl` not being `@Immutable` [#2413](https://github.com/JetBrains/compose-multiplatform-core/pull/2413) +- Fix crash when removing characters after string replacement [#2361](https://github.com/JetBrains/compose-multiplatform-core/pull/2361) +- Fix context menu appearance for text fields with transformation [#2377](https://github.com/JetBrains/compose-multiplatform-core/pull/2377) + +### Desktop + +- `ComposePanel` can now re-dispatch unconsumed mouse wheel events, allowing scrollable components beneath to be scrolled. To enable this behavior, set the system property `"compose.swing.redispatchMouseWheelEvents"` to `"true"` [#2438](https://github.com/JetBrains/compose-multiplatform-core/pull/2438) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.1`. Based on Jetpack Compose libraries: + - [Runtime 1.9.3](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.3) + - [UI 1.9.3](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.3) + - [Foundation 1.9.3](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.3) + - [Material 1.9.3](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.3) + - [Material3 1.4.0](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.9.0`. Based on [Jetpack Compose Material3 1.4.0](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha05`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha10](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha10) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.5`. Based on [Jetpack Lifecycle 2.9.4](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.4) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.1`. Based on [Jetpack Navigation 2.9.4](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.4) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.5`. Based on [Jetpack Savedstate 1.3.3](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.3) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.10.0-alpha02 (October 2025) + +_Changes since 1.10.0-alpha01_ + +## Highlights + +### Multiple Platforms + +- `androidx.compose.ui.tooling.preview.Preview` annotation is now available from `commonMain` source set [#2424](https://github.com/JetBrains/compose-multiplatform-core/pull/2424) + +### Navigation + +- Provide required `NavigationEventDispatcherOwner` for a correct Navigation3 support [#2382](https://github.com/JetBrains/compose-multiplatform-core/pull/2382) + +## Features + +### Multiple Platforms + +- Provide `LocalLifecycleOwner` inside `runComposeUiTest` by default [#2400](https://github.com/JetBrains/compose-multiplatform-core/pull/2400) + +### iOS + +- Add API to configure `UITextInputTraits.writingToolsBehavior` with `PlatformImeOptions` [#2435](https://github.com/JetBrains/compose-multiplatform-core/pull/2435) + +### Desktop + +- Experimental `-Dskiko.gpu.resourceCacheLimit` VM property is introduced to limit GPU resource cache used for one window (default is 256M) [#2422](https://github.com/JetBrains/compose-multiplatform-core/pull/2422) + +### Resources + +- Add `setResourceReaderAndroidContext` to configure Android context in cases when a provider initialization is not available [#5434](https://github.com/JetBrains/compose-multiplatform/pull/5434) + +### Navigation + +- Basic support of the navigation3 library [#2436](https://github.com/JetBrains/compose-multiplatform-core/pull/2436) + +## Fixes + +### Multiple Platforms + +- _(prerelease fix)_ Fix "Cinterop fails with an error when Compilation works fine" [#2386](https://github.com/JetBrains/compose-multiplatform-core/pull/2386) +- _(prerelease fix)_ Fix "warning: KLIB resolver: Could not find" [#2386](https://github.com/JetBrains/compose-multiplatform-core/pull/2386) + +### iOS + +- Clear `TextField` focus when another view becomes first responder [#2337](https://github.com/JetBrains/compose-multiplatform-core/pull/2337) +- Fix context menu appearance for text fields with transformation [#2377](https://github.com/JetBrains/compose-multiplatform-core/pull/2377) +- Fix input session restarts triggered by `PlatformImeOptionsImpl` not being `@Immutable` [#2413](https://github.com/JetBrains/compose-multiplatform-core/pull/2413) +- Add ability to reach internal accessibility elements inside accessibility nodes [#2416](https://github.com/JetBrains/compose-multiplatform-core/pull/2416) + +### Desktop + +- Fixed `ComposePanel` not initially focusing the first focusable node, when running in JetBrains Runtime JVM [#2384](https://github.com/JetBrains/compose-multiplatform-core/pull/2384) +- Fixed background flashing when a window or dialog are closed [#2403](https://github.com/JetBrains/compose-multiplatform-core/pull/2403) +- Fix "ComposePanel doesn't use hardware acceleration with `RenderSettings.SwingGraphics` on Linux" [#2422](https://github.com/JetBrains/compose-multiplatform-core/pull/2422) + +### Resources + +- Fix resource access in a Robolectric test environment [#5433](https://github.com/JetBrains/compose-multiplatform/pull/5433) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.10.0-alpha02`. Based on Jetpack Compose libraries: + - [Runtime 1.10.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.10.0-alpha04) + - [UI 1.10.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0-alpha04) + - [Foundation 1.10.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.10.0-alpha04) + - [Material 1.10.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-material#1.10.0-alpha04) + - [Material3 1.5.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.5.0-alpha04) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.10.0-alpha02`. Based on [Jetpack Compose Material3 1.5.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.5.0-alpha04) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha07`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-beta03) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-alpha02`. Based on [Jetpack Lifecycle 2.10.0-alpha04](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.10.0-alpha04) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Navigation Event library `org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.0-alpha01`. Based on [Jetpack Navigation Event 1.0.0-alpha09](https://developer.android.com/jetpack/androidx/releases/navigationevent#1.0.0-alpha09) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.4.0-alpha02`. Based on [Jetpack Savedstate 1.4.0-alpha03](https://developer.android.com/jetpack/androidx/releases/savedstate#1.4.0-alpha03) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.5.0-alpha02`. Based on [Jetpack WindowManager 1.5.0](https://developer.android.com/jetpack/androidx/releases/window#1.5.0) + +--- + +# 1.9.0 (September 2025) + +_Changes since 1.8.2_ + +See also [What's new](https://www.jetbrains.com/help/kotlin-multiplatform-dev/whats-new-compose-190.html). + +## Highlights + +### Web + +- Added a `WebElementView` Composable function for embedding the absolutely positioned HTML content in Compose for web target. It's supported only when using `ComposeViewport` entry point and it's not supported with `CanvasBasedWindow`, which is deprecated now [#2145](https://github.com/JetBrains/compose-multiplatform-core/pull/2145) +- Text context menu is supported on web platforms for both modes: mobile and desktop [#2207](https://github.com/JetBrains/compose-multiplatform-core/pull/2207) +- Introduce the basic support of accessibility in the web target [#2188](https://github.com/JetBrains/compose-multiplatform-core/pull/2188) + +## Migration Notes + +### Multiple Platforms + +- Material3 versioning is decoupled for the Compose Multiplatform 1.9.* release due the upstream Jetpack Compose Material3 1.4 has not been released as stable yet [#5360](https://github.com/JetBrains/compose-multiplatform/pull/5360) +- `compose.material3` now points to the latest stable Material3 version, 1.8.2. If the latest Material3 features are needed, please include it this way: [#5360](https://github.com/JetBrains/compose-multiplatform/pull/5360) + ``` + implementation("org.jetbrains.compose.material3:material3:1.9.0-beta06") + ``` +- [If you use `org.jetbrains.compose.material3:material3:1.9.0-beta06`] `kotlinx-datetime` is updated to `0.7.1`. If you also use it in your projects, please update it to this version to ensure compatibility [#2276](https://github.com/JetBrains/compose-multiplatform-core/pull/2276) + +### iOS + +- Remove experimental attribute from `UIKitInteropInteractionMode` [#2215](https://github.com/JetBrains/compose-multiplatform-core/pull/2215) + +### Desktop + +- `Window` and `DialogWindow` overloads that create a `ComposeWindow`/`ComposeDialog` have been renamed to `SwingWindow`/`SwingDialog` and the old versions have been deprecated [#2141](https://github.com/JetBrains/compose-multiplatform-core/pull/2141) +- When the window is iconified, converting to/from screen coordinates (with e.g.`LayoutCoordinates.positionOnScreen()`) will return `Offset.Unspecified` [#2163](https://github.com/JetBrains/compose-multiplatform-core/pull/2163) +- Deprecated experimental `Modifier.mouseClickable` is removed. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-mouse-events.html for alternatives [#2194](https://github.com/JetBrains/compose-multiplatform-core/pull/2194) +- Kotlin 2.1 is required for all platforms including JVM (it was required only for native and web before) [#2276](https://github.com/JetBrains/compose-multiplatform-core/pull/2276) + +### Web + +- `fun ComposeViewport` with `viewportContainerId: String?` parameter now can be called from a web-common `fun main` (k/js and k/wasm) [#2226](https://github.com/JetBrains/compose-multiplatform-core/pull/2226) +- `CanvasBasedWindow` is deprecated, use `ComposeViewport` instead. Unlike `CanvasBasedWindow`, which expect as an input param the id to the `HTMLCanvasElement` that will be used for rendering, `ComposeViewport` one passes `parentContainer` (and corresponding HTML Canvas element will be created automatically). By default such container is `document.body` [#2280](https://github.com/JetBrains/compose-multiplatform-core/pull/2280) +- Setting `org.jetbrains.compose.experimental.jscanvas.enabled=true` is not required anymore when having a kotlin/js target [#5340](https://github.com/JetBrains/compose-multiplatform/pull/5340) + +### Gradle Plugin + +- The Compose Gradle plugin requires the Kotlin Gradle plugin version 2.+ now. Old `org.jetbrains.compose.compiler` is not supported anymore and the API to configure it was removed [#5283](https://github.com/JetBrains/compose-multiplatform/pull/5283) + +## Features + +### Multiple Platforms + +- Adopted a change in `ComposeUiTest` API. The `block` in `runComposeUiTest` is `suspend` now. It allows to call `awaitIdle` and other suspend functions. It ensures a correct execution of a test on all platforms. See the web specifics in `kotlinx.coroutines.test.runTest` [documentation](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/run-test.html) [#2066](https://github.com/JetBrains/compose-multiplatform-core/pull/2066) +- Support customizable shadows [#2183](https://github.com/JetBrains/compose-multiplatform-core/pull/2183) +- Extended the `@Preview` (`org.jetbrains.compose.ui.tooling.preview`) annotation with the following parameters: name, group, widthDp, heightDp, locale, showBackground, backgroundColor. IDE (IJ or AS) will pick up these parameters in the same way it works for `androidx` Preview annotations [#5339](https://github.com/JetBrains/compose-multiplatform/pull/5339) + +### iOS + +- Add support for native IME configuration with `PlatformImeOptions` [#2108](https://github.com/JetBrains/compose-multiplatform-core/pull/2108) +- Add support for `keepScreenOn` modifier [#2180](https://github.com/JetBrains/compose-multiplatform-core/pull/2180) +- Support new context menu API with default menu [#2214](https://github.com/JetBrains/compose-multiplatform-core/pull/2214) +- Add support for frame rate voting [#2205](https://github.com/JetBrains/compose-multiplatform-core/pull/2205) +- Support scroll commands with Voice Control [#2234](https://github.com/JetBrains/compose-multiplatform-core/pull/2234) +- Implement accessibility scroll to focused interop views [#2228](https://github.com/JetBrains/compose-multiplatform-core/pull/2228) + +### Desktop + +- Add accessibility role for `Switch`, reporting it as a checkbox [#2136](https://github.com/JetBrains/compose-multiplatform-core/pull/2136) +- Added `SwingFrame` and `SwingDialog` composables that allow configuring the window/dialog before it is shown [#2139](https://github.com/JetBrains/compose-multiplatform-core/pull/2139) +- Full `AnnotatedString` is available as a data flavor in `ClipEntry`, instead of only its text [#2092](https://github.com/JetBrains/compose-multiplatform-core/pull/2092) +- Add `RenderSettings.SwingGraphics` option for `ComposePanel.renderSettings` argument [#2071](https://github.com/JetBrains/compose-multiplatform-core/pull/2071) +- Basic support for new context menu API [#2196](https://github.com/JetBrains/compose-multiplatform-core/pull/2196) +- Added experimental support for save and restore compose state. `ComposePanel`, `ComposeWindow` and `ComposeDialog` now has `savedState` constructor parameter to restore previous state and `saveState` function to save the current state for later use [#2225](https://github.com/JetBrains/compose-multiplatform-core/pull/2225) + +### Web + +- Support the new context menu API in web targets in the desktop mode [#2224](https://github.com/JetBrains/compose-multiplatform-core/pull/2224) +- Support of the new context menu toolbar in web mobile targets [#2251](https://github.com/JetBrains/compose-multiplatform-core/pull/2251) +- [js] there's no need to manually add skiko.js to the html page any more [#2264](https://github.com/JetBrains/compose-multiplatform-core/pull/2264) +- Introduce `composeCompatibilityBrowserDistribution` task. This task combines two prod distributions - for js and for wasm in such way so that if modern required features are not supported by the consumer browser, application switch to js mode [#5375](https://github.com/JetBrains/compose-multiplatform/pull/5375) + +### Resources + +- Added `JvmResourceReader` API and made `LocalResourceReader` public to allow providing a custom classloader for desktop target [#5334](https://github.com/JetBrains/compose-multiplatform/pull/5334) + +### Navigation + +- A new API was added to bind the browser navigation state with the `NavController` - `suspend fun NavController.bindToBrowserNavigation`. And the existing function `suspend fun Window.bindToNavigation` is deprecated now [#2189](https://github.com/JetBrains/compose-multiplatform-core/pull/2189) + +## Fixes + +### Multiple Platforms + +- Fix extra draw invalidations during scrolling (1.8 regression) [#2212](https://github.com/JetBrains/compose-multiplatform-core/pull/2212) +- Fix text ellipsis if there's not enough vertical space to fit all lines [#2246](https://github.com/JetBrains/compose-multiplatform-core/pull/2246) +- Fix "IrLinkageError: Function can not be called: No function found for symbol" [#2293](https://github.com/JetBrains/compose-multiplatform-core/pull/2293) +- `ExperimentalMaterial3ExpressiveApi` annotation removed from no-longer-experimental API [#2298](https://github.com/JetBrains/compose-multiplatform-core/pull/2298) + +### iOS + +- Fix issue where keyboard would appear after second tap when text input session was intercepted [#2049](https://github.com/JetBrains/compose-multiplatform-core/pull/2049) +- Change the accessibility selection to the element that has most recently been focused on [#2217](https://github.com/JetBrains/compose-multiplatform-core/pull/2217) +- Fix Full Keyboard Access on iOS 17 and lower [#2216](https://github.com/JetBrains/compose-multiplatform-core/pull/2216) +- Fixes the appearance of the keyboard when a pop-up or dialog on the background is dismissed [#2240](https://github.com/JetBrains/compose-multiplatform-core/pull/2240) +- Do not flatten accessibility tree inside accessibility elements [#2243](https://github.com/JetBrains/compose-multiplatform-core/pull/2243) + +### Desktop + +- [macOS] Fix the background flashing when closing a window/dialog and an animation is running [#2058](https://github.com/JetBrains/compose-multiplatform-core/pull/2058) +- [macOS; JBR] Fixed the current composition in a text field being duplicated into another text field when switching focus to it [#2026](https://github.com/JetBrains/compose-multiplatform-core/pull/2026) +- [macOS] Fixed strange glyph being displayed in a text field if window becomes unfocused, then focused again while there's an active composition in the text field (after pressing e.g. backspace) [#2026](https://github.com/JetBrains/compose-multiplatform-core/pull/2026) +- [macOS] Fix showing the input method toolbar before any text field becomes focused (on JBR only; other runtimes continue to be buggy) [#2047](https://github.com/JetBrains/compose-multiplatform-core/pull/2047) +- Improved performance for `ComposePanel` with `System.setProperty("compose.swing.render.on.graphics", "true")` [#2097](https://github.com/JetBrains/compose-multiplatform-core/pull/2097) +- Fix the positioning of the IME popup being too far away from the text, on screens with density greater than 1 [#2118](https://github.com/JetBrains/compose-multiplatform-core/pull/2118) +- Fixed the position of the IME popup, which was below the previous, rather than the current, cursor position [#2122](https://github.com/JetBrains/compose-multiplatform-core/pull/2122) +- [Accessibility, macOS] Fixed VoiceOver to announce a Slider's value on every change [#2152](https://github.com/JetBrains/compose-multiplatform-core/pull/2152) +- Return `Offset.Unspecified` instead of throwing an exception in `LayoutCoordinates.localToScreen` and `LayoutCoordinates.screenToLocal` [#2160](https://github.com/JetBrains/compose-multiplatform-core/pull/2160) +- When the window moves or becomes iconified/de-iconified, all instances of `Modifier.onGloballyPositioned` will be called [#2163](https://github.com/JetBrains/compose-multiplatform-core/pull/2163) +- Implemented a context menu for `BasicTextField(TextFieldState)` [#2168](https://github.com/JetBrains/compose-multiplatform-core/pull/2168) +- `SemanticsProperties.Text` and `SemanticsProperties.ContentDescription` values will now be correctly concatenated when `Modifier.semantics(mergeDescendants = true)` is used [#2202](https://github.com/JetBrains/compose-multiplatform-core/pull/2202) +- Fixed the case when the IME's first event to a text field is to commit a composition [#2210](https://github.com/JetBrains/compose-multiplatform-core/pull/2210) +- Elements marked with Modifier.semantics { hideFromAccessibility() } should now be correctly hidden from a11y [#2204](https://github.com/JetBrains/compose-multiplatform-core/pull/2204) +- [macOS] Fix composite (e.g. Chinese) input after pressing backspace [#2250](https://github.com/JetBrains/compose-multiplatform-core/pull/2250) +- [TextField] Fixed duplication of the composed characters when moving the caret by clicking during a composition [#2255](https://github.com/JetBrains/compose-multiplatform-core/pull/2255) +- Correctly remove `SwingPanel` children of `ComposePanel`, when the compose panel is itself removed from the hierarchy [#2277](https://github.com/JetBrains/compose-multiplatform-core/pull/2277) +- Fix `runRelease` task when navigation and `obfuscate.set(true)` are used [#5384](https://github.com/JetBrains/compose-multiplatform/pull/5384) + +### Web + +- Fixed an unexpected back gesture after a horizontal scroll [#2186](https://github.com/JetBrains/compose-multiplatform-core/pull/2186) +- Mitigate a typing delay regression in Safari browsers [#2195](https://github.com/JetBrains/compose-multiplatform-core/pull/2195) +- Web Lifecycle triggers `START`/`STOP` events on the `visibilitychange` callback now [#2219](https://github.com/JetBrains/compose-multiplatform-core/pull/2219) +- Lifecycle fix on iOS Safari: now touch events trigger `ON_RESUME` because Safari ignores interactions and doesn't request the focus [#2219](https://github.com/JetBrains/compose-multiplatform-core/pull/2219) +- Fix software keyboard behaviour for Compose Text Fields in iOS Safari [#2260](https://github.com/JetBrains/compose-multiplatform-core/pull/2260) +- Fixed the bugs with composite text input [#2256](https://github.com/JetBrains/compose-multiplatform-core/pull/2256) +- Fixed the issue with software keyboard when it was shown repeatedly in Chrome mobile [#2279](https://github.com/JetBrains/compose-multiplatform-core/pull/2279) +- Fix the issue where deleting a word in the middle of a sentence also affects the word next to it [#2372](https://github.com/JetBrains/compose-multiplatform-core/pull/2372) + +### Gradle Plugin + +- Don't fail gradle sync if `TargetFormat.AppImage` is specified in `targetFormats` on macOS [#5332](https://github.com/JetBrains/compose-multiplatform/pull/5332) +- Fix codesigning on macOS when the developer id contains non-ASCII characters. Note that this requires JDK 21 or later [#5358](https://github.com/JetBrains/compose-multiplatform/pull/5358) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0) + - [UI 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0) + - [Foundation 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0) + - [Material 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.9.0-beta06`. Based on [Jetpack Compose Material3 1.4.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-beta03) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha06`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha11](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha11) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.4`. Based on [Jetpack Lifecycle 2.9.2](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.2) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.4`. Based on [Jetpack Savedstate 1.3.1](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.1) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.9.0-rc02 (September 2025) + +_Changes since 1.9.0-rc01_ + +## Fixes + +### Multiple Platforms + +- _(prerelease fix)_ Fix "Cinterop fails with an error when Compilation works fine" [#2386](https://github.com/JetBrains/compose-multiplatform-core/pull/2386) +- _(prerelease fix)_ Fix "warning: KLIB resolver: Could not find" [#2386](https://github.com/JetBrains/compose-multiplatform-core/pull/2386) + +### Web + +- Fix the issue where deleting a word in the middle of a sentence also affects the word next to it [#2372](https://github.com/JetBrains/compose-multiplatform-core/pull/2372) + +### Gradle Plugin + +- _(prerelease fix)_ Fix `composeCompatibilityBrowserDistribution` task lazy configuration [#5398](https://github.com/JetBrains/compose-multiplatform/pull/5398) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-rc02`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0) + - [UI 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0) + - [Foundation 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0) + - [Material 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.9.0-beta05`. Based on [Jetpack Compose Material3 1.4.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-beta03) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha06`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha11](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha11) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.4-rc01`. Based on [Jetpack Lifecycle 2.9.2](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.2) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-rc02`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.4-rc01`. Based on [Jetpack Savedstate 1.3.1](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.1) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-rc02`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.10.0-alpha01 (September 2025) + +_Changes since 1.9.0-rc01_ + +## Highlights + +### Multiple Platforms + +- `widgets-gallery` sample has been removed in favor of the [interactive API reference](https://kotlinlang.org/api/compose-multiplatform/stories/material3/) [#5365](https://github.com/JetBrains/compose-multiplatform/pull/5365) + +## Breaking Changes + +### iOS + +- Align `@Composable` attribute in `WindowInsets.Companion.captionBar` to other platforms [#2258](https://github.com/JetBrains/compose-multiplatform-core/pull/2258) + +## Migration Notes + +### Multiple Platforms + +- The pre‑1.7 workaround in the common `PopupProperties`/`DialogProperties` constructors (annotated `Deprecated(HIDDEN)` since 1.7) has been removed. This change may formally affect binary compatibility. Although we are not aware of concrete cases, if your project depends on third‑party libraries that reference this constructor, please update those dependencies to versions compatible with this release [#2303](https://github.com/JetBrains/compose-multiplatform-core/pull/2303) +- Kotlin 2.2 is required for native and web platforms [#2357](https://github.com/JetBrains/compose-multiplatform-core/pull/2357) + +### Desktop + +- Removed IntelliJ plugin sample, please refer to [Jewel](https://github.com/JetBrains/intellij-community/tree/master/platform/jewel) documentation instead [#5368](https://github.com/JetBrains/compose-multiplatform/pull/5368) + +## Features + +### Multiple Platforms + +- Update skia to m138 (see [release notes](https://skia.googlesource.com/skia/+/refs/heads/chrome/m138/RELEASE_NOTES.md)) [#2304](https://github.com/JetBrains/compose-multiplatform-core/pull/2304) +- The new context menu is enabled by default on all platforms now. It still might be disabled via `ComposeFoundationFlags.isNewContextMenuEnabled` flag in case of issues [#2341](https://github.com/JetBrains/compose-multiplatform-core/pull/2341) +- Provide public API for `@ResourceContentHash` annotation generation [#5402](https://github.com/JetBrains/compose-multiplatform/pull/5402) + +### iOS + +- Add support for `WindowInsetsRulers` [#2258](https://github.com/JetBrains/compose-multiplatform-core/pull/2258) +- Support automatic scrolling for Full Keyboard Access [#2222](https://github.com/JetBrains/compose-multiplatform-core/pull/2222) +- Support custom menu items for text context menu [#2324](https://github.com/JetBrains/compose-multiplatform-core/pull/2324) +- Add API to configure `UIResponder.inputView` with `PlatformImeOptions` [#2350](https://github.com/JetBrains/compose-multiplatform-core/pull/2350) +- Add API to configure `UIResponder.inputAccessoryView` with `PlatformImeOptions` [#2350](https://github.com/JetBrains/compose-multiplatform-core/pull/2350) + +### Desktop + +- Added `modalityType` parameter to `DialogWindow()` [#2300](https://github.com/JetBrains/compose-multiplatform-core/pull/2300) +- The Compose entry points on the desktop (`ComposeWindow`, `ComposePanel` and `ImageComposeScene`) now expose `val semanticsOwners: Collection` [#2358](https://github.com/JetBrains/compose-multiplatform-core/pull/2358) + +## Fixes + +### Multiple Platforms + +- Fix application of `baselineShift` parameter in text layout [#2304](https://github.com/JetBrains/compose-multiplatform-core/pull/2304) +- Fix setting `lineHeight` to `0` in text layout [#2304](https://github.com/JetBrains/compose-multiplatform-core/pull/2304) + +### iOS + +- Fix incorrect behavior of `WindowInsets.displayCutout` in different interface orientations [#2301](https://github.com/JetBrains/compose-multiplatform-core/pull/2301) +- Fix incorrect behavior of `WindowInsets.displayCutout` on iPad [#2301](https://github.com/JetBrains/compose-multiplatform-core/pull/2301) +- Fix the ability to use UIKitViewController inside `Popup`s and `Dialog`s [#2270](https://github.com/JetBrains/compose-multiplatform-core/pull/2270) +- Fix Accessibility announcing the old state of component [#2327](https://github.com/JetBrains/compose-multiplatform-core/pull/2327) +- Align the semantics of TextFields with iOS text inputs [#2331](https://github.com/JetBrains/compose-multiplatform-core/pull/2331) +- Fix crash when removing characters after string replacement [#2361](https://github.com/JetBrains/compose-multiplatform-core/pull/2361) + +### Desktop + +- Fix non-focusable popup with `compose.layers.type=WINDOW` stealing focus [#2285](https://github.com/JetBrains/compose-multiplatform-core/pull/2285) +- Change `ComposePanel.getPreferredSize` to return 0x0 instead of `null` [#2283](https://github.com/JetBrains/compose-multiplatform-core/pull/2283) +- Request initial focus for focusable popups when used from `ComposePanel` in some cases [#2289](https://github.com/JetBrains/compose-multiplatform-core/pull/2289) +- In experimental `compose.layers.type` modes, fix `Popup`/`Dialog` container size calculation that prevents mouse interactions on base compose scene [#2304](https://github.com/JetBrains/compose-multiplatform-core/pull/2304) +- Fixed the sizing of unfocusable layers when `compose.layers.type=COMPONENT` is used [#2305](https://github.com/JetBrains/compose-multiplatform-core/pull/2305) +- `SwingPanel` no longer requires to be manually sized to a fixed value; it will size according to its content's min/pref/max sizes [#2310](https://github.com/JetBrains/compose-multiplatform-core/pull/2310) +- Made disabled new context menu items actually disabled, including the right semantics [#2347](https://github.com/JetBrains/compose-multiplatform-core/pull/2347) + +### Web + +- Fix the issue where deleting a word in the middle of a sentence also affects the word next to it [#2372](https://github.com/JetBrains/compose-multiplatform-core/pull/2372) + +### Gradle Plugin + +- Support `AGP 9.0.0` [#5391](https://github.com/JetBrains/compose-multiplatform/pull/5391) +- _(prerelease fix)_ Fix composeCompatibilityBrowserDistribution task lazy configuration [#5398](https://github.com/JetBrains/compose-multiplatform/pull/5398) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.10.0-alpha01`. Based on Jetpack Compose libraries: + - [Runtime 1.10.0-alpha02](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.10.0-alpha02) + - [UI 1.10.0-alpha02](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0-alpha02) + - [Foundation 1.10.0-alpha02](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.10.0-alpha02) + - [Material 1.10.0-alpha02](https://developer.android.com/jetpack/androidx/releases/compose-material#1.10.0-alpha02) + - [Material3 1.5.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.5.0-alpha03) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.10.0-alpha01`. Based on [Jetpack Compose Material3 1.5.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.5.0-alpha03) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha06`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha11](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha11) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-alpha01`. Based on [Jetpack Lifecycle 2.10.0-alpha03](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.10.0-alpha03) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-rc01`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.4.0-alpha01`. Based on [Jetpack Savedstate 1.4.0-alpha03](https://developer.android.com/jetpack/androidx/releases/savedstate#1.4.0-alpha03) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.5.0-alpha01`. Based on [Jetpack WindowManager 1.5.0-beta02](https://developer.android.com/jetpack/androidx/releases/window#1.5.0-beta02) + +--- + +# 1.9.0-rc01 (August 2025) + +_Changes since 1.9.0-beta03_ + +## Fixes + +### Multiple Platforms + +- _(prerelease fix)_ Fix incorrect light source position for dynamic shadows in some cases [#2328](https://github.com/JetBrains/compose-multiplatform-core/pull/2328) + +### Desktop + +- _(prerelease fix)_ Fixed focus indication being shown in touch input mode [#2342](https://github.com/JetBrains/compose-multiplatform-core/pull/2342) +- Fix `runRelease` task when navigation and `obfuscate.set(true)` are used [#5384](https://github.com/JetBrains/compose-multiplatform/pull/5384) + +### Lifecycle + +- Fix dependency to Compose in `lifecycle-viewmodel-compose` module: `2.9.2` incorrectly refer Compose Multiplatform `1.9.0-beta03`. Now it reverted back to `1.8.2` [#2318](https://github.com/JetBrains/compose-multiplatform-core/pull/2318) + +### SavedState + +- Fix dependency to Compose in `savedstate-compose` module: `1.3.2` incorrectly refer Compose Multiplatform `1.9.0-beta03`. Now it reverted back to `1.8.2` [#2321](https://github.com/JetBrains/compose-multiplatform-core/pull/2321) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-rc01`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0) + - [UI 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0) + - [Foundation 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0) + - [Material 1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.9.0-beta04`. Based on [Jetpack Compose Material3 1.4.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-beta02) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha05`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha10](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha10) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.3`. Based on [Jetpack Lifecycle 2.9.2](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.2) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-rc01`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.3`. Based on [Jetpack Savedstate 1.3.1](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.1) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-rc01`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.9.0-beta03 (August 2025) + +_Changes since 1.9.0-beta01_ + +## Breaking Changes + +### Multiple Platforms + +- _(prerelease fix)_ All public APIs tagged with `ExperimentalMaterial3ExpressiveApi` or `ExperimentalMaterial3ComponentOverrideApi` have been removed, see [Google Jetpack changelog](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-beta01). Please use the previous Material3 alpha version explicitly to continue enjoying these features: [#2278](https://github.com/JetBrains/compose-multiplatform-core/pull/2278) + + ``` + implementation("org.jetbrains.compose.material3:material3:1.9.0-alpha04") + ``` + +## Migration Notes + +### Multiple Platforms + +- `kotlinx-datetime` is updated to `0.7.1`. If you also use it in your projects, please update it to this version to ensure compatibility [#2276](https://github.com/JetBrains/compose-multiplatform-core/pull/2276) + +### Desktop + +- Kotlin 2.1 is required for all platforms including JVM (it was required only for native and web before) [#2276](https://github.com/JetBrains/compose-multiplatform-core/pull/2276) + +### Web + +- `CanvasBasedWindow` is deprecated, use `ComposeViewport` instead. Unlike `CanvasBasedWindow`, which expect as an input param the id to the `HTMLCanvasElement` that will be used for rendering, `ComposeViewport` one passes `parentContainer` (and corresponding HTML Canvas element will be created automatically). By default such container is `document.body` [#2280](https://github.com/JetBrains/compose-multiplatform-core/pull/2280) + +## Features + +### Web + +- Support of the new context menu toolbar in web mobile targets [#2251](https://github.com/JetBrains/compose-multiplatform-core/pull/2251) +- [js] there's no need to manually add skiko.js to the html page any more [#2264](https://github.com/JetBrains/compose-multiplatform-core/pull/2264) +- Introduce `composeCompatibilityBrowserDistribution` task. This task combines two prod distributions - for js and for wasm in such way so that if modern required features are not supported by the consumer browser, application switch to js mode [#5375](https://github.com/JetBrains/compose-multiplatform/pull/5375) + +## Fixes + +### Multiple Platforms + +- Fix text ellipsis if there's not enough vertical space to fit all lines [#2246](https://github.com/JetBrains/compose-multiplatform-core/pull/2246) +- Fix "IrLinkageError: Function can not be called: No function found for symbol" [#2293](https://github.com/JetBrains/compose-multiplatform-core/pull/2293) +- `ExperimentalMaterial3ExpressiveApi` annotation removed from no-longer-experimental API [#2298](https://github.com/JetBrains/compose-multiplatform-core/pull/2298) + +### iOS + +- Do not flatten accessibility tree inside accessibility elements [#2243](https://github.com/JetBrains/compose-multiplatform-core/pull/2243) + +### Desktop + +- [macOS] Fix composite (e.g. Chinese) input after pressing backspace [#2250](https://github.com/JetBrains/compose-multiplatform-core/pull/2250) +- [TextField] Fixed duplication of the composed characters when moving the caret by clicking during a composition [#2255](https://github.com/JetBrains/compose-multiplatform-core/pull/2255) +- _(prerelease fix)_ Close the context menu when a menu item is clicked (old context menu API) [#2259](https://github.com/JetBrains/compose-multiplatform-core/pull/2259) +- Correctly remove `SwingPanel` children of `ComposePanel`, when the compose panel is itself removed from the hierarchy [#2277](https://github.com/JetBrains/compose-multiplatform-core/pull/2277) +- _(prerelease fix)_ Fix `DialogWindow` causing a taskbar icon to be displayed in some cases where it shouldn't [#2291](https://github.com/JetBrains/compose-multiplatform-core/pull/2291) + +### Web + +- Fix software keyboard behaviour for Compose Text Fields in iOS Safari [#2260](https://github.com/JetBrains/compose-multiplatform-core/pull/2260) +- Fixed the bugs with composite text input [#2256](https://github.com/JetBrains/compose-multiplatform-core/pull/2256) +- _(prerelease fix)_ Hide disabled context menu items in the web text toolbar menu [#2268](https://github.com/JetBrains/compose-multiplatform-core/pull/2268) +- _(prerelease fix)_ Show the "paste" item regardless of the the clipboard content state if the Clipboard API is supported [#2267](https://github.com/JetBrains/compose-multiplatform-core/pull/2267) +- _(prerelease fix)_ The context menu will not show the Clipboard-related items when the Clipboard API are not supported by a browser [#2266](https://github.com/JetBrains/compose-multiplatform-core/pull/2266) +- Fixed the issue with software keyboard when it was shown repeatedly in Chrome mobile [#2279](https://github.com/JetBrains/compose-multiplatform-core/pull/2279) +- _(prerelease fix)_ The context menu had only "Select All" item when targeting k/js [#2296](https://github.com/JetBrains/compose-multiplatform-core/pull/2296) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-beta03`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0-rc01) + - [UI 1.9.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0-rc01) + - [Foundation 1.9.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0-rc01) + - [Material 1.9.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0-rc01) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.9.0-beta03`. Based on [Jetpack Compose Material3 1.4.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-beta01) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha05`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha10](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha10) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.2`. Based on [Jetpack Lifecycle 2.9.2](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.2) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta05`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.2`. Based on [Jetpack Savedstate 1.3.1](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.1) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-beta01`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.9.0-beta01 (July 2025) + +_Changes since 1.9.0-alpha03_ + +## Highlights + +### Web + +- Text context menu is supported on web platforms for both modes: mobile and desktop [#2207](https://github.com/JetBrains/compose-multiplatform-core/pull/2207) +- Introduce the basic support of accessibility in the web target [#2188](https://github.com/JetBrains/compose-multiplatform-core/pull/2188) + +## Migration Notes + +### Multiple Platforms + +- Material3 versioning is decoupled for the Compose Multiplatform 1.9.* release due the upstream Jetpack Compose Material3 1.4 has not been released as stable yet [#5360](https://github.com/JetBrains/compose-multiplatform/pull/5360) +- `compose.material3` now points to the latest stable Material3 version, 1.8.2. If the latest Material3 features are needed, please include it this way: [#5360](https://github.com/JetBrains/compose-multiplatform/pull/5360) + + ``` + implementation("org.jetbrains.compose.material3:material3:1.9.0-alpha04") + ``` + +### iOS + +- Remove experimental attribute from `UIKitInteropInteractionMode` [#2215](https://github.com/JetBrains/compose-multiplatform-core/pull/2215) + +### Web + +- `fun ComposeViewport` with `viewportContainerId: String?` parameter now can be called from a web-common `fun main` (k/js and k/wasm) [#2226](https://github.com/JetBrains/compose-multiplatform-core/pull/2226) + +## Features + +### Multiple Platforms + +- Extended the `@Preview` (`org.jetbrains.compose.ui.tooling.preview`) annotation with the following parameters: name, group, widthDp, heightDp, locale, showBackground, backgroundColor. IDE (IJ or AS) will pick up these parameters in the same way it works for `androidx` Preview annotations [#5339](https://github.com/JetBrains/compose-multiplatform/pull/5339) + +### iOS + +- Support new context menu API with default menu [#2214](https://github.com/JetBrains/compose-multiplatform-core/pull/2214) +- Add support for frame rate voting [#2205](https://github.com/JetBrains/compose-multiplatform-core/pull/2205) +- Support scroll commands with Voice Control [#2234](https://github.com/JetBrains/compose-multiplatform-core/pull/2234) +- Implement accessibility scroll to focused interop views [#2228](https://github.com/JetBrains/compose-multiplatform-core/pull/2228) + +### Desktop + +- Basic support for new context menu API [#2196](https://github.com/JetBrains/compose-multiplatform-core/pull/2196) +- Added experimental support for save and restore compose state. `ComposePanel`, `ComposeWindow` and `ComposeDialog` now has `savedState` constructor parameter to restore previous state and `saveState` function to save the current state for later use [#2225](https://github.com/JetBrains/compose-multiplatform-core/pull/2225) + +### Web + +- Support the new context menu API in web targets in the desktop mode [#2224](https://github.com/JetBrains/compose-multiplatform-core/pull/2224) + +### Resources + +- Added `JvmResourceReader` API and made `LocalResourceReader` public to allow providing a custom classloader for desktop target [#5334](https://github.com/JetBrains/compose-multiplatform/pull/5334) + +### Navigation + +- A new API was added to bind the browser navigation state with the `NavController` - `suspend fun NavController.bindToBrowserNavigation`. And the existing function `suspend fun Window.bindToNavigation` is deprecated now [#2189](https://github.com/JetBrains/compose-multiplatform-core/pull/2189) + +## Fixes + +### Multiple Platforms + +- Fix extra draw invalidations during scrolling (1.8 regression) [#2212](https://github.com/JetBrains/compose-multiplatform-core/pull/2212) +- _(prerelease fix)_ Fix trigger of `Modifier.onFirstVisible` modifier (added in Jetpack Compose `1.9.0-alpha03`) [#2233](https://github.com/JetBrains/compose-multiplatform-core/pull/2233) + +### iOS + +- Change the accessibility selection to the element that has most recently been focused on [#2217](https://github.com/JetBrains/compose-multiplatform-core/pull/2217) +- Fix Full Keyboard Access on iOS 17 and lower [#2216](https://github.com/JetBrains/compose-multiplatform-core/pull/2216) +- _(prerelease fix)_ Fixed `Undefined symbols for architecture arm64: _kfun:androidx.compose.material3.adaptive.WindowAdaptiveInfo` [#2236](https://github.com/JetBrains/compose-multiplatform-core/pull/2236) +- Fixes the appearance of the keyboard when a pop-up or dialog on the background is dismissed [#2240](https://github.com/JetBrains/compose-multiplatform-core/pull/2240) + +### Desktop + +- Fixed the case when the IME's first event to a text field is to commit a composition [#2210](https://github.com/JetBrains/compose-multiplatform-core/pull/2210) +- Elements marked with Modifier.semantics { hideFromAccessibility() } should now be correctly hidden from a11y [#2204](https://github.com/JetBrains/compose-multiplatform-core/pull/2204) +- _(prerelease fix)_ Fix focus switching for ComposePanel embedded in Swing UI [#2232](https://github.com/JetBrains/compose-multiplatform-core/pull/2232) +- _(prerelease fix)_ Fix Maven project doesn't work with 1.9.0-alpha03 [#2248](https://github.com/JetBrains/compose-multiplatform-core/pull/2248) + +### Web + +- Web Lifecycle triggers `START`/`STOP` events on the `visibilitychange` callback now [#2219](https://github.com/JetBrains/compose-multiplatform-core/pull/2219) +- Lifecycle fix on iOS Safari: now touch events trigger `ON_RESUME` because Safari ignores interactions and doesn't request the focus [#2219](https://github.com/JetBrains/compose-multiplatform-core/pull/2219) + +### Gradle Plugin + +- Fix codesigning on macOS when the developer id contains non-ASCII characters. Note that this requires JDK 21 or later [#5358](https://github.com/JetBrains/compose-multiplatform/pull/5358) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-beta01`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0-beta02) + - [UI 1.9.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0-beta02) + - [Foundation 1.9.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0-beta02) + - [Material 1.9.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0-beta02) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Compose Material3 libraries `org.jetbrains.compose.material3:material3*:1.9.0-alpha04`. Based on [Jetpack Compose Material3 1.4.0-alpha17](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha17) +- Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha04`. Based on [Jetpack Compose Material3 Adaptive 1.2.0-alpha08](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha08) +- Graphics-Shapes library `org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha09`. Based on [Jetpack Graphics-Shapes 1.0.1](https://developer.android.com/jetpack/androidx/releases/graphics#graphics-shapes-1.0.1) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1`. Based on [Jetpack Lifecycle 2.9.1](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.1) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta04`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.1`. Based on [Jetpack Savedstate 1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-alpha09`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.9.0-alpha03 (July 2025) + +_Changes since 1.9.0-alpha02_ + +## Highlights + +### Web + +- Added a `WebElementView` Composable function for embedding the absolutely positioned HTML content in Compose for web target. It's supported only when using `ComposeViewport` entry point and it's not supported with `CanvasBasedWindow`, which is deprecated now [#2145](https://github.com/JetBrains/compose-multiplatform-core/pull/2145) + +## Migration Notes + +### Desktop + +- `Window` and `DialogWindow` overloads that create a `ComposeWindow`/`ComposeDialog` have been renamed to `SwingWindow`/`SwingDialog` and the old versions have been deprecated [#2141](https://github.com/JetBrains/compose-multiplatform-core/pull/2141) +- When the window is iconified, converting to/from screen coordinates (with e.g.`LayoutCoordinates.positionOnScreen()`) will return `Offset.Unspecified` [#2163](https://github.com/JetBrains/compose-multiplatform-core/pull/2163) +- Deprecated experimental `Modifier.mouseClickable` is removed. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-mouse-events.html for alternatives [#2194](https://github.com/JetBrains/compose-multiplatform-core/pull/2194) + +### Web + +- Setting `org.jetbrains.compose.experimental.jscanvas.enabled=true` is not required anymore when having a kotlin/js target [#5340](https://github.com/JetBrains/compose-multiplatform/pull/5340) + +## Features + +### Multiple Platforms + +- Support customizable shadows [#2183](https://github.com/JetBrains/compose-multiplatform-core/pull/2183) + +### iOS + +- Add support for `keepScreenOn` modifier [#2180](https://github.com/JetBrains/compose-multiplatform-core/pull/2180) + +### Desktop + +- Added `SwingFrame` and `SwingDialog` composables that allow configuring the window/dialog before it is shown [#2139](https://github.com/JetBrains/compose-multiplatform-core/pull/2139) +- Full `AnnotatedString` is available as a data flavor in `ClipEntry`, instead of only its text [#2092](https://github.com/JetBrains/compose-multiplatform-core/pull/2092) +- Add `RenderSettings.SwingGraphics` option for `ComposePanel.renderSettings` argument [#2071](https://github.com/JetBrains/compose-multiplatform-core/pull/2071) + +## Fixes + +### Multiple Platforms + +- Fixed caret placement near glyphs if glyphs are compound symbols and part of them are non-spacing marks [#2147](https://github.com/JetBrains/compose-multiplatform-core/pull/2147) +- _(prerelease fix)_ Fix applying `colorFilter` and `blendMode` from `GraphicsLayerScope` to `GraphicsLayer` [#2184](https://github.com/JetBrains/compose-multiplatform-core/pull/2184) + +### Desktop + +- [Accessibility, macOS] Fixed VoiceOver to announce a Slider's value on every change [#2152](https://github.com/JetBrains/compose-multiplatform-core/pull/2152) +- Return `Offset.Unspecified` instead of throwing an exception in `LayoutCoordinates.localToScreen` and `LayoutCoordinates.screenToLocal` [#2160](https://github.com/JetBrains/compose-multiplatform-core/pull/2160) +- When the window moves or becomes iconified/de-iconified, all instances of `Modifier.onGloballyPositioned` will be called [#2163](https://github.com/JetBrains/compose-multiplatform-core/pull/2163) +- Implemented a context menu for `BasicTextField(TextFieldState)` [#2168](https://github.com/JetBrains/compose-multiplatform-core/pull/2168) +- _(prerelease fix)_ `Could not find org.jetbrains.androidx.window:window-core-desktop:1.4.0-alpha07` when using `material-adaptive` or `material3-adaptive-navigation-suite` [#2179](https://github.com/JetBrains/compose-multiplatform-core/pull/2179) +- `SemanticsProperties.Text` and `SemanticsProperties.ContentDescription` values will now be correctly concatenated when `Modifier.semantics(mergeDescendants = true)` is used [#2202](https://github.com/JetBrains/compose-multiplatform-core/pull/2202) + +### Web + +- Fixed an unexpected back gesture after a horizontal scroll [#2186](https://github.com/JetBrains/compose-multiplatform-core/pull/2186) +- Mitigate a typing delay regression in Safari browsers [#2195](https://github.com/JetBrains/compose-multiplatform-core/pull/2195) + +### Gradle Plugin + +- Don't fail gradle sync if TargetFormat.AppImage is specified in `targetFormats` on macOS [#5332](https://github.com/JetBrains/compose-multiplatform/pull/5332) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-alpha03`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0-beta01) + - [UI 1.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0-beta01) + - [Foundation 1.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0-beta01) + - [Material 1.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0-beta01) + - [Material3 1.4.0-alpha16](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha16) + +- Graphics-Shapes library `org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha09`. Based on [Jetpack Graphics-Shapes 1.0.1](https://developer.android.com/jetpack/androidx/releases/graphics#graphics-shapes-#1.0.1) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1`. Based on [Jetpack Lifecycle 2.9.1](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.1) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha03`. Based on [Jetpack Material3 Adaptive 1.2.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha07) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta03`. Based on [Jetpack Navigation 2.9.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.1`. Based on [Jetpack Savedstate 1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-alpha08`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.8.2 (June 2025) + +_Changes since 1.8.1_ + +## Fixes + +### Multiple Platforms + +- Fixed `TextField(TextFieldValue)` when used with a visual transformation with a non-identity offset mapping (potentially even crashing) [#2130](https://github.com/JetBrains/compose-multiplatform-core/pull/2130) +- Fixed a memory leak and performance degradation when `ComposeUiFlags.isRectTrackingEnabled` set to `true` (by default) [#2123](https://github.com/JetBrains/compose-multiplatform-core/pull/2123) +- Fixed caret placement near glyphs if glyphs are compound symbols and part of them are non-spacing marks [#2155](https://github.com/JetBrains/compose-multiplatform-core/pull/2155) +- Support Preview parameters for Previews in common source sets in IJ and AS. Note: IDEs also need to implement support on their end. Please check the respective IDE release notes to confirm this is supported [#5323](https://github.com/JetBrains/compose-multiplatform/pull/5323) + + Example usage: + + ``` + import androidx.compose.runtime.Composable + import org.jetbrains.compose.ui.tooling.preview.Preview + import org.jetbrains.compose.ui.tooling.preview.PreviewParameter + import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider + + class MyPreviewParameterProvider : PreviewParameterProvider { + override val values = sequenceOf("Hello, Compose!", "Hello, World!") + } + + /** + * This function will generate two preview images with different texts. + */ + @Preview + @Composable + fun MyPreview(@PreviewParameter(MyPreviewParameterProvider::class) text: String) { + Text(text) + } + ``` + + +### Desktop + +- Fix the positioning of the IME popup being too far away from the text, on screens with density greater than `1.0` [#2158](https://github.com/JetBrains/compose-multiplatform-core/pull/2158) + +### Navigation + +- Fix the browser navigation integration problem due encoded routes [#2143](https://github.com/JetBrains/compose-multiplatform-core/pull/2143) +- Fix a crash on iOS when a `NavHost` is located in a scrollable container [#2146](https://github.com/JetBrains/compose-multiplatform-core/pull/2146) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.2`. Based on Jetpack Compose libraries: + - [Runtime 1.8.2](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.2) + - [UI 1.8.2](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.2) + - [Foundation 1.8.2](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.2) + - [Material 1.8.2](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.2) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.1`. Based on [Jetpack Lifecycle 2.9.1](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.1) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.2`. Based on [Jetpack Material3 Adaptive 1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta03`. Based on [Jetpack Navigation 2.9.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.1`. Based on [Jetpack Savedstate 1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-alpha07`. Based on [Jetpack WindowManager 1.4.0-alpha04](https://developer.android.com/jetpack/androidx/releases/window#1.4.0-alpha04) + +--- + +# 1.9.0-alpha02 (June 2025) + +_Changes since 1.8.1_ + +## Highlights + +### Multiple Platforms + +- `material3` library now includes new experimental `MaterialExpressiveTheme` [#2127](https://github.com/JetBrains/compose-multiplatform-core/pull/2127) + +## Migration Notes + +### Gradle Plugin + +- The Compose Gradle plugin requires the Kotlin Gradle plugin version 2.+ now. Old `org.jetbrains.compose.compiler` is not supported anymore and the API to configure it was removed [#5283](https://github.com/JetBrains/compose-multiplatform/pull/5283) + +## Features + +### Multiple Platforms + +- Adopted a change in `ComposeUiTest` API. The `block` in `runComposeUiTest` is `suspend` now. It allows to call `awaitIdle` and other suspend functions. It ensures a correct execution of a test on all platforms. See the web specifics in `kotlinx.coroutines.test.runTest` [documentation](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/run-test.html) [#2066](https://github.com/JetBrains/compose-multiplatform-core/pull/2066) + +### iOS + +- Add support for native IME configuration with `PlatformImeOptions` [#2108](https://github.com/JetBrains/compose-multiplatform-core/pull/2108) + +### Desktop + +- Add accessibility role for `Switch`, reporting it as a checkbox [#2136](https://github.com/JetBrains/compose-multiplatform-core/pull/2136) + +## Fixes + +### Multiple Platforms + +- Fixed `TextField(TextFieldValue)` when used with a visual transformation with a non-identity offset mapping (potentially even crashing) [#2117](https://github.com/JetBrains/compose-multiplatform-core/pull/2117) +- Fixed a memory leak and performance degradation when `ComposeUiFlags.isRectTrackingEnabled` set to `true` (default) [#2112](https://github.com/JetBrains/compose-multiplatform-core/pull/2112) +- Support Preview parameters for Previews in common source sets in IJ and AS. Note: IDEs also need to implement support on their end. Please check the respective IDE release notes to confirm this is supported [#5319](https://github.com/JetBrains/compose-multiplatform/pull/5319) + Example usage: + ``` + import androidx.compose.runtime.Composable + import org.jetbrains.compose.ui.tooling.preview.Preview + import org.jetbrains.compose.ui.tooling.preview.PreviewParameter + import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider + class MyPreviewParameterProvider : PreviewParameterProvider { + override val values = sequenceOf("Hello, Compose!", "Hello, World!") + } + /** + * This function will generate two preview images with different texts + */ + @Preview + @Composable + fun MyPreview(@PreviewParameter(MyPreviewParameterProvider::class) text: String) { + Text(text) + } + ``` + +### iOS + +- Fix issue where keyboard would appear after second tap when text input session was intercepted [#2049](https://github.com/JetBrains/compose-multiplatform-core/pull/2049) + +### Desktop + +- [macOS] Fix the background flashing when closing a window/dialog and an animation is running [#2058](https://github.com/JetBrains/compose-multiplatform-core/pull/2058) +- [macOS; JBR] Fixed the current composition in a text field being duplicated into another text field when switching focus to it [#2026](https://github.com/JetBrains/compose-multiplatform-core/pull/2026) +- [macOS] Fixed strange glyph being displayed in a text field if window becomes unfocused, then focused again while there's an active composition in the text field (after pressing e.g. backspace) [#2026](https://github.com/JetBrains/compose-multiplatform-core/pull/2026) +- [macOS] Fix showing the input method toolbar before any text field becomes focused (on JBR only; other runtimes continue to be buggy) [#2047](https://github.com/JetBrains/compose-multiplatform-core/pull/2047) +- Improved performance for `ComposePanel` with `System.setProperty("compose.swing.render.on.graphics", "true")` [#2097](https://github.com/JetBrains/compose-multiplatform-core/pull/2097) +- Fix the positioning of the IME popup being too far away from the text, on screens with density greater than 1 [#2118](https://github.com/JetBrains/compose-multiplatform-core/pull/2118) +- Fixed the position of the IME popup, which was below the previous, rather than the current, cursor position [#2122](https://github.com/JetBrains/compose-multiplatform-core/pull/2122) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-alpha02`. Based on Jetpack Compose libraries: + - [Runtime 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0-alpha03) + - [UI 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0-alpha03) + - [Foundation 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0-alpha03) + - [Material 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0-alpha03) + - [Material3 1.4.0-alpha15](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha15) + +- Graphics-Shapes library `org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha08`. Based on [Jetpack Graphics-Shapes 1.0.1](https://developer.android.com/jetpack/androidx/releases/graphics#graphics-shapes-#1.0.1) +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0`. Based on [Jetpack Lifecycle 2.9.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha02`. Based on [Jetpack Material3 Adaptive 1.2.0-alpha06](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha06) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta02`. Based on [Jetpack Navigation 2.9.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0) +- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.0`. Based on [Jetpack Savedstate 1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0) +- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-alpha07`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0) + +--- + +# 1.8.1 (May 2025) + +_Changes since 1.8.0_ + +## Features + +### Resources + +- Now a Compose library with resources may be built and used as XCFramework (it requires Kotlin Gradle plugin 2.2 or higher) [#5294](https://github.com/JetBrains/compose-multiplatform/pull/5294) +- Gradle Plugin DSL to change the generated `Res` class name [#5296](https://github.com/JetBrains/compose-multiplatform/pull/5296) + +## Fixes + +### Multiple Platforms + +- Fix incorrect pointer position calculation with rotation around unspecified pivot [#2082](https://github.com/JetBrains/compose-multiplatform-core/pull/2082) + +### iOS + +- Fix dialogs after modal view controller presentation [#2085](https://github.com/JetBrains/compose-multiplatform-core/pull/2085) +- Fix issue where `androidx.compose.material3.ModalBottomSheet` closes after any tap [#2086](https://github.com/JetBrains/compose-multiplatform-core/pull/2086) +- Fix context menu appearance after triple-tap [#2087](https://github.com/JetBrains/compose-multiplatform-core/pull/2087) +- Fix a memory leak in `ComposeUIViewController` when text input starts [#2088](https://github.com/JetBrains/compose-multiplatform-core/pull/2088) +- Use the cross-fade animation effect when rotating the screen with interop views [#2101](https://github.com/JetBrains/compose-multiplatform-core/pull/2101) +- Show an error message when `UIKitViewController` inside `Popup` or `Dialog` [#2102](https://github.com/JetBrains/compose-multiplatform-core/pull/2102) +- Fix an issue where the keyboard would appear after the second tap when the text input session was intercepted [#2103](https://github.com/JetBrains/compose-multiplatform-core/pull/2103) + +### Desktop + +- [Linux] Fix `svgPainter` doesn't show any images [#2096](https://github.com/JetBrains/compose-multiplatform-core/pull/2096) +- Fix deadlock between `BroadcastFrameClock.lock` and `Recomposer.stateLock` [#2098](https://github.com/JetBrains/compose-multiplatform-core/pull/2098) +- Fix "Serializer for class is not found" using `androidx.navigation` and running `./gradlew runRelease` [#5314](https://github.com/JetBrains/compose-multiplatform/pull/5314) +- `kotlinx.serialization` ProGuard rules are bundled in the Compose Gradle plugin [#5314](https://github.com/JetBrains/compose-multiplatform/pull/5314) + +### Web + +- Fixed the positioning and the dimensions of the backing text input (HTML element). The bug used to lead to unexpected scrolls on the page due to the browser trying to bring the HTML element into a view [#2081](https://github.com/JetBrains/compose-multiplatform-core/pull/2081) + +### Resources + +- Fix IDE highlighting/resolution when a generated file with resource accessors is too big [#5298](https://github.com/JetBrains/compose-multiplatform/pull/5298) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.1`. Based on Jetpack Compose libraries: + - [Runtime 1.8.1](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.1) + - [UI 1.8.1](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.1) + - [Foundation 1.8.1](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.1) + - [Material 1.8.1](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.1) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0`. Based on [Jetpack Lifecycle 2.9.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta02`. Based on [Jetpack Navigation 2.9.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.1`. Based on [Jetpack Material3 Adaptive 1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0) + +--- + +# 1.8.0 (May 2025) + +_Changes since 1.7.3_ + +## Highlights + +### Multiple Platforms + +- Compose Multiplatform codebase is fully migrated to K2. Please note that native and web klibs can be consumed only with Kotlin 2.1.0 or newer. Also, due to underlying changes in the compiler plugin, it's better to recompile libraries against the new version. Please let us know if you find any compatibility issues during this migration [#1778](https://github.com/JetBrains/compose-multiplatform-core/pull/1778) +- Implement multiplatform `BackHandler` and `PredictiveBackHandler`. And use them in material3 widgets and androidx-navigation library [#1771](https://github.com/JetBrains/compose-multiplatform-core/pull/1771) + +### iOS + +- Remove experimental flag from `fun enableTraceOSLog()` [#1652](https://github.com/JetBrains/compose-multiplatform-core/pull/1652) + +### Web + +- Improves text input support in Safari on mobile and desktop [#1941](https://github.com/JetBrains/compose-multiplatform-core/pull/1941) +- Correct certain text input scenarios on Web targets [#1941](https://github.com/JetBrains/compose-multiplatform-core/pull/1941) + +### Resources + +- Add `FontVariation.Settings` support to the resources library [#5183](https://github.com/JetBrains/compose-multiplatform/pull/5183) + +## Breaking Changes + +### Tests + +- `runOnIdle` will now execute `action` on the UI thread aligning the behavior with Android [#1601](https://github.com/JetBrains/compose-multiplatform-core/pull/1601) +- `runOnIdle` will no longer call `waitForIdle` after executing the action aligning the behavior with Android [#1601](https://github.com/JetBrains/compose-multiplatform-core/pull/1601) +- Advancing `mainClock` such that it doesn't reach the next frame, will no longer cause a recomposition [#1618](https://github.com/JetBrains/compose-multiplatform-core/pull/1618) +- [IdlingResource](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource) interface was moved from commonMain to android and desktop source sets. The related experimental methods of [ComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest) were moved too. They are not available for Web and iOS anymore. Consider using [waitUntil function](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#waitUntil(kotlin.String,kotlin.Long,kotlin.Function0)) as an alternative. Note: it's a breaking change only for Web and iOS, but not for Desktop and Android [#1822](https://github.com/JetBrains/compose-multiplatform-core/pull/1822) + +### Multiple Platforms + +- Multiplatform lifecycle was migrated from a internal `core-bundle` module to the androidx SavedState. Libraries that use `org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate` or `org.jetbrains.androidx.savedstate:savedstate` should migrate to the latest version [#1850](https://github.com/JetBrains/compose-multiplatform-core/pull/1850) +- A custom implementation for deprecated `LocalTextInputService` is no longer supported [#1974](https://github.com/JetBrains/compose-multiplatform-core/pull/1974) + +### iOS + +- Update `AccessibilitySyncOptions` and remove `AccessibilityDebugLogger` from public API [#1604](https://github.com/JetBrains/compose-multiplatform-core/pull/1604) +- Remove obsolete Canvas Layers mode on iOS [#1680](https://github.com/JetBrains/compose-multiplatform-core/pull/1680) +- Add Composable annotation to the `WindowInsets.Companion.waterfall` getter to match the expected API [#1919](https://github.com/JetBrains/compose-multiplatform-core/pull/1919) + +### Desktop + +- Deprecated/experimental `Modifier.onExternalDrag` has been removed - common `Modifier.dragAndDropTarget` API should be used instead [#1606](https://github.com/JetBrains/compose-multiplatform-core/pull/1606) + +## Migration Notes + +### Multiple Platforms + +- [Google Maven](https://maven.google.com/) now contains some artifacts for all Kotlin targets including Wasm and JS. Compose Multiplatform now depends on those artifacts and user projects might need to add `google()` repo to `repositories {...}` block if it is not there yet [#1819](https://github.com/JetBrains/compose-multiplatform-core/pull/1819) +- material/material3 libraries no longer add a dependency to `material-icons-core` so if your project relied on that, you will have to explicitly add that dependency in your `build.gradle[.kts]` files: [#2030](https://github.com/JetBrains/compose-multiplatform-core/pull/2030) + ``` + implementation("org.jetbrains.compose.material:material-icons-core:1.7.3") + ``` + +### iOS + +- `LocalUIViewController` moved to the `androidx.compose.ui.uikit` module [#1608](https://github.com/JetBrains/compose-multiplatform-core/pull/1608) +- `ComposeUIViewControllerDelegate` marked as deprecated. Use the parent view controller to override the methods of the `UIViewController` class [#1651](https://github.com/JetBrains/compose-multiplatform-core/pull/1651) +- Experimental classes `CupertinoScrollDecayAnimationSpec` and `CupertinoOverscrollEffect` are removed from public API [#1806](https://github.com/JetBrains/compose-multiplatform-core/pull/1806) + +### Gradle Plugin + +- The Compose Gradle Plugin requires Kotlin Gradle Plugin 2.+ version now. Old `org.jetbrains.compose.compiler` is not supported anymore and the API to configure it was removed [#5293](https://github.com/JetBrains/compose-multiplatform/pull/5293) + +## Features + +### Multiple Platforms + +- Support configurable vertical text centering via `LineHeightStyle.Alignment` [#1569](https://github.com/JetBrains/compose-multiplatform-core/pull/1569) +- Support Variable Fonts In All Platforms [#1623](https://github.com/JetBrains/compose-multiplatform-core/pull/1623) +- Update skia to m132 [#1823](https://github.com/JetBrains/compose-multiplatform-core/pull/1823) +- Adopt a new `Clipboard` interface with suspend functions, which work correctly on all targets including Web. The `ClipboardManager` was deprecated because it was not possible to correctly implement it for Web [#1796](https://github.com/JetBrains/compose-multiplatform-core/pull/1796) + +### iOS + +- Support state announcements for scrollable lists in VoiceOver [#1644](https://github.com/JetBrains/compose-multiplatform-core/pull/1644) +- Support for accessibility gestures for left-to-right languages [#1663](https://github.com/JetBrains/compose-multiplatform-core/pull/1663) +- (Experimental) `ComposeUIViewControllerConfiguration.useSeparateRenderThreadWhenPossible` flag that allows offloading GPU commands encoding to the separate thread and improving performance [#1694](https://github.com/JetBrains/compose-multiplatform-core/pull/1694) +- Initial Drag&Drop support [#1690](https://github.com/JetBrains/compose-multiplatform-core/pull/1690) +- Align Compose components semantics with UIKit views accessibility [#1719](https://github.com/JetBrains/compose-multiplatform-core/pull/1719) +- Accessibility navigation uses safe area to calculate when focused rect is out of bounds [#1745](https://github.com/JetBrains/compose-multiplatform-core/pull/1745) +- Support VoiceControl on iOS [#1780](https://github.com/JetBrains/compose-multiplatform-core/pull/1780) +- `AccessibilitySyncOptions` removed. The accessibility tree is built on demand [#1780](https://github.com/JetBrains/compose-multiplatform-core/pull/1780) +- Calculate the order and location of semantic elements in the same way as it's done on Android [#1809](https://github.com/JetBrains/compose-multiplatform-core/pull/1809) +- Support `UIAccessibilityContainerTypeSemanticGroup` for traversal groups [#1809](https://github.com/JetBrains/compose-multiplatform-core/pull/1809) +- Compose works correctly with nested `UIScrollView`s, as well as within `UIScrollView`s [#1818](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- Added the ability to close modal Compose view controllers (with non-scrollable content on them) with a swipe gesture [#1818](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- Support new haptic feedback types [#1831](https://github.com/JetBrains/compose-multiplatform-core/pull/1831) +- Support for focusable nodes when Full Keyboard Access is enabled on iOS [#1825](https://github.com/JetBrains/compose-multiplatform-core/pull/1825) +- Floating cursor support for `BasicTextField(TextFieldState)` [#1598](https://github.com/JetBrains/compose-multiplatform-core/pull/1598) +- Add support for Bold Text accessibility setting [#1846](https://github.com/JetBrains/compose-multiplatform-core/pull/1846) +- Bhojpuri language support for VoiceOver [#1838](https://github.com/JetBrains/compose-multiplatform-core/pull/1838) +- Add support for Reduce Motion accessibility setting [#1847](https://github.com/JetBrains/compose-multiplatform-core/pull/1847) +- Default `androidx.navigation` transition animation on iOS is as close as possible to the iOS back gesture [#1861](https://github.com/JetBrains/compose-multiplatform-core/pull/1861) +- Support accessibility text input [#1875](https://github.com/JetBrains/compose-multiplatform-core/pull/1875) +- Support text input for UI Tests [#1875](https://github.com/JetBrains/compose-multiplatform-core/pull/1875) +- Accessibility: added ability to traverse nodes within a scrollable container [#1837](https://github.com/JetBrains/compose-multiplatform-core/pull/1837) +- Add ability to recreate Composable after `ComposeUIViewController` leaves view controller hierarchy [#1877](https://github.com/JetBrains/compose-multiplatform-core/pull/1877) +- Support trackpad pointer input [#1893](https://github.com/JetBrains/compose-multiplatform-core/pull/1893) +- Save Composable state when view controller leaves view controller hierarchy [#1904](https://github.com/JetBrains/compose-multiplatform-core/pull/1904) +- Support text input when Full Keyboard Access is enabled [#1917](https://github.com/JetBrains/compose-multiplatform-core/pull/1917) +- Added native behavior for tap, long tap and multiple tap to `BasicTextField(TextFieldState)` [#1923](https://github.com/JetBrains/compose-multiplatform-core/pull/1923) +- Magnifier support for `BasicTextField(TextFieldState)` [#1926](https://github.com/JetBrains/compose-multiplatform-core/pull/1926) + +### Desktop + +- Improved performance on Windows by replacing the native code compiler to Clang (in 1.8.0 comparing to 1.7.3) [#1863](https://github.com/JetBrains/compose-multiplatform-core/pull/1863) + - Software rendering (used on some VMs) FPS is **6.397x higher** on average + - Reducing the size of a packaged application. Example https://kmp.jetbrains.com: + - the installer size is changed from 44.9 Mb to 44.1 Mb + - the installed size is changed from 107 Mb to 103 Mb +- The default ProGuard version is set to 7.7.0 [#5279](https://github.com/JetBrains/compose-multiplatform/pull/5279) + - If there are any new errors in the release build, update [the ProGuard rules](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-native-distribution.html#minification-and-obfuscation) + - A usual workaround is to add `-keep class` for the associated with error class in "Location:" + - If the error contains `androidx.` package, it might a Compose bug, please report in https://youtrack.jetbrains.com/issues/CMP. The `-keep class` workaround should also work in this case + +### Web + +- Adds experimental `PointerIcon.fromKeyword` function to change the browser cursor [#1704](https://github.com/JetBrains/compose-multiplatform-core/pull/1704) + +### Resources + +- Add new API to preload and cache font and image resources on web targets: `preloadFont`, `preloadImageBitmap`, `preloadImageVector` [#5159](https://github.com/JetBrains/compose-multiplatform/pull/5159) + +### Gradle Plugin + +- Support compose resources in `androidLibrary` target [#5157](https://github.com/JetBrains/compose-multiplatform/pull/5157) + +### Navigation + +- Basic support a navigation by deep links [#1610](https://github.com/JetBrains/compose-multiplatform-core/pull/1610) +- Commonize `navController.navigate(Uri)` method [#1617](https://github.com/JetBrains/compose-multiplatform-core/pull/1617) +- Implemented non-android `navController.handleDeepLink(NavDeepLinkRequest)` method [#1617](https://github.com/JetBrains/compose-multiplatform-core/pull/1617) +- New API to configure browser navigation buttons and the address line [#1621](https://github.com/JetBrains/compose-multiplatform-core/pull/1621) +- Navigation via a browser address field [#1640](https://github.com/JetBrains/compose-multiplatform-core/pull/1640) + +## Fixes + +### Tests + +- Clear the canvas before rendering each frame in tests, to avoid drawing different frames on top of each other, resulting in incorrect images being returned by `captureToImage` [#1820](https://github.com/JetBrains/compose-multiplatform-core/pull/1820) + +### Multiple Platforms + +- Fix changing `FontRenderingSettings` is not reflected until composition restarts [#1595](https://github.com/JetBrains/compose-multiplatform-core/pull/1595) +- The overhead for running an empty test has been significantly reduced [#1615](https://github.com/JetBrains/compose-multiplatform-core/pull/1615) +- Fix missing implementation on non-Android platforms for `ModalDrawerSheet` overload with `DrawerState` argument [#1763](https://github.com/JetBrains/compose-multiplatform-core/pull/1763) +- Fix light position for during shadow rendering to match [the Material specification](https://m2.material.io/design/environment/light-shadows.html#light) and Android behaviour [#1754](https://github.com/JetBrains/compose-multiplatform-core/pull/1754) +- Fix light source position for shadow rendering to match [the Material specification](https://m2.material.io/design/environment/light-shadows.html#light) and Android behavior [#1784](https://github.com/JetBrains/compose-multiplatform-core/pull/1784) +- Fix inconsistency between Android and Desktop in `placeWithLayer` scale application: offset is not scaled now (Android behavior) [#1784](https://github.com/JetBrains/compose-multiplatform-core/pull/1784) +- Fixed the output of `TextField(TextFieldState)` (aka `BasicTextField2`) transformations incorrectly leeching into the untransformed text itself, when input method is used (Chinese and other languages with multi-keystroke character input) [#1833](https://github.com/JetBrains/compose-multiplatform-core/pull/1833) +- Fix possible `IllegalArgumentException: Object already closed` during `GraphicsLayer.record` [#1839](https://github.com/JetBrains/compose-multiplatform-core/pull/1839) +- Compose runtime module now exposes its dependency on Kotlin Coroutines API (changed from `implementation()` to `api()`) [#1883](https://github.com/JetBrains/compose-multiplatform-core/pull/1883) +- Correctly set `ScrollState.viewportSize` for (Basic)`TextField(TextFieldState)` [#1896](https://github.com/JetBrains/compose-multiplatform-core/pull/1896) +- Changes pressing backspace in a textfield to delete diacritic marks, if any, rather than the entire character [#1869](https://github.com/JetBrains/compose-multiplatform-core/pull/1869) +- Fixed `IllegalArgumentException: maxWidth(value) must be >= than minWidth(0)` crashes when a `TextField` with `trailingIcon` is too narrow [#1936](https://github.com/JetBrains/compose-multiplatform-core/pull/1936) +- Fixed crash when dragging selection in `TextField(TextFieldState)` while also editing the text, such as by pressing Backspace [#1969](https://github.com/JetBrains/compose-multiplatform-core/pull/1969) +- Fix `InterceptPlatformTextInput` for the legacy TextField [#1974](https://github.com/JetBrains/compose-multiplatform-core/pull/1974) + +### iOS + +- Deprecate `defaultUIKitMain()` [#1585](https://github.com/JetBrains/compose-multiplatform-core/pull/1585) +- Fixed visibility of `androidx.compose.material3.internal.formatWithSkeleton` that was accidently marked as public [#1609](https://github.com/JetBrains/compose-multiplatform-core/pull/1609) +- Fix a bug where the accessibility tree did not reload when VoiceOver was enabled [#1656](https://github.com/JetBrains/compose-multiplatform-core/pull/1656) +- Fix Display Cutout Padding when rotating the device [#1645](https://github.com/JetBrains/compose-multiplatform-core/pull/1645) +- Fixes an interruption while typing characters on a Chinese keyboard [#1692](https://github.com/JetBrains/compose-multiplatform-core/pull/1692) +- Accessibility reading of content when obscured by layers such as pop-ups and dialogs [#1698](https://github.com/JetBrains/compose-multiplatform-core/pull/1698) +- Enables Cupertino Overscroll by default for scrollable components [#1753](https://github.com/JetBrains/compose-multiplatform-core/pull/1753) +- Experimental method `optOutOfCupertinoOverscroll()` removed [#1753](https://github.com/JetBrains/compose-multiplatform-core/pull/1753) +- Fix iOS Accessibility element tree construction within merged nodes [#1750](https://github.com/JetBrains/compose-multiplatform-core/pull/1750) +- Performance issues when iOS screen reader is active fixed [#1780](https://github.com/JetBrains/compose-multiplatform-core/pull/1780) +- Fixed issues where the interactive pop gesture would stop working [#1818](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- Fixes an issue where it's not possible to close the `UIMenu` that appears over the Compose content [#1818](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- Fix touches tracking for multitouch gestures [#1827](https://github.com/JetBrains/compose-multiplatform-core/pull/1827) +- Fixed a bug where touches could be handled by back gesture and composable content at the same time [#1879](https://github.com/JetBrains/compose-multiplatform-core/pull/1879) +- Removed permissions alert when pasting text into a `TextField` [#1894](https://github.com/JetBrains/compose-multiplatform-core/pull/1894) +- Fix crash when removing popup during scene size change animation [#1878](https://github.com/JetBrains/compose-multiplatform-core/pull/1878) +- Fix accessibility elements rects when `ComposeUIViewController` is shifted [#1899](https://github.com/JetBrains/compose-multiplatform-core/pull/1899) +- Fixed an issue where it wasn't possible to open a popup using pointer input devices [#1906](https://github.com/JetBrains/compose-multiplatform-core/pull/1906) +- Fix popup safe drawing padding when `usePlatformInsets = true` [#1920](https://github.com/JetBrains/compose-multiplatform-core/pull/1920) +- Fix an issue where Compose would retain the old state when its view was reappeared [#1921](https://github.com/JetBrains/compose-multiplatform-core/pull/1921) +- Fix Text Menu opening after Select All action tap [#1930](https://github.com/JetBrains/compose-multiplatform-core/pull/1930) +- Fix freeze where scrolling was cancelled but the overscroll effect was not completed [#1928](https://github.com/JetBrains/compose-multiplatform-core/pull/1928) +- Fix overscroll animation freeze when pull-to-refresh is triggered [#1932](https://github.com/JetBrains/compose-multiplatform-core/pull/1932) +- Fix issue where root compose canvas does not resize without animation [#1934](https://github.com/JetBrains/compose-multiplatform-core/pull/1934) +- Fix issue where dialog layer may not be shown [#1934](https://github.com/JetBrains/compose-multiplatform-core/pull/1934) +- Remove focus on accessibility nodes with clearing semantics [#1933](https://github.com/JetBrains/compose-multiplatform-core/pull/1933) +- Fix adding extra `MetalView` when Compose controller re-enters view hierarchy [#1938](https://github.com/JetBrains/compose-multiplatform-core/pull/1938) +- Fix the first layer appearance freeze [#1948](https://github.com/JetBrains/compose-multiplatform-core/pull/1948) +- Fixed text editing behavior (typing / deleting) in `BasicTextField(TextFieldState)` with applied `OutputTransformation` [#1953](https://github.com/JetBrains/compose-multiplatform-core/pull/1953) +- Fixed incorrect undo behavior for text deletion in `BasicTextField(TextFieldState)` [#1956](https://github.com/JetBrains/compose-multiplatform-core/pull/1956) +- Fix composite input in `BasicTextField(TextFieldState)` [#1984](https://github.com/JetBrains/compose-multiplatform-core/pull/1984) +- Fixes an issue where the accessibility engine could leave a scrollable list without reading it to the end [#1986](https://github.com/JetBrains/compose-multiplatform-core/pull/1986) +- Fix Accessibility navigation through traversal groups in Container mode [#1987](https://github.com/JetBrains/compose-multiplatform-core/pull/1987) +- Fix focus for items within dialogs when full keyboard access is enabled [#1990](https://github.com/JetBrains/compose-multiplatform-core/pull/1990) +- Fix gesture handling for third party interop views [#1993](https://github.com/JetBrains/compose-multiplatform-core/pull/1993) +- Fix the keyboard reappearing after it was dismissed via `LocalSoftwareKeyboardController` in `BasicTextField(TextFieldState)` [#1974](https://github.com/JetBrains/compose-multiplatform-core/pull/1974) +- Fix overscroll touches assertion when back handler is involved [#2017](https://github.com/JetBrains/compose-multiplatform-core/pull/2017) +- Fixed incorrect selection and navigation by arrow keys from a hardware keyboard in `BasicTextField(TextFieldState)` [#2018](https://github.com/JetBrains/compose-multiplatform-core/pull/2018) +- Fix back gesture after modal popup appearance [#2019](https://github.com/JetBrains/compose-multiplatform-core/pull/2019) +- Fixed the behavior of a context menu in the text fields inside modal screens [#2028](https://github.com/JetBrains/compose-multiplatform-core/pull/2028) + +### Desktop + +- Fix for excessive garbage generation from redrawing on Swing [#1657](https://github.com/JetBrains/compose-multiplatform-core/pull/1657) +- Fix drag-and-drop when the list of supported actions doesn't include `Move` [#1683](https://github.com/JetBrains/compose-multiplatform-core/pull/1683) +- Fix accessibility focus when using `compose.swing.render.on.graphics=true` [#1688](https://github.com/JetBrains/compose-multiplatform-core/pull/1688) +- Fix "Context menu on desktop shows incorrect items after the second showing" [#1693](https://github.com/JetBrains/compose-multiplatform-core/pull/1693) +- Fixed rare crash when using a scrollbar for lazy grid with animated enter/exit items [#1707](https://github.com/JetBrains/compose-multiplatform-core/pull/1707) +- Fix possible exception during `Dialog`/`Popup` creation in case of `compose.layers.type=COMPONENT` and pointing `windowContainer` to `ComposePanel` itself [#1747](https://github.com/JetBrains/compose-multiplatform-core/pull/1747) +- Fix interop initial z-order placement on Windows with `compose.interop.blending` flag (1.7.0 regression) [#1774](https://github.com/JetBrains/compose-multiplatform-core/pull/1774) +- Fixed the background of transparent windows/dialogs on Windows becoming opaque as the window is moved [#1772](https://github.com/JetBrains/compose-multiplatform-core/pull/1772) +- Elements marked with `Modifier.semantics { hideFromAccessibility() }` should now be correctly hidden from a11y [#1798](https://github.com/JetBrains/compose-multiplatform-core/pull/1798) +- Fixed the positioning of the IME candidate popup for `TextField(TextFieldState)` (aka `BasicTextField2`) [#1794](https://github.com/JetBrains/compose-multiplatform-core/pull/1794) +- Fixed input of diacritics via long-press on macOS in `TextField(TextFieldState)` (aka `BasicTextField2`) [#1810](https://github.com/JetBrains/compose-multiplatform-core/pull/1810) +- Radio buttons and any other elements using `Modifier.selectable` with `Role.RadioButton` will have their state reported to accessibility via `AccessibleValue.getCurrentAccessibleValue()` and as `AccessibleState.CHECKED` in `getAccessibleStateSet()` [#1797](https://github.com/JetBrains/compose-multiplatform-core/pull/1797) +- [Windows] Fixed ordering of `SwingPanel`s when using `compose.interop.blending=true` [#1901](https://github.com/JetBrains/compose-multiplatform-core/pull/1901) +- [macOS] Fix, for some cases, the background flashing when closing a window/dialog. This can still happen if an animation is running when the window or dialog is closing [#1911](https://github.com/JetBrains/compose-multiplatform-core/pull/1911) +- Fix `onRenderApiChanged` in `ComposeWindow` and `ComposeDialog` not working when the renderer changes due to fallback, rather than explicit change [#1911](https://github.com/JetBrains/compose-multiplatform-core/pull/1911) +- [Swing Interop] Fixed `compose.interop.blending=true` completely breaking Swing interop on Windows when Direct3D is unsupported. Note that interop blending is still supported on Windows only if Direct3D is available [#1913](https://github.com/JetBrains/compose-multiplatform-core/pull/1913) +- Fixed only the first character being temporarily shown in a `SecureTextField` [#1853](https://github.com/JetBrains/compose-multiplatform-core/pull/1853) +- Changes in `TextFieldState` are now correctly reported to the transformations when inputting composite characters (e.g. ㅀ), instead of the whole text being replaced on each new character [#1853](https://github.com/JetBrains/compose-multiplatform-core/pull/1853) +- Fixed a potential deadlock when calling `Snapshot.sendApplyNotifications` from a thread other than the event dispatching thread [#1955](https://github.com/JetBrains/compose-multiplatform-core/pull/1955) +- Fix missing window shadows on macOS in case of usage `compose.interop.blending` flag [#1908](https://github.com/JetBrains/compose-multiplatform-core/pull/1908) +- Fix `Execution failed for task ':composeApp:proguardReleaseJars'` when `material3` is included in the project [#5261](https://github.com/JetBrains/compose-multiplatform/pull/5261) + +### Web + +- The `BasicTextField` handles browser copy/cut/paste events correctly now. Previously, they were ignored [#1795](https://github.com/JetBrains/compose-multiplatform-core/pull/1795) +- Mobile browsers: the virtual keyboard is shown when the `TextField` is clicked/receives focus [#1865](https://github.com/JetBrains/compose-multiplatform-core/pull/1865) +- Fix text selection with mouse in `TextField` [#1876](https://github.com/JetBrains/compose-multiplatform-core/pull/1876) +- Fix horizontal scroll when using touchpad and pressing Shift [#1909](https://github.com/JetBrains/compose-multiplatform-core/pull/1909) +- Prevent app from crashing when running in an insecure context where Web Clipboard API is unavailable [#1931](https://github.com/JetBrains/compose-multiplatform-core/pull/1931) +- Replace tab characters with spaces in `Text` and `TextField`s, to avoid them being drawn as tofu [#1943](https://github.com/JetBrains/compose-multiplatform-core/pull/1943) +- Fix touch events processing. Now `Modifier.detectTransformGestures` will allow to handle zoom and rotation gestures [#1942](https://github.com/JetBrains/compose-multiplatform-core/pull/1942) + +### Resources + +- Read `android:autoMirrored="true"` property and pass it to ImageVector builder [#5140](https://github.com/JetBrains/compose-multiplatform/pull/5140) +- Fix string resource's regex for placeholders to correctly match multi-digit placeholders [#5187](https://github.com/JetBrains/compose-multiplatform/pull/5187) + +### Navigation + +- Fixed `No destination with ID 0 is on the NavController's back stack` crash on iOS [#1596](https://github.com/JetBrains/compose-multiplatform-core/pull/1596) +- Fix incorrect navigation up on the root screen for non-android targets [#1736](https://github.com/JetBrains/compose-multiplatform-core/pull/1736) +- Fixed browser navigation integration when route paths contain special symbols [#1738](https://github.com/JetBrains/compose-multiplatform-core/pull/1738) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0) + - [UI 1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0) + - [Foundation 1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0) + - [Material 1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-beta01`. Based on [Jetpack Lifecycle 2.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-beta01) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta01`. Based on [Jetpack Navigation 2.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0-beta01) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0`. Based on [Jetpack Material3 Adaptive 1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0) + +--- + +# 1.8.0-rc01 (April 2025) + +_Changes since 1.8.0-beta02_ + +## Highlights + +### Web + +- Improves text input support in Safari on mobile and desktop [#1941](https://github.com/JetBrains/compose-multiplatform-core/pull/1941) +- Correct certain text input scenarios on Web targets [#1941](https://github.com/JetBrains/compose-multiplatform-core/pull/1941) +New `WebTextInputService` seeks to achieve the following goals: +1. Add support to Safari (which happens to have its own flow of input events that are inconsistent with other browsers) +2. Correct behavior for composition and accent dialogue scenarios +3. Introduce some changes that we will use for improving accessibility + +## Breaking Changes + +### Multiple Platforms + +- A custom implementation for deprecated `LocalTextInputService` is no longer supported [#1974](https://github.com/JetBrains/compose-multiplatform-core/pull/1974) + +## Migration Notes + +### Multiple Platforms + +- material/material3 libraries no longer add a dependency to `material-icons-core` so if your project relied on that, you will have to explicitly add that dependency in your `build.gradle[.kts]` files: [#2025](https://github.com/JetBrains/compose-multiplatform-core/pull/2025), [#2030](https://github.com/JetBrains/compose-multiplatform-core/pull/2030) +``` +implementation("org.jetbrains.compose.material:material-icons-core:1.7.3") +``` + +### Gradle Plugin + +- The Compose Gradle Plugin requires Kotlin Gradle Plugin 2.+ version now. Old `org.jetbrains.compose.compiler` is not supported anymore and the API to configure it was removed [#5293](https://github.com/JetBrains/compose-multiplatform/pull/5293) + +### Lifecycle + +- _(prerelease fix)_ Remove deprecated `AbstractSavedStateViewModelFactory` from common code [#1976](https://github.com/JetBrains/compose-multiplatform-core/pull/1976) + +## Features + +### Desktop + +- The default ProGuard version is set to 7.7.0 [#5279](https://github.com/JetBrains/compose-multiplatform/pull/5279) + - If there are any new errors in the release build, update [the ProGuard rules](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-native-distribution.html#minification-and-obfuscation) + - A usual workaround is to add `-keep class` for the associated with error class in "Location:" + - If the error contains `androidx.` package, it might a Compose bug, please report in https://youtrack.jetbrains.com/issues/CMP. The `-keep class` workaround should also work in this case +- _(prerelease fix)_ `./gradlew runRelease` doesn't crash with `java.lang.VerifyError` [#5279](https://github.com/JetBrains/compose-multiplatform/pull/5279) + +## Fixes + +### Multiple Platforms + +- _(prerelease fix)_ `org.jetbrains.compose.material3:material3-adaptive-navigation-suite`, `org.jetbrains.compose.material3:material3-window-size-class` are reverted to the 1.3.1 state. They will be promoted to 1.4 in Compose Multiplatform 1.9 with material3 [#1995](https://github.com/JetBrains/compose-multiplatform-core/pull/1995) +- Fix `InterceptPlatformTextInput` for the legacy TextField [#1974](https://github.com/JetBrains/compose-multiplatform-core/pull/1974) + +### iOS + +- _(prerelease fix)_ Fix Text Menu placement for `TextField(TextFieldState)` [#1972](https://github.com/JetBrains/compose-multiplatform-core/pull/1972) +- _(prerelease fix)_ Fix Full Keyboard Access focus when Compose is located inside SwiftUI view [#1975](https://github.com/JetBrains/compose-multiplatform-core/pull/1975) +- _(prerelease fix)_ Fix an issue where traversal group nodes with test tag are missing in the accessibility tree [#1977](https://github.com/JetBrains/compose-multiplatform-core/pull/1977) +- Fix composite input in `BasicTextField(TextFieldState)` [#1984](https://github.com/JetBrains/compose-multiplatform-core/pull/1984) +- Fixes an issue where the accessibility engine could leave a scrollable list without reading it to the end [#1986](https://github.com/JetBrains/compose-multiplatform-core/pull/1986) +- Fix Accessibility navigation through traversal groups in Container mode [#1987](https://github.com/JetBrains/compose-multiplatform-core/pull/1987) +- Fix focus for items within dialogs when full keyboard access is enabled [#1990](https://github.com/JetBrains/compose-multiplatform-core/pull/1990) +- _(prerelease fix)_ Fixed a white scene background on iOS when a dark theme is activated [#1989](https://github.com/JetBrains/compose-multiplatform-core/pull/1989) +- Fix gesture handling for third party interop views [#1993](https://github.com/JetBrains/compose-multiplatform-core/pull/1993) +- Fix overscroll touches assertion when back handler is involved [#2017](https://github.com/JetBrains/compose-multiplatform-core/pull/2017) +- Fixed incorrect selection and navigation by arrow keys from a hardware keyboard in `BasicTextField(TextFieldState)` [#2018](https://github.com/JetBrains/compose-multiplatform-core/pull/2018) +- Fix back gesture after modal popup appearance [#2019](https://github.com/JetBrains/compose-multiplatform-core/pull/2019) +- Fixed the behavior of a context menu in the text fields inside modal screens [#2028](https://github.com/JetBrains/compose-multiplatform-core/pull/2028) +- _(prerelease fix)_ Change runtime experimental annotations to proper "ui" experimental annotations for a few fields inside `ComposeUIViewControllerConfiguration` [#2034](https://github.com/JetBrains/compose-multiplatform-core/pull/2034) +- _(prerelease fix)_ Fix back gesture handling after modal view controller dismissal [#2048](https://github.com/JetBrains/compose-multiplatform-core/pull/2048) +- _(prerelease fix)_ Fix overscroll when RTL is enabled [#2054](https://github.com/JetBrains/compose-multiplatform-core/pull/2054) + +### Desktop + +- _(prerelease fix)_ [macOS] Fixed accented character input via long press [#1980](https://github.com/JetBrains/compose-multiplatform-core/pull/1980) + +### Navigation + +- _(prerelease fix)_ Fix custom navigation animation in nested graphs in non-android targets [#1982](https://github.com/JetBrains/compose-multiplatform-core/pull/1982) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-rc01`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-rc03](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-rc03) + - [UI 1.8.0-rc03](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-rc03) + - [Foundation 1.8.0-rc03](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-rc03) + - [Material 1.8.0-rc03](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-rc03) + - [Material3 1.3.2](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha07`. Based on [Jetpack Lifecycle 2.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-beta01) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha17`. Based on [Jetpack Navigation 2.9.0-beta01](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0-beta01) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-rc01`. Based on [Jetpack Material3 Adaptive 1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0) + +--- + +# 1.8.0-beta02 (April 2025) + +_Changes since 1.8.0-beta01_ + +## Features + +### iOS + +- Support text input when Full Keyboard Access is enabled [#1917](https://github.com/JetBrains/compose-multiplatform-core/pull/1917) +- Added native behavior for tap, long tap and multiple tap to `BasicTextField(TextFieldState)` [#1923](https://github.com/JetBrains/compose-multiplatform-core/pull/1923) +- Magnifier support for `BasicTextField(TextFieldState)` [#1926](https://github.com/JetBrains/compose-multiplatform-core/pull/1926) + +## Fixes + +### Multiple Platforms + +- Fixed `IllegalArgumentException: maxWidth(value) must be >= than minWidth(0)` crashes when a `TextField` with `trailingIcon` is too narrow [#1936](https://github.com/JetBrains/compose-multiplatform-core/pull/1936) +- Fixed crash when dragging selection in `TextField(TextFieldState)` while also editing the text, such as by pressing Backspace [#1969](https://github.com/JetBrains/compose-multiplatform-core/pull/1969) + +### iOS + +- Fix Text Menu opening after Select All action tap [#1930](https://github.com/JetBrains/compose-multiplatform-core/pull/1930) +- Fix freeze where scrolling was cancelled but the overscroll effect was not completed [#1928](https://github.com/JetBrains/compose-multiplatform-core/pull/1928) +- Fix overscroll animation freeze when pull-to-refresh is triggered [#1932](https://github.com/JetBrains/compose-multiplatform-core/pull/1932) +- Fix issue where root compose canvas does not resize without animation [#1934](https://github.com/JetBrains/compose-multiplatform-core/pull/1934) +- Fix issue where dialog layer may not be shown [#1934](https://github.com/JetBrains/compose-multiplatform-core/pull/1934) +- Remove focus on accessibility nodes with clearing semantics [#1933](https://github.com/JetBrains/compose-multiplatform-core/pull/1933) +- Fix adding extra `MetalView` when Compose controller re-enters view hierarchy [#1938](https://github.com/JetBrains/compose-multiplatform-core/pull/1938) +- _(prerelease fix)_ Fix deletion of certain RTL or diacritics characters [#1952](https://github.com/JetBrains/compose-multiplatform-core/pull/1952) +- Fix the first layer appearance freeze [#1948](https://github.com/JetBrains/compose-multiplatform-core/pull/1948) +- Fixed text editing behavior (typing / deleting) in `BasicTextField(TextFieldState)` with applied `OutputTransformation` [#1953](https://github.com/JetBrains/compose-multiplatform-core/pull/1953) +- Fixed incorrect undo behavior for text deletion in `BasicTextField(TextFieldState)` [#1956](https://github.com/JetBrains/compose-multiplatform-core/pull/1956) +- _(prerelease fix)_ Fix Text Menu popup placement [#1971](https://github.com/JetBrains/compose-multiplatform-core/pull/1971) + +### Desktop + +- Fixed only the first character being temporarily shown in a `SecureTextField` [#1853](https://github.com/JetBrains/compose-multiplatform-core/pull/1853) +- Changes in `TextFieldState` are now correctly reported to the transformations when inputting composite characters (e.g. ㅀ), instead of the whole text being replaced on each new character [#1853](https://github.com/JetBrains/compose-multiplatform-core/pull/1853) +- Fixed a potential deadlock when calling `Snapshot.sendApplyNotifications` from a thread other than the event dispatching thread [#1955](https://github.com/JetBrains/compose-multiplatform-core/pull/1955) +- Fix missing window shadows on macOS in case of usage `compose.interop.blending` flag [#1908](https://github.com/JetBrains/compose-multiplatform-core/pull/1908) +- Fix `Execution failed for task ':composeApp:proguardReleaseJars'` when `material3` is included in the project [#5261](https://github.com/JetBrains/compose-multiplatform/pull/5261) + +### Web + +- Fix horizontal scroll when using touchpad and pressing Shift [#1909](https://github.com/JetBrains/compose-multiplatform-core/pull/1909) +- Prevent app from crashing when running in an insecure context where Web Clipboard API is unavailable [#1931](https://github.com/JetBrains/compose-multiplatform-core/pull/1931) +- Replace tab characters with spaces in `Text` and `TextField`s, to avoid them being drawn as tofu [#1943](https://github.com/JetBrains/compose-multiplatform-core/pull/1943) +- Fix touch events processing. Now `Modifier.detectTransformGestures` will allow to handle zoom and rotation gestures [#1942](https://github.com/JetBrains/compose-multiplatform-core/pull/1942) + +### Navigation + +- _(prerelease fix)_ Fixed navigation on JS targets [#1939](https://github.com/JetBrains/compose-multiplatform-core/pull/1939) +- _(prerelease fix)_ Encode only parameters in web navigation routes to have nicer UX [#1940](https://github.com/JetBrains/compose-multiplatform-core/pull/1940) +- _(prerelease fix)_ Add a flag to disable iOS back gesture detection [#1951](https://github.com/JetBrains/compose-multiplatform-core/pull/1951) +- _(prerelease fix)_ Fixed default pop `NavHost` animations if enter/exit animations are customized only [#1963](https://github.com/JetBrains/compose-multiplatform-core/pull/1963) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-beta02`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-rc02](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-rc02) + - [UI 1.8.0-rc02](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-rc02) + - [Foundation 1.8.0-rc02](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-rc02) + - [Material 1.8.0-rc02](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-rc02) + - [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha06`. Based on [Jetpack Lifecycle 2.9.0-alpha12](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-alpha12) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha16`. Based on [Jetpack Navigation 2.9.0-alpha08](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0-alpha08) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-beta02`. Based on [Jetpack Material3 Adaptive 1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0) + +--- + +# 1.8.0-beta01 (March 2025) + +_Changes since 1.8.0-alpha04_ + +## Breaking Changes + +### Multiple Platforms + +- Add `@Composable` annotations to the actual `WindowInsets.Companion.*` extensions to match the expected declarations [#1919](https://github.com/JetBrains/compose-multiplatform-core/pull/1919), [#1720](https://github.com/JetBrains/compose-multiplatform-core/pull/1720) + +## Features + +### iOS + +- Add ability to recreate Composable after `ComposeUIViewController` leaves view controller hierarchy [#1877](https://github.com/JetBrains/compose-multiplatform-core/pull/1877) +- Support trackpad pointer input [#1893](https://github.com/JetBrains/compose-multiplatform-core/pull/1893) +- Save Composable state when view controller leaves view controller hierarchy [#1904](https://github.com/JetBrains/compose-multiplatform-core/pull/1904) + +## Fixes + +### iOS + +- Removed permissions alert when pasting text into a `TextField` [#1894](https://github.com/JetBrains/compose-multiplatform-core/pull/1894) +- Fix crash when removing popup during scene size change animation [#1878](https://github.com/JetBrains/compose-multiplatform-core/pull/1878) +- Fix accessibility elements rects when `ComposeUIViewController` is shifted [#1899](https://github.com/JetBrains/compose-multiplatform-core/pull/1899) +- Fixed an issue where it wasn't possible to open a popup using pointer input devices [#1906](https://github.com/JetBrains/compose-multiplatform-core/pull/1906) +- Fix popup safe drawing padding when `usePlatformInsets = true` [#1920](https://github.com/JetBrains/compose-multiplatform-core/pull/1920) +- Fix an issue where Compose would retain the old state when its view was reappeared [#1921](https://github.com/JetBrains/compose-multiplatform-core/pull/1921) +- _(prerelease fix)_ Fix non-interactive UI after interop view tap [#1925](https://github.com/JetBrains/compose-multiplatform-core/pull/1925) + +### Desktop + +- [Windows] Fixed ordering of `SwingPanel`s when using `compose.interop.blending=true` [#1901](https://github.com/JetBrains/compose-multiplatform-core/pull/1901) +- [macOS] Fix, for some cases, the background flashing when closing a window/dialog. This can still happen if an animation is running when the window or dialog is closing [#1911](https://github.com/JetBrains/compose-multiplatform-core/pull/1911) +- Fix `onRenderApiChanged` in `ComposeWindow` and `ComposeDialog` not working when the renderer changes due to fallback, rather than explicit change [#1911](https://github.com/JetBrains/compose-multiplatform-core/pull/1911) +- [Swing Interop] Fixed `compose.interop.blending=true` completely breaking Swing interop on Windows when Direct3D is unsupported. Note that interop blending is still supported on Windows only if Direct3D is available [#1913](https://github.com/JetBrains/compose-multiplatform-core/pull/1913) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-beta01`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-beta02) + - [UI 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-beta02) + - [Foundation 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-beta02) + - [Material 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-beta02) + - [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha05`. Based on [Jetpack Lifecycle 2.9.0-alpha12](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-alpha12) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha15`. Based on [Jetpack Navigation 2.9.0-alpha08](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0-alpha08) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-beta01`. Based on [Jetpack Material3 Adaptive 1.1.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0-beta01) + +--- + +# 1.8.0-alpha04 (March 2025) + +_Changes since 1.8.0-alpha03_ + +## Highlights + +### Desktop + +- Improved performance on Windows by replacing the native code compiler to Clang. See details in https://github.com/JetBrains/skiko/pull/1020#issuecomment-2649433785 [#1863](https://github.com/JetBrains/compose-multiplatform-core/pull/1863) + - DirectX rendering FPS is **17 % higher** + - Software rendering FPS is **73 % higher** + - Skiko binary size is reduced from **16.7 to 12.1 Mb on x64** and from **17.4 to 10.5 Mb on arm64** + - Note that the numbers are measured on one machine and also can differ between Compose 1.7 and Compose 1.8 (will be updated in the stable Release Notes) + +## Known Issues + +### iOS + +- Back gesture may remain stuck in the middle, the fix will be available in the next pre-release version [#1861](https://github.com/JetBrains/compose-multiplatform-core/pull/1861) + +## Breaking Changes + +### Multiple Platforms + +- [Google Maven](https://maven.google.com/) now contains some artifacts for all Kotlin targets including Wasm and JS. Compose Multiplatform now depends on those artifacts and user projects might need to add `google()` repo to `repositories {...}` block if it is not there yet [#1819](https://github.com/JetBrains/compose-multiplatform-core/pull/1819) +- Multiplatform lifecycle was migrated from a internal `core-bundle` module to the androidx SavedState. Libraries that use `org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate` or `org.jetbrains.androidx.savedstate:savedstate` should migrate to the latest version [#1850](https://github.com/JetBrains/compose-multiplatform-core/pull/1850) +- _(prerelease fix)_ Material3 is reverted from Jetpack Compose Material3 `1.4.0-alpha07` to `1.3.1` because 1.4.0 Stable will be released only after Compose Multiplatform 1.8.0. As a workaround to continue using the new API, replace: + ``` + implementation(compose.material3) + ``` + by: + ``` + implementation("org.jetbrains.compose.material3:material3:1.8.0-alpha03") + ``` + Jetpack Compose Material3 1.4.0 will be merged again sometime after the Compose Multiplatform 1.8.0 release [#1868](https://github.com/JetBrains/compose-multiplatform-core/pull/1868) + +## Features + +### iOS + +- Support new haptic feedback types [#1831](https://github.com/JetBrains/compose-multiplatform-core/pull/1831) +- Support for focusable nodes when Full Keyboard Access is enabled on iOS [#1825](https://github.com/JetBrains/compose-multiplatform-core/pull/1825) +- Floating cursor support for `BasicTextField(TextFieldState)` [#1598](https://github.com/JetBrains/compose-multiplatform-core/pull/1598) +- Add support for Bold Text accessibility setting [#1846](https://github.com/JetBrains/compose-multiplatform-core/pull/1846) +- Bhojpuri language support for VoiceOver [#1838](https://github.com/JetBrains/compose-multiplatform-core/pull/1838) +- Add support for Reduce Motion accessibility setting [#1847](https://github.com/JetBrains/compose-multiplatform-core/pull/1847) +- Default `androidx.navigation` transition animation on iOS is as close as possible to the iOS back gesture [#1861](https://github.com/JetBrains/compose-multiplatform-core/pull/1861) +- Support accessibility text input [#1875](https://github.com/JetBrains/compose-multiplatform-core/pull/1875) +- Support text input for UI Tests [#1875](https://github.com/JetBrains/compose-multiplatform-core/pull/1875) +- Accessibility: added ability to traverse nodes within a scrollable container [#1837](https://github.com/JetBrains/compose-multiplatform-core/pull/1837) + +## Fixes + +### Multiple Platforms + +- Fixed the output of `TextField(TextFieldState)` (aka `BasicTextField2`) transformations incorrectly leeching into the untransformed text itself, when input method is used (Chinese and other languages with multi-keystroke character input) [#1833](https://github.com/JetBrains/compose-multiplatform-core/pull/1833) +- Fix possible `IllegalArgumentException: Object already closed` during `GraphicsLayer.record` [#1839](https://github.com/JetBrains/compose-multiplatform-core/pull/1839) +- _(prerelease fix)_ Change an `Esc` button interception from `onPreviewKeyEvent` to `onKeyEvent` in the desktop `BackGestureDispatcher` implementation. It fixes problems when user's code handles the `Esc`-button [#1860](https://github.com/JetBrains/compose-multiplatform-core/pull/1860) +- _(prerelease fix)_ Fix a problem when an `onBack` callback is updated but listener is not [#1860](https://github.com/JetBrains/compose-multiplatform-core/pull/1860) +- _(prerelease fix)_ Fix memory leak in some cases of re-usage internal layout nodes [#1873](https://github.com/JetBrains/compose-multiplatform-core/pull/1873) +- Compose runtime module now exposes its dependency on Kotlin Coroutines API (changed from `implementation()` to `api()`) [#1883](https://github.com/JetBrains/compose-multiplatform-core/pull/1883) +- Correctly set `ScrollState.viewportSize` for (Basic)`TextField(TextFieldState)` [#1896](https://github.com/JetBrains/compose-multiplatform-core/pull/1896) + +### iOS + +- _(prerelease fix)_ Fixed issue where cross-directional scrolling could intercept and cancel each other [#1851](https://github.com/JetBrains/compose-multiplatform-core/pull/1851) +- Fixed a bug where touches could be handled by back gesture and composable content at the same time [#1879](https://github.com/JetBrains/compose-multiplatform-core/pull/1879) + +### Desktop + +- _(prerelease fix)_ Restore compatibility with Ubuntu 20.04 [#1870](https://github.com/JetBrains/compose-multiplatform-core/pull/1870) +- _(prerelease fix)_ Fix "Could not resolve version conflict" in non-Gradle projects [#1872](https://github.com/JetBrains/compose-multiplatform-core/pull/1872) + +### Web + +- Mobile browsers: the virtual keyboard is shown when the TextField is clicked/focues [#1865](https://github.com/JetBrains/compose-multiplatform-core/pull/1865) +- Fix text selection with mouse in TextField [#1876](https://github.com/JetBrains/compose-multiplatform-core/pull/1876) + +### Navigation + +- _(prerelease fix)_ Fix a desktop back navigation when Esc button clicked [#1890](https://github.com/JetBrains/compose-multiplatform-core/pull/1890) +- _(prerelease fix)_ Fix an iOS back navigation after a swipe on disallowed edge [#1890](https://github.com/JetBrains/compose-multiplatform-core/pull/1890) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-alpha04`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-beta02) + - [UI 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-beta02) + - [Foundation 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-beta02) + - [Material 1.8.0-beta02](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-beta02) + - [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha04`. Based on [Jetpack Lifecycle 2.9.0-alpha08](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-alpha08) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-alpha14`. Based on [Jetpack Navigation 2.9.0-alpha07](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0-alpha07) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-alpha04`. Based on [Jetpack Material3 Adaptive 1.1.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0-beta01) + +--- + +# 1.8.0-alpha03 (February 2025) + +_Changes since 1.8.0-alpha02_ + +## Highlights + +### Multiple Platforms + +- [Compose Multiplatform codebase is fully migrated to K2](https://github.com/JetBrains/compose-multiplatform-core/pull/1778). Please note that native and web klibs can be consumed only with Kotlin 2.1.0 or newer. Also, due to underlying changes in the compiler plugin, it's better to recompile libraries against the new version. Please let us know if you find any compatibility issues during this migration +- [Implement multiplatform `BackHandler` and `PredictiveBackHandler`](https://github.com/JetBrains/compose-multiplatform-core/pull/1771). And use them in material3 widgets and androidx-navigation library + +## Breaking Changes + +### Multiple Platforms + +- [IdlingResource](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource) interface was moved from commonMain to android and desktop source sets. The related experimental methods of [ComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest) were moved too. [They are not available for Web and iOS anymore](https://github.com/JetBrains/compose-multiplatform-core/pull/1822). Consider using [waitUntil function](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#waitUntil(kotlin.String,kotlin.Long,kotlin.Function0)) as an alternative. Note: it's a breaking change only for Web and iOS, but not for Desktop and Android + +### iOS + +- [Experimental classes `CupertinoScrollDecayAnimationSpec` and `CupertinoOverscrollEffect` are removed from public API](https://github.com/JetBrains/compose-multiplatform-core/pull/1806) + +## Features + +### Multiple Platforms + +- [Update skia to m132](https://github.com/JetBrains/compose-multiplatform-core/pull/1823) +- [Adopt a new `Clipboard` interface with suspend functions, which work correctly on all targets including Web](https://github.com/JetBrains/compose-multiplatform-core/pull/1796). The `ClipboardManager` was deprecated because it was not possible to correctly implement it for Web + +### iOS + +- [Support VoiceControl on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1780) +- [`AccessibilitySyncOptions` removed](https://github.com/JetBrains/compose-multiplatform-core/pull/1780). The accessibility tree is built on demand +- [Calculate the order and location of semantic elements in the same way as it's done on Android](https://github.com/JetBrains/compose-multiplatform-core/pull/1809) +- [Support `UIAccessibilityContainerTypeSemanticGroup` for traversal groups](https://github.com/JetBrains/compose-multiplatform-core/pull/1809) +- [Compose works correctly with nested `UIScrollView`s, as well as within `UIScrollView`s](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- [Added the ability to close modal Compose view controllers](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) (with non-scrollable content on them) with a swipe gesture + +## Fixes + + +### Multiple Platforms + +- [Fix light source position for shadow rendering to match the Material specification and Android behavior](https://github.com/JetBrains/compose-multiplatform-core/pull/1784) +- [Fix inconsistency between Android and Desktop in `placeWithLayer` scale application: offset is not scaled now](https://github.com/JetBrains/compose-multiplatform-core/pull/1784) (Android behavior) +- [Clear the canvas before rendering each frame in tests, to avoid drawing different frames on top of each other, resulting in incorrect images being returned by `captureToImage`](https://github.com/JetBrains/compose-multiplatform-core/pull/1820) + +### iOS + +- [Performance issues when iOS screen reader is active fixed](https://github.com/JetBrains/compose-multiplatform-core/pull/1780) +- [Fixed issues where the interactive pop gesture would stop working](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- [Fixes an issue where it's not possible to close the `UIMenu` that appears over the Compose content](https://github.com/JetBrains/compose-multiplatform-core/pull/1818) +- [Fix touches tracking for multitouch gestures](https://github.com/JetBrains/compose-multiplatform-core/pull/1827) + +### Desktop + +- [Elements marked with `Modifier.semantics { hideFromAccessibility() }` should now be correctly hidden from a11y](https://github.com/JetBrains/compose-multiplatform-core/pull/1798) +- [Fixed the positioning of the IME candidate popup for `TextField(TextFieldState)`](https://github.com/JetBrains/compose-multiplatform-core/pull/1794) (aka `BasicTextField2`) +- [Fixed input of diacritics via long-press on macOS in `TextField(TextFieldState)`](https://github.com/JetBrains/compose-multiplatform-core/pull/1810) (aka `BasicTextField2`) +- [Radio buttons and any other elements using `Modifier.selectable` with `Role.RadioButton` will have their state reported to accessibility via `AccessibleValue.getCurrentAccessibleValue()` and as `AccessibleState.CHECKED` in `getAccessibleStateSet()`](https://github.com/JetBrains/compose-multiplatform-core/pull/1797) + +### Web + +- [The `BasicTextField` handles browser copy/cut/paste events correctly now](https://github.com/JetBrains/compose-multiplatform-core/pull/1795). Previously, they were ignored + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-alpha03`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-beta01) + - [UI 1.8.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-beta01) + - [Foundation 1.8.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-beta01) + - [Material 1.8.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-beta01) + - [Material3 1.4.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha07) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha03`. Based on [Jetpack Lifecycle 2.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-alpha03) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha13`. Based on [Jetpack Navigation 2.8.4](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.4) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-alpha03`. Based on [Jetpack Material3 Adaptive 1.1.0-beta01](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0-beta01) + +--- + +# 1.8.0-alpha02 (January 2025) + +_Changes since 1.8.0-alpha01_ + +## Highlights + +### Resources + +- [Add `FontVariation.Settings` support to the resources library](https://github.com/JetBrains/compose-multiplatform/pull/5183) + +## Features + +### iOS + +- [Accessibility navigation uses safe area to calculate when focused rect is out of bounds](https://github.com/JetBrains/compose-multiplatform-core/pull/1745) +- [Initial Drag&Drop support](https://github.com/JetBrains/compose-multiplatform-core/pull/1690) +- [Align Compose components semantics with UIKit views accessibility](https://github.com/JetBrains/compose-multiplatform-core/pull/1719) + +### Web + +- [Adds experimental `PointerIcon.fromKeyword` function to change the browser cursor](https://github.com/JetBrains/compose-multiplatform-core/pull/1704) + +## Fixes + +### Multiple Platforms + +- [Fix missing implementation on non-Android platforms for `ModalDrawerSheet` overload with `DrawerState` argument](https://github.com/JetBrains/compose-multiplatform-core/pull/1763) + +### iOS + +- [Fixes an interruption while typing characters on a Chinese keyboard](https://github.com/JetBrains/compose-multiplatform-core/pull/1692) +- [Accessibility reading of content when obscured by layers such as pop-ups and dialogs](https://github.com/JetBrains/compose-multiplatform-core/pull/1698) +- [Taps should be properly registered on interop views with `UIKitInteropInteractionMode.Cooperative` interaction mode](https://github.com/JetBrains/compose-multiplatform-core/pull/1695) +- [Interactive pop on `UINavigationController` should recognize correctly](https://github.com/JetBrains/compose-multiplatform-core/pull/1695) +- [Enables Cupertino overscroll by default for scrollable components](https://github.com/JetBrains/compose-multiplatform-core/pull/1753) +- [Experimental method`optOutOfCupertinoOverscroll()` removed](https://github.com/JetBrains/compose-multiplatform-core/pull/1753) +- [Fix iOS Accessibility element tree construction within merged nodes](https://github.com/JetBrains/compose-multiplatform-core/pull/1750) + +### Desktop + +- [Fixed rare crash when using a scrollbar for lazy grid with animated enter/exit items](https://github.com/JetBrains/compose-multiplatform-core/pull/1707) +- [Fix possible exception during `Dialog`/`Popup` creation in case of `compose.layers.type=COMPONENT` and pointing `windowContainer` to `ComposePanel` itself](https://github.com/JetBrains/compose-multiplatform-core/pull/1747) +- [Fix interop initial z-order placement on Windows with `compose.interop.blending` flag](https://github.com/JetBrains/compose-multiplatform-core/pull/1774) (1.7.0 regression) +- [Fixed the background of transparent windows/dialogs on Windows becoming opaque as the window is moved](https://github.com/JetBrains/compose-multiplatform-core/pull/1772) + +### Resources + +- [Fix string resource's regex for placeholders to correctly match multi-digit placeholders](https://github.com/JetBrains/compose-multiplatform/pull/5187) + +### Navigation + +- [Fix incorrect navigation up on the root screen for non-android targets](https://github.com/JetBrains/compose-multiplatform-core/pull/1736) +- [Fixed browser navigation integration when route paths contain special symbols](https://github.com/JetBrains/compose-multiplatform-core/pull/1738) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-alpha02`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-alpha07) + - [UI 1.8.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-alpha07) + - [Foundation 1.8.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-alpha07) + - [Material 1.8.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-alpha07) + - [Material3 1.4.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha04) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha02`. Based on [Jetpack Lifecycle 2.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-alpha03) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha12`. Based on [Jetpack Navigation 2.8.4](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.4) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-alpha02`. Based on [Jetpack Material3 Adaptive 1.1.0-alpha07](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0-alpha07) + +--- + +# 1.7.3 (December 2024) + +_Changes since 1.7.1_ + +## Features + +### Desktop + +- [Compose plugin for IntelliJ IDEA now supports K2 mode](https://github.com/JetBrains/compose-multiplatform/pull/5138) + +## Fixes + +### iOS + +- [Taps should be properly registered on interop views with `UIKitInteropInteractionMode.Cooperative` interaction mode](https://github.com/JetBrains/compose-multiplatform-core/pull/1731) +- [Interactive pop](https://github.com/JetBrains/compose-multiplatform-core/pull/1731) (swipe to go back) on `UINavigationController` should recognize correctly + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.7.3`. Based on Jetpack Compose libraries: + - [Runtime 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.6) + - [UI 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.6) + - [Foundation 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.6) + - [Material 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.6) + - [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha11`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) + +--- + +# 1.8.0-alpha01 (November 2024) + +_Changes since 1.7.1_ + +## Highlights + +### iOS + +- [LocalUIViewController moved to the `androidx.compose.ui.uikit` module](https://github.com/JetBrains/compose-multiplatform-core/pull/1608) +- [Update `AccessibilitySyncOptions` and remove `AccessibilityDebugLogger` from public API](https://github.com/JetBrains/compose-multiplatform-core/pull/1604) +- [ComposeUIViewControllerDelegate marked as deprecated](https://github.com/JetBrains/compose-multiplatform-core/pull/1651). Use parent view controller to override the methods of the UIViewController class +- [Remove experimental flag from `fun enableTraceOSLog()`](https://github.com/JetBrains/compose-multiplatform-core/pull/1652) +- [Remove obsolete Canvas Layers mode on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1680) + +## Breaking Changes + +### Multiple Platforms + +- [Tests that relied on `waitForIdle`, `awaitIdle` or `runOnIdle`](https://github.com/JetBrains/compose-multiplatform-core/pull/1550) (whether explicit or implicit) executing `delay`-ed coroutines will no longer work correctly. To fix this advance the test time via `mainClock` manually, as needed + For example, tests that previously did something like: + ``` + var updateText by mutableStateOf(false) + var text by mutableStateOf("0") + setContent { + LaunchedEffect(updateText) { + if (updateText) { + delay(1000) + text = "1" + } + } + } + updateText = true + waitForIdle() + assertEquals("1", text) + ``` + will need to add `mainClock.advanceTimeBy(1000)` after `waitForIdle()`, because `waitForIdle` no longer waits for the `delay`-ed coroutine to complete +- [Tests that advance the test clock](https://github.com/JetBrains/compose-multiplatform-core/pull/1550) (via `mainClock.advanceTimeBy`) may see different behavior with regards to the amount and timing of recomposition, layout, drawing and effects +- [`runOnIdle` will now execute `action` on the UI thread](https://github.com/JetBrains/compose-multiplatform-core/pull/1601) +- [`runOnIdle` will no longer call `waitForIdle` after executing the action](https://github.com/JetBrains/compose-multiplatform-core/pull/1601) +- [Advancing `mainClock` such that it doesn't reach the next frame, will no longer cause a recomposition](https://github.com/JetBrains/compose-multiplatform-core/pull/1618) + +### Desktop + +- [Deprecated/experimental `Modifier.onExternalDrag` has been removed - common `Modifier.dragAndDropTarget` API should be used instead](https://github.com/JetBrains/compose-multiplatform-core/pull/1606) + +## Features + +### Multiple Platforms + +- [Support configurable vertical text centering via `LineHeightStyle.Alignment`](https://github.com/JetBrains/compose-multiplatform-core/pull/1569) +- [Support Variable Fonts In All Platforms](https://github.com/JetBrains/compose-multiplatform-core/pull/1623) + +### iOS + +- [Add localised string for VoiceOver accessibility support](https://github.com/JetBrains/compose-multiplatform-core/pull/1441) +- [Support state announcements for scrollable lists in VoiceOver](https://github.com/JetBrains/compose-multiplatform-core/pull/1644) +- [Support for accessibility gestures for left-to-right languages](https://github.com/JetBrains/compose-multiplatform-core/pull/1663) + +### Desktop + +- [Compose plugin for IntelliJ IDEA now supports K2 mode](https://github.com/JetBrains/compose-multiplatform/pull/5138) + +### Resources + +- [Add new API to preload and cache font and image resources on web targets: `preloadFont`, `preloadImageBitmap`, `preloadImageVector`](https://github.com/JetBrains/compose-multiplatform/pull/5159) + +### Gradle Plugin + +- [Support compose resources in `androidLibrary` target](https://github.com/JetBrains/compose-multiplatform/pull/5157) + +### Navigation + +- [Basic support a navigation by deep links](https://github.com/JetBrains/compose-multiplatform-core/pull/1610) +- [Commonize `navController.navigate(Uri)` method](https://github.com/JetBrains/compose-multiplatform-core/pull/1617) +- [Implemented non-android `navController.handleDeepLink(NavDeepLinkRequest)` method](https://github.com/JetBrains/compose-multiplatform-core/pull/1617) +- [New API to configure browser navigation buttons and the address line](https://github.com/JetBrains/compose-multiplatform-core/pull/1621) +- [Navigation via a browser address field](https://github.com/JetBrains/compose-multiplatform-core/pull/1640) + +## Fixes + +### Multiple Platforms + +- [`waitForIdle`, `awaitIdle` and `runOnIdle` no longer consider Compose to be non-idle when coroutines launched in a composition scope call `delay`](https://github.com/JetBrains/compose-multiplatform-core/pull/1550). This prevents tests with an infinite loop with `delay` in a `LaunchedEffect` from hanging +- [Tests that advance the test clock](https://github.com/JetBrains/compose-multiplatform-core/pull/1550) (via `mainClock.advanceTimeBy`) will now correctly (re)compose/layout/draw/effects each virtual frame as needed +- [`runOnIdle` will now execute `action` on the UI thread, as Android behaves](https://github.com/JetBrains/compose-multiplatform-core/pull/1601) +- [`runOnIdle` will no longer call `waitForIdle` after executing the action, as Android behaves](https://github.com/JetBrains/compose-multiplatform-core/pull/1601) +- [The overhead for running an empty test has been significantly reduced](https://github.com/JetBrains/compose-multiplatform-core/pull/1615) + +### iOS + +- [Deprecate defaultUIKitMain()](https://github.com/JetBrains/compose-multiplatform-core/pull/1585) +- [Fixed visibility of `androidx.compose.material3.internal.formatWithSkeleton` that was accidently marked as public](https://github.com/JetBrains/compose-multiplatform-core/pull/1609) +- [Fix a bug where the accessibility tree did not reload when VoiceOver was enabled](https://github.com/JetBrains/compose-multiplatform-core/pull/1656) +- [Fix Display Cutout Padding when rotating the device](https://github.com/JetBrains/compose-multiplatform-core/pull/1645) + +### Desktop + +- [Fix drag-and-drop when the list of supported actions doesn't include `Move`](https://github.com/JetBrains/compose-multiplatform-core/pull/1683) +- [Fix accessibility focus when using `compose.swing.render.on.graphics=true`](https://github.com/JetBrains/compose-multiplatform-core/pull/1688) +- [Fix "Context menu on desktop shows incorrect items after the second showing"](https://github.com/JetBrains/compose-multiplatform-core/pull/1693) + +### Resources + +- [Read `android:autoMirrored="true"` property and pass it to ImageVector builder](https://github.com/JetBrains/compose-multiplatform/pull/5140) + +### Navigation + +- [Fixed `No destination with ID 0 is on the NavController's back stack` crash on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1596) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.8.0-alpha01`. Based on Jetpack Compose libraries: + - [Runtime 1.8.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0-alpha03) + - [UI 1.8.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0-alpha03) + - [Foundation 1.8.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.8.0-alpha03) + - [Material 1.8.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-material#1.8.0-alpha03) + - [Material3 1.4.0-alpha01](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha01) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0-alpha01`. Based on [Jetpack Lifecycle 2.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0-alpha03) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha11`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.1.0-alpha01`. Based on [Jetpack Material3 Adaptive 1.1.0-alpha04](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0-alpha04) + +--- + +# 1.7.1 (November 2024) + +_Changes since 1.7.0_ + +## Fixes + +### Multiple Platforms + +- [Fixed `Modifier.clickable` binary compatibility with 1.6 on non-JVM targets](https://github.com/JetBrains/compose-multiplatform-core/pull/1647) +- [Fixed `Modifier.toggleable` and `Modifier.selectable` binary compatibility with 1.6 on non-JVM targets](https://github.com/JetBrains/compose-multiplatform-core/pull/1649) +- [Fix issue where `DateRangePicker` doesn't show confirmation button on iOS and Desktop](https://github.com/JetBrains/compose-multiplatform-core/pull/1666) +- [Fix Skia paragraph caching performance degradation](https://github.com/JetBrains/compose-multiplatform-core/pull/1676) + +### iOS + +- [Fling animation works correctly for fast scrolling gestures](https://github.com/JetBrains/compose-multiplatform-core/pull/1616) +- [Fix HorizontalPager snapping on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1661) +- [Fixed double recomposition on the first screen](https://github.com/JetBrains/compose-multiplatform-core/pull/1668) +- [Fix Accessibility Items availability inside dialogs](https://github.com/JetBrains/compose-multiplatform-core/pull/1678) +- [Memory leak due to Compose view controller never GCed](https://github.com/JetBrains/compose-multiplatform-core/pull/1660) + +### Desktop + +- [Fix for excessive garbage generation from redrawing on Swing](https://github.com/JetBrains/compose-multiplatform-core/pull/1657) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.7.1`. Based on Jetpack Compose libraries: + - [Runtime 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.5) + - [UI 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.5) + - [Foundation 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.5) + - [Material 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.5) + - [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) + +--- + +# 1.7.0 (October 2024) + +_Changes since 1.6.11_ + +## Highlights + +## Resources + +- [Compose Multiplatform resources are stored in the android assets now. This fixes Android Studio Preview and cases such as a rendering resource files in WebViews or Media Players](https://github.com/JetBrains/compose-multiplatform/pull/4965) + +### Navigation + +- [Shared Element Transitions](https://developer.android.com/develop/ui/compose/animation/shared-elements) +- [Safe Args in Navigation Compose](https://developer.android.com/guide/navigation/design/type-safety) + +### Web + +- [`skiko.js` is redundant in case of K/Wasm Compose Multiplatform for web applications and it can be removed from index.html files to not load redundant files](https://github.com/JetBrains/compose-multiplatform/pull/5134). `skiko.js` will be removed from the k/wasm distribution in the future releases. `skiko.js` is still needed in case of K/JS Compose Multiplatform for web apps + +## Breaking changes + +### iOS + +- [`UIKitView` and `UIKitViewController` in `package androidx.compose.ui.interop` are deprecated](https://github.com/JetBrains/compose-multiplatform-core/pull/1494). New API are mentioned in deprecation message. Deprecated invocations should work fine unless custom `onResize` is used, it is disallowed now and will print a warning. +- [Actual of expected `InteropView` on iOS is `UIResponder` now instead of `UIView`](https://github.com/JetBrains/compose-multiplatform-core/pull/1489). It's the first common ancestor for `UIViewController` and `UIView`, both of which can be integrated using iOS interop APIs +- [The app will crash by default, if `CADisableMinimumFrameDurationOnPhone` is not set to true in `Info.plist`](https://github.com/JetBrains/compose-multiplatform-core/pull/1451). Use newly added `ComposeUIViewControllerConfiguration.enforceStrictPlistSanityCheck` to opt-out of this behavior + +### Desktop + +- [`Modifier.onExternalDrag` has been deprecated in favor of the new `Modifier.dragAndDropTarget`](https://github.com/JetBrains/compose-multiplatform-core/pull/1528) + +### Android + +- [Minimal supported AGP raised to 8.1.0](https://github.com/JetBrains/compose-multiplatform/pull/4840) + +### Resources + +- [Deprecate resources in `compose.ui` in favour of the new resource library](https://github.com/JetBrains/compose-multiplatform-core/pull/1457) + +## Features + +### Multiple Platforms +- [The `clickable` modifier now responds to NumPadEnter and Spacebar, too, in addition to Enter](https://github.com/JetBrains/compose-multiplatform-core/pull/1464) +- [`LocalLifecycleOwner` moved from Compose UI to `lifecycle-runtime-compose` so that its Compose-based helper APIs can be used outside of Compose UI](https://github.com/JetBrains/compose-multiplatform-core/pull/1449) +- [Skia is updated to m126](https://github.com/JetBrains/compose-multiplatform-core/pull/1486) +- [Commonized `org.jetbrains.compose.material3:material3-window-size-class` module](https://github.com/JetBrains/compose-multiplatform-core/pull/1466) +- [Commonized `org.jetbrains.compose.material3.adaptive:adaptive*` modules](https://github.com/JetBrains/compose-multiplatform-core/pull/1468) +- [New multiplatform module "material-navigation" (in beta status)](https://github.com/JetBrains/compose-multiplatform-core/pull/1504) +- [`material3-adaptive-navigation-suite` is multiplatform now](https://github.com/JetBrains/compose-multiplatform-core/pull/1539) +- [Support Kotlin 1.9.25](https://github.com/JetBrains/compose-multiplatform/pull/5141) + +### iOS + +- [Initial iOS floating cursor support](https://github.com/JetBrains/compose-multiplatform-core/pull/1312) +- [Added `accessibilityEnabled: Boolean = true` argument to `UIKitView` and `UIKitViewController`](https://github.com/JetBrains/compose-multiplatform-core/pull/1350) +- [`preferredStatusBarStyle`, `preferredStatysBarAnimation` and `prefersStatusBarHidden` are added to `ComposeUIViewControllerDelegate` to allow status bar appearance modification](https://github.com/JetBrains/compose-multiplatform-core/pull/1378) +- [Improvements in touches processing to detect if touches were meant to be delivered to interop views, or should be processed by Compose](https://github.com/JetBrains/compose-multiplatform-core/pull/1440) +- [New `UIKitView` and `UIKitViewController` API in `package androidx.compose.ui.viewinterop`](https://github.com/JetBrains/compose-multiplatform-core/pull/1494). Support of `onReset` to reuse the interop composable emitted node and avoid excessive native views reallocations, fine-grain touches strategy control (cooperative with explicit time delay, non-cooperative where no touches are received by Compose, ignoring touches) +- [Basic support for `BasicTextField(TextFieldState, ...)` on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1540) + +### Desktop + +- [Add constructor with `RenderSettings` to `ComposePanel`. Added a class `RenderSettings` with `val isVsyncEnabled: Boolean?`. When set to `true` gives a hint to renderer implementation of the particular `ComposePanel` to reduce the latency between the input and visual changes in exchange for possible screen tearing](https://github.com/JetBrains/compose-multiplatform-core/pull/1377) +- [Add public `moveEnabled` and `positionPercentage` setters in `SplitPaneState`](https://github.com/JetBrains/compose-multiplatform/pull/3974) +- [Implemented Drag-and-Drop from AOSP: `Modifier.dragAndDropSource` and `Modifier.dragAndDropTarget`](https://github.com/JetBrains/compose-multiplatform-core/pull/1433) +- [Added support for input methods (languages such as Chinese, Korean, Arabic) to BasicTextField(TextFieldState, ...)](https://github.com/JetBrains/compose-multiplatform-core/pull/1496) +- [Add dynamic Drag&Drop target indication](https://github.com/JetBrains/compose-multiplatform-core/pull/1510) (🚫 icon under cursor if currently there is no valid drop target under it) +- [The thickness of border resizers in undecorated windows and dialogs can now be controlled by passing a new `decoration` argument](https://github.com/JetBrains/compose-multiplatform-core/pull/1505) + +### Resources + +- [Speed resources web rendering up by the reading a cached value instantly](https://github.com/JetBrains/compose-multiplatform/pull/4893) +- [If there is no resource with suitable density, use resource with the most suitable density, otherwise use default (similar to the Android logic)](https://github.com/JetBrains/compose-multiplatform/pull/4969) +- [Add a customization for resources directories. Now it is possible to use e.g downloaded resources](https://github.com/JetBrains/compose-multiplatform/pull/5016) +- [Now the gradle plugin generates resources map to find a resource by a string ID](https://github.com/JetBrains/compose-multiplatform/pull/5068) +- [To avoid constant reading raw font bytes on each Font usage on non-android targets, there was added the font cache. Android has own font cache inside the platform implementation](https://github.com/JetBrains/compose-multiplatform/pull/5109) +- [Added utility functions to decode `Bitmap ByteArray as ImageVector` and `XML ByteArray as ImageVector` in the common code and `SVG ByteArray as Painter` in the non-android code](https://github.com/JetBrains/compose-multiplatform/pull/5098) +- [Added support of test resources in Compose Multiplatform projects](https://github.com/JetBrains/compose-multiplatform/pull/5122) +- [Added support of multi-module resources in JVM-only projects](https://github.com/JetBrains/compose-multiplatform/pull/5122) + +### Gradle Plugin + +- [New `compose.material3AdaptiveNavigationSuite` shortcut in the gradle plugin](https://github.com/JetBrains/compose-multiplatform/pull/5133) + +## Fixes + +### Multiple Platforms + +- [Fix "ComposePanel. Focus moves to child after focusing/unfocusing the main window"](https://github.com/JetBrains/compose-multiplatform-core/pull/1398) +- [Don't show code completion for non-existenst API in `commonMain` that fails on Android with `NoSuchMethodException`](https://github.com/JetBrains/compose-multiplatform-core/pull/1328) +- [Fix order of interop elements in some cases](https://github.com/JetBrains/compose-multiplatform-core/pull/1340) +- [Fixed `Popup` jerking during ripple effect animation](https://github.com/JetBrains/compose-multiplatform-core/pull/1385) +- [Fix applying `ShaderBrush` to part of `AnnotatedString`](https://github.com/JetBrains/compose-multiplatform-core/pull/1389) +- [Fix text `brush` animation and optimized updating some visual text properties (applying time is reduced up to 40%)](https://github.com/JetBrains/compose-multiplatform-core/pull/1395) +- [Fix initial cursor position in the empty `TextField` with explicitly set `TextAlignment`](https://github.com/JetBrains/compose-multiplatform-core/pull/1354) +- [Fix focus for editable `TextField` inside `ExposedDropdownMenuBox`](https://github.com/JetBrains/compose-multiplatform-core/pull/1423) +- [Fix changing `FontRenderingSettings` is not reflected until composition restarts](https://github.com/JetBrains/compose-multiplatform-core/pull/1595) + +### iOS + +- [Pressing directional keys on a physical keyboard connected to iOS device doesn't cause a crash](https://github.com/JetBrains/compose-multiplatform-core/pull/1383) +- [Dismissing popup or dialogue within a very short timespan after its creation doesn't cause a crash](https://github.com/JetBrains/compose-multiplatform-core/pull/1384) +- [Fix missing invalidations during native view resize](https://github.com/JetBrains/compose-multiplatform-core/pull/1387) +- [Fixed a memory spike when continuously resizing the `ComposeUIViewController` (such as when used in modal sheet presentation context with different detents)](https://github.com/JetBrains/compose-multiplatform-core/pull/1390) +- [visibility of selection handles in single-line textfields with LTR + RTL text in iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1331) +- [Interop views are now correctly clipped when their measured clipped and unclipped bounding boxes don't match](https://github.com/JetBrains/compose-multiplatform-core/pull/1430) +- [Touches inside interop views are not exclusive to them and are processed on Compose side as well.](https://github.com/JetBrains/compose-multiplatform-core/pull/1426) +- [Fix `material3.ModalBottomSheet` safe area usage](https://github.com/JetBrains/compose-multiplatform-core/pull/1438) +- [Fix hiding interop element during quick scroll](https://github.com/JetBrains/compose-multiplatform-core/pull/1425) +- [Fixed the keyboard appearing when selecting from SelectionContainer](https://github.com/JetBrains/compose-multiplatform-core/pull/1448) +- [Fix status bar padding on iPad devices](https://github.com/JetBrains/compose-multiplatform-core/pull/1442) +- [VoiceOver doesn't allow to perform a11y actions (scrolling, activate, customActions) when disabled() semantics is present in affected element](https://github.com/JetBrains/compose-multiplatform-core/pull/1446) +- [Fix frame drops when dragging scrollable content on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1503) +- [A new approach to implementation of `platformLayers`.](https://github.com/JetBrains/compose-multiplatform-core/pull/1515) Now extra layers (such as Dialogs and Popups) drawing is merged into a single screen size canvas. No jittering and crashes should happen with those anymore. +- [`Dialog`s and `Popup`s now have their insets calculated correctly even when the frame of `ComposeUIViewController` spawning them doesn't intersect any safe areas](https://github.com/JetBrains/compose-multiplatform-core/pull/1515) +- [Fix offset issues with keyboard and `TextField`](https://github.com/JetBrains/compose-multiplatform-core/pull/1523) +- [Fix "Incorrect `imePadding` and high cpu usage when repeatedly opening and closing `Keyboard` on iOS"](https://github.com/JetBrains/compose-multiplatform-core/pull/1523) +- [Fix "Selection handlers in wrong positions in a fullscreen TextField"](https://github.com/JetBrains/compose-multiplatform-core/pull/1523) +- [Fix keyboard closing while scrolling content with Text Fields](https://github.com/JetBrains/compose-multiplatform-core/pull/1558) +- [Fix "UriHandler.openUri no longer works on iOS 18"](https://github.com/JetBrains/compose-multiplatform-core/pull/1595) + +### Desktop + +- [Fix possible `UninitializedPropertyAccessException` in `desktopTest`](https://github.com/JetBrains/compose-multiplatform-core/pull/1343) +- [Fixed `ComposePanel.requestFocus()`, making it correctly assign focus to the first focusable child](https://github.com/JetBrains/compose-multiplatform-core/pull/1352) +- [When using `ComposePanel` inside a Swing application on macOS, VoiceOver will now correctly go into the `ComposePanel` when traversing accessible elements](https://github.com/JetBrains/compose-multiplatform-core/pull/1362) +- [When using `ComposePanel` inside a Swing application on Windows with NVDA turned on, focus will now correctly go into the `ComposePanel` when traversing with (ctrl)-shift-tab](https://github.com/JetBrains/compose-multiplatform-core/pull/1363) +- [Correctly save `WindowState` with unspecified `size` instead of crashing](https://github.com/JetBrains/compose-multiplatform-core/pull/1394) +- [Fix `IndexOutOfBoundsException` crash on Windows when traversing a11y elements](https://github.com/JetBrains/compose-multiplatform-core/pull/1415) +- [Fix scrolling non-same direction nested scrolls with trackpad](https://github.com/JetBrains/compose-multiplatform-core/pull/1434) +- [Fix fling velocity for precise wheel scroll](https://github.com/JetBrains/compose-multiplatform-core/pull/1402) +- [[macOS] Fix crash when right-clicking an empty `SelectionContainer` or on the padding of a `Text` inside a `SelectionContainer`](https://github.com/JetBrains/compose-multiplatform-core/pull/1439) +- [Fix bounds of `ComposePanel` in IntelliJ on macOs](https://github.com/JetBrains/compose-multiplatform-core/pull/1571) +- [Fix UI glitch when resizing a Compose window via its `WindowState`](https://github.com/JetBrains/compose-multiplatform-core/pull/1565) + +### Web + +- [Process `keydown` and `keyup` keys for identified keys from virtual keyboard](https://github.com/JetBrains/compose-multiplatform-core/pull/1380) +- [Allow preloading the fallback fonts. This enables the usage of emojis and other unicode characters without manually composing the Text with AnnotatedString](https://github.com/JetBrains/compose-multiplatform-core/pull/1400) +- [Make sure the web app distribution doesn't contain a duplicate `skiko.wasm`](https://github.com/JetBrains/compose-multiplatform/pull/4958) +- [Prevent a crash on mobile web when selecting some text in `SelectionContainer`](https://github.com/JetBrains/compose-multiplatform-core/pull/1551) + +### Resources + +- [Delete `contextClassLoader` usage on JVM targets](https://github.com/JetBrains/compose-multiplatform/pull/4895) +- [Create an empty resource dir with "podspec" task instead "podInstall"](https://github.com/JetBrains/compose-multiplatform/pull/4900) +- [Fix resource accessors escaping. Now it is possible to use resources with names: "package", "is", "item_$xxx" etc](https://github.com/JetBrains/compose-multiplatform/pull/4901) +- [Read exactly requested count of bytes from InputStream on jvm platforms](https://github.com/JetBrains/compose-multiplatform/pull/4943) +- [Now drawables from upper DPIs will be downscalled to the expected size. (the same behavior as on Android)](https://github.com/JetBrains/compose-multiplatform/pull/5101) + +### Gradle Plugin + +- [Make sure tryGetSkikoRuntimeIfNeeded is executed only during the task execution](https://github.com/JetBrains/compose-multiplatform/pull/4918) +- [Delete outdated build services](https://github.com/JetBrains/compose-multiplatform/pull/4959) +- [Support project isolation](https://github.com/JetBrains/compose-multiplatform/pull/5120) +- [Fix a gradle project misconfiguration when KSP and Room are used](https://github.com/JetBrains/compose-multiplatform/pull/5129) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0`. Based on Jetpack Compose libraries: + - [Runtime 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.1) + - [UI 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.1) + - [Foundation 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.1) + - [Material 1.7.1](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.1) + - [Material3 1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.3`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) + +--- + +# 1.7.0-rc01 (September 2024) + +_Changes since 1.7.0-beta02_ + +## Highlights + +### Web + +- [`skiko.js` is redundant in case of K/Wasm Compose Multiplatform for web applications and it can be removed from index.html files to not load redundant files](https://github.com/JetBrains/compose-multiplatform/pull/5134). `skiko.js` will be removed from the k/wasm distribution in the future releases. `skiko.js` is still needed in case of K/JS Compose Multiplatform for web apps + +## Features + +### Multiple Platforms + +- [Support Kotlin 1.9.25](https://github.com/JetBrains/compose-multiplatform/pull/5141) + +### Desktop + +- _(prerelease fix)_ [The `decoration` parameter added to `Window` and `DialogWindow` and the APIs related to it are now marked as experimental](https://github.com/JetBrains/compose-multiplatform-core/pull/1561) + +### Gradle Plugin + +- [New `compose.material3AdaptiveNavigationSuite` shortcut in the gradle plugin](https://github.com/JetBrains/compose-multiplatform/pull/5133) + +## Fixes + +### Multiple Platforms + +- _(prerelease fix)_ [Fix possible infinity invalidation loop triggered by `GraphicsLayer.record`](https://github.com/JetBrains/compose-multiplatform-core/pull/1555) +- [Fix changing `FontRenderingSettings` is not reflected until composition restarts](https://github.com/JetBrains/compose-multiplatform-core/pull/1595) + +### iOS + +- _(prerelease fix)_ [Fix "`ListDetailPaneScaffold` from material3-adaptive throws ArrayIndexOutOfBoundsException"](https://github.com/JetBrains/compose-multiplatform-core/pull/1548) +- _(prerelease fix)_ [Fix "White bars on sides on some devices"](https://github.com/JetBrains/compose-multiplatform-core/pull/1547) +- [Fix offset issues with keyboard and `TextField`](https://github.com/JetBrains/compose-multiplatform-core/pull/1523) +- [Fix "Incorrect `imePadding` and high cpu usage when repeatedly opening and closing `Keyboard` on iOS"](https://github.com/JetBrains/compose-multiplatform-core/pull/1523) +- [Fix "Selection handlers in wrong positions in a fullscreen TextField"](https://github.com/JetBrains/compose-multiplatform-core/pull/1523) +- [Fix keyboard closing while scrolling content with Text Fields](https://github.com/JetBrains/compose-multiplatform-core/pull/1558) +- _(prerelease fix)_ [Fix missing interop views with new `onReset` argument and placing inside more complex reusable layout inside `Lazy*` lists](https://github.com/JetBrains/compose-multiplatform-core/pull/1560) +- _(prerelease fix)_ [Fix selection handlers height for `BasicTextField` on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1587) +- _(prerelease fix)_ [To avoid `Symbol not found: _objc_release_x8` crash on iOS 15 simulators, skia has been re-built with downgraded Xcode](https://github.com/JetBrains/compose-multiplatform-core/pull/1595) (13.1) +- [Fix "UriHandler.openUri no longer works on iOS 18"](https://github.com/JetBrains/compose-multiplatform-core/pull/1595) + +### Desktop + +- [Fix bounds of `ComposePanel` in IntelliJ on macOs](https://github.com/JetBrains/compose-multiplatform-core/pull/1571) +- [Fix UI glitch when resizing a Compose window via its `WindowState`](https://github.com/JetBrains/compose-multiplatform-core/pull/1565) + +### Web + +- [Prevent a crash on mobile web when selecting some text in `SelectionContainer`](https://github.com/JetBrains/compose-multiplatform-core/pull/1551) + +### Android + +- _(prerelease fix)_ [Fix "Compose UI test error on android: No static method forceEnableAppTracing"](https://github.com/JetBrains/compose-multiplatform-core/pull/1564) +- _(prerelease fix)_ [Fix "Android target depends on prerelease versions"](https://github.com/JetBrains/compose-multiplatform-core/pull/1564) + +### Navigation + +- _(prerelease fix)_ [Fix `IllegalArgumentException` on putting lists into `savedStateHandle`](https://github.com/JetBrains/compose-multiplatform-core/pull/1546) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0-rc01`. Based on Jetpack Compose libraries: + - [Runtime 1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0) + - [UI 1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0) + - [Foundation 1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.0) + - [Material 1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0) + - [Material3 1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.2`. Based on [Jetpack Lifecycle 2.8.4](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.4) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0-rc01](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-rc01) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-rc01`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) + +--- + +# 1.7.0-beta02 (September 2024) + +_Changes since 1.7.0-beta01_ + +## Breaking changes +### Desktop +- [`Modifier.onExternalDrag` has been deprecated in favor of the new `Modifier.dragAndDropTarget`](https://github.com/JetBrains/compose-multiplatform-core/pull/1528) + +### Resources +- [Deprecate resources in `compose.ui` in favour of the new resource library](https://github.com/JetBrains/compose-multiplatform-core/pull/1457) + +## Features +### Multiple Platforms +- [`material3-adaptive-navigation-suite` is multiplatform now](https://github.com/JetBrains/compose-multiplatform-core/pull/1539) + +### iOS +- [Basic support for BasicTextField(TextFieldState, ...) on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1540) + +### Desktop +- [The thickness of border resizers in undecorated windows and dialogs can now be controlled by passing a new `decoration` argument](https://github.com/JetBrains/compose-multiplatform-core/pull/1505) + +## Fixes +### Multiple Platforms +- _(prerelease fix)_ [Fix `GraphicsLayer` perspective matrix calculation and missing invalidations](https://github.com/JetBrains/compose-multiplatform-core/pull/1541) +- _(prerelease fix)_ [Fix Wasm/Native ArrayIndexOutOfBoundsException exception in adaptive-layout module](https://github.com/JetBrains/compose-multiplatform-core/pull/1545) + +### iOS +- [A new approach to implementation of `platformLayers`.](https://github.com/JetBrains/compose-multiplatform-core/pull/1515) Now extra layers (such as Dialogs and Popups) drawing is merged into a single screen size canvas. No jittering and crashes should happen with those anymore. +- [`Dialog`s and `Popup`s now have their insets calculated correctly even when the frame of `ComposeUIViewController` spawning them doesn't intersect any safe areas](https://github.com/JetBrains/compose-multiplatform-core/pull/1515) + +### Desktop +- _(prerelease fix)_ [Fix "Moving after initiating a click cancels it"](https://github.com/JetBrains/compose-multiplatform-core/pull/1534) + +### Resources +- _(prerelease fix)_ [Fix Cocoapods resources integration which leaded to a lack resources in iOS apps](https://github.com/JetBrains/compose-multiplatform/pull/5128) + +### Gradle Plugin +- [Fix a gradle project misconfiguration when KSP and Room are used](https://github.com/JetBrains/compose-multiplatform/pull/5129) + +### Lifecycle +- Lifecycle 2.8.2 depends on Compose 1.6.11 (Lifecycle 2.8.1 accidentaly made dependent on Compose 1.7.0-beta01) + +### Navigation +- _(prerelease fix)_ [Fix saving state for nested `NavHostController`](https://github.com/JetBrains/compose-multiplatform-core/pull/1508) +- _(prerelease fix)_ [Fixed missing commonization for type-safe version of `SavedStateHandle.toRoute`](https://github.com/JetBrains/compose-multiplatform-core/pull/1521) + +## Dependencies +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0-beta02`. Based on Jetpack Compose libraries: + - [Runtime 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0-rc01) + - [UI 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0-rc01) + - [Foundation 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.0-rc01) + - [Material 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0-rc01) + - [Material3 1.3.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0-rc01) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.2`. Based on [Jetpack Lifecycle 2.8.4](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.4) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0-rc01](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-rc01) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-alpha03`. Based on [Jetpack Material3 Adaptive 1.0.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0-rc01) + +--- + +# 1.7.0-beta01 (September 2024) + +_Changes since 1.7.0-alpha03_ + +## Breaking changes +### iOS +- [`UIKitView` and `UIKitViewController` in `package androidx.compose.ui.interop` are deprecated](https://github.com/JetBrains/compose-multiplatform-core/pull/1494). New API are mentioned in deprecation message. Deprecated invocations should work fine unless custom `onResize` is used, it is disallowed now and will print a warning. +- [Actual of expected `InteropView` on iOS is `UIResponder` now instead of `UIView`](https://github.com/JetBrains/compose-multiplatform-core/pull/1489). It's the first common ancestor for `UIViewController` and `UIView`, both of which can be integrated using iOS interop APIs +- [The app will crash by default, if `CADisableMinimumFrameDurationOnPhone` is not set to true in `Info.plist`](https://github.com/JetBrains/compose-multiplatform-core/pull/1451). Use newly added `ComposeUIViewControllerConfiguration.enforceStrictPlistSanityCheck` to opt-out of this behavior + +## Features +### Multiple Platforms +- [New multiplatform module "material-navigation" (in beta status)](https://github.com/JetBrains/compose-multiplatform-core/pull/1504) + +### iOS +- [New `UIKitView` and `UIKitViewController` API in `package androidx.compose.ui.viewinterop`](https://github.com/JetBrains/compose-multiplatform-core/pull/1494). Support of `onReset` to reuse the interop composable emitted node and avoid excessive native views reallocations, fine-grain touches strategy control (cooperative with explicit time delay, non-cooperative where no touches are received by Compose, ignoring touches) + +### Desktop +- [Added support for input methods (languages such as Chinese, Korean, Arabic) to BasicTextField(TextFieldState, ...)](https://github.com/JetBrains/compose-multiplatform-core/pull/1496) +- [Add dynamic Drag&Drop target indication](https://github.com/JetBrains/compose-multiplatform-core/pull/1510) (🚫 icon under cursor if currently there is no valid drop target under it) + +### Resources +- [Added support of test resources in Compose Multiplatform projects](https://github.com/JetBrains/compose-multiplatform/pull/5122) +- [Added support of multi-module resources in JVM-only projects](https://github.com/JetBrains/compose-multiplatform/pull/5122) + +## Fixes +### Multiple Platforms +- _(prerelease fix)_ [Fix redirect on android artifacts for "window-core" module](https://github.com/JetBrains/compose-multiplatform-core/pull/1506) + +### iOS +- [Fix frame drops when dragging scrollable content on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1503) + +### Desktop +- _(prerelease fix)_ [Fixed drag-and-drop not working after a popup is displayed in the window](https://github.com/JetBrains/compose-multiplatform-core/pull/1493) + +### Resources +- _(prerelease fix)_ [Fix a resource reading on iOS 12](https://github.com/JetBrains/compose-multiplatform/pull/5123) +- _(prerelease fix)_ [Fix resource reading on Java 11](https://github.com/JetBrains/compose-multiplatform/pull/5125) + +### Gradle Plugin +- [Support project isolation](https://github.com/JetBrains/compose-multiplatform/pull/5120) + +## Dependencies +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0-beta01`. Based on Jetpack Compose libraries: + - [Runtime 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0-rc01) + - [UI 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0-rc01) + - [Foundation 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.0-rc01) + - [Material 1.7.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0-rc01) + - [Material3 1.3.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0-rc01) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.1`. Based on [Jetpack Lifecycle 2.8.4](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.4) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha09`. Based on [Jetpack Navigation 2.8.0-beta05](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-beta05) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-alpha02`. Based on [Jetpack Material3 Adaptive 1.0.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0-rc01) + +--- + +# 1.7.0-alpha03 (August 2024) + +_Changes since 1.7.0-alpha02_ + +## Features +### Multiple Platforms +- [Skia is updated to m126](https://github.com/JetBrains/compose-multiplatform-core/pull/1486) +- [Commonized `org.jetbrains.compose.material3:material3-window-size-class` module](https://github.com/JetBrains/compose-multiplatform-core/pull/1466) +- [Commonized `org.jetbrains.compose.material3.adaptive:adaptive*` modules](https://github.com/JetBrains/compose-multiplatform-core/pull/1468) + +### Resources +- [Added utility functions to decode `Bitmap ByteArray as ImageVector` and `XML ByteArray as ImageVector` in the common code and `SVG ByteArray as Painter` in the non-android code](https://github.com/JetBrains/compose-multiplatform/pull/5098) + +## Fixes +### Desktop +- [[macOS] Fix crash when right-clicking an empty `SelectionContainer` or on the padding of a `Text` inside a `SelectionContainer`](https://github.com/JetBrains/compose-multiplatform-core/pull/1439) +- [_(prerelease fix)_ Fix input methods position on the screen and `NullPointerException: Cannot read field`](https://github.com/JetBrains/compose-multiplatform-core/pull/1491) + +### iOS +- [_(prerelease fix)_ Fix the bug where only the changed touches were sent Compose, while all tracked touches were expected](https://github.com/JetBrains/compose-multiplatform-core/pull/1477) + +### Gradle Plugin +- [_(prerelease fix)_ Fix broken configuration cache due Android Studio + AGP issues. Now Android Studio previews require latest AGP versions (8.5.2, 8.6.0-rc01, 8.7.0-alpha04): https://issuetracker.google.com/issues/348208777](https://github.com/JetBrains/compose-multiplatform/pull/5118) + +## Dependencies +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0-alpha03`. Based on Jetpack Compose libraries: + - [Runtime 1.7.0-beta06](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0-beta06) + - [UI 1.7.0-beta06](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0-beta06) + - [Foundation 1.7.0-beta06](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.0-beta06) + - [Material 1.7.0-beta06](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0-beta06) + - [Material3 1.3.0-beta05](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0-beta05) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0`. Based on [Jetpack Lifecycle 2.8.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.0) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha09`. Based on [Jetpack Navigation 2.8.0-beta05](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-beta05) +- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.0-alpha01`. Based on [Jetpack Material3 Adaptive 1.0.0-beta04](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0-beta04) + +To use Material3 Adaptive add the dependencies for the artifacts you need in the `build.gradle` file for your app or module: +```Kotlin +dependencies { + implementation("org.jetbrains.compose.material3.adaptive:adaptive:1.0.0-alpha01") + implementation("org.jetbrains.compose.material3.adaptive:adaptive-layout:1.0.0-alpha01") + implementation("org.jetbrains.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha01") +} +``` + +___ + +# 1.7.0-alpha02 (July 2024) + +_Changes since 1.7.0-alpha01_ + +## Features + +### Multiple Platforms +- [The `clickable` modifier now responds to NumPadEnter and Spacebar, too, in addition to Enter](https://github.com/JetBrains/compose-multiplatform-core/pull/1464) +- [`LocalLifecycleOwner` moved from Compose UI to `lifecycle-runtime-compose` so that its Compose-based helper APIs can be used outside of Compose UI](https://github.com/JetBrains/compose-multiplatform-core/pull/1449) + +### iOS +- [Improvements in touches processing to detect if touches were meant to be delivered to interop views, or should be processed by Compose](https://github.com/JetBrains/compose-multiplatform-core/pull/1440) + +### Desktop +- [Implemented Drag-and-Drop from AOSP: `Modifier.dragAndDropSource` and `Modifier.dragAndDropTarget`](https://github.com/JetBrains/compose-multiplatform-core/pull/1433) + +### Resources +- [Now the gradle plugin generates resources map to find a resource by a string ID](https://github.com/JetBrains/compose-multiplatform/pull/5068) +- [To avoid constant reading raw font bytes on each Font usage on non-android targets, there was added the font cache. Android has own font cache inside the platform implementation](https://github.com/JetBrains/compose-multiplatform/pull/5109) + +## Fixes + +### Multiple Platforms +- [_(prerelease fix)_ Restore missing `SearchBar` changes from `material3` 1.3](https://github.com/JetBrains/compose-multiplatform-core/pull/1455) + +### iOS +- [Interop views are now correctly clipped when their measured clipped and unclipped bounding boxes don't match](https://github.com/JetBrains/compose-multiplatform-core/pull/1430) +- [Touches inside interop views are not exclusive to them and are processed on Compose side as well.](https://github.com/JetBrains/compose-multiplatform-core/pull/1426) +- [Fix `material3.ModalBottomSheet` safe area usage](https://github.com/JetBrains/compose-multiplatform-core/pull/1438) +- [Fix hiding interop element during quick scroll](https://github.com/JetBrains/compose-multiplatform-core/pull/1425) +- [_(prerelease fix)_ Fixed floating cursor isn't working](https://github.com/JetBrains/compose-multiplatform-core/pull/1443) +- [Fixed the keyboard appearing when selecting from SelectionContainer](https://github.com/JetBrains/compose-multiplatform-core/pull/1448) +- [Fix status bar padding on iPad devices](https://github.com/JetBrains/compose-multiplatform-core/pull/1442) +- [VoiceOver doesn't allow to perform a11y actions (scrolling, activate, customActions) when disabled() semantics is present in affected element](https://github.com/JetBrains/compose-multiplatform-core/pull/1446) + +### Desktop +- [Fix scrolling non-same direction nested scrolls with trackpad](https://github.com/JetBrains/compose-multiplatform-core/pull/1434) +- [Fix fling velocity for precise wheel scroll](https://github.com/JetBrains/compose-multiplatform-core/pull/1402) +- [_(prerelease fix)_ Fix remaining focus indication after a click](https://github.com/JetBrains/compose-multiplatform-core/pull/1467) + +### Resources +- [_(prerelease fix)_ Fix an android app compose resources packaging broken after introduction AS previews](https://github.com/JetBrains/compose-multiplatform/pull/5090) +- [Now drawables from upper DPIs will be downscalled to the expected size. (the same behavior as on Android)](https://github.com/JetBrains/compose-multiplatform/pull/5101) + +### Gradle plugin +- [_(prerelease fix)_ Fix "InvalidUserDataException: Cannot change hierarchy of dependency configuration" on Gradle sync](https://github.com/JetBrains/compose-multiplatform/pull/5076) + +## Dependencies +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0-alpha02`. Based on Jetpack Compose libraries: + - [Runtime 1.7.0-beta05](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0-beta05) + - [UI 1.7.0-beta05](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0-beta05) + - [Foundation 1.7.0-beta05](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.0-beta05) + - [Material 1.7.0-beta05](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0-beta05) + - [Material3 1.3.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0-beta03) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0`. Based on [Jetpack Lifecycle 2.8.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.0) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha08`. Based on [Jetpack Navigation 2.8.0-beta03](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-beta03) + +___ + +# 1.7.0-alpha01 (July 2024) + +_Changes since 1.6.11_ + +## Highlights + +- [Compose Multiplatform resources are stored in the android assets now. This fixes Android Studio Preview and cases such as a rendering resource files in WebViews or Media Players](https://github.com/JetBrains/compose-multiplatform/pull/4965) +- [Shared Element Transitions](https://developer.android.com/develop/ui/compose/animation/shared-elements) +- [Safe Args in Navigation Compose](https://developer.android.com/guide/navigation/design/type-safety) + +## Breaking changes + +### Android + +- [Minimal supported AGP raised to 8.1.0](https://github.com/JetBrains/compose-multiplatform/pull/4840) + +## Features + +### iOS + +- [Initial iOS floating cursor support](https://github.com/JetBrains/compose-multiplatform-core/pull/1312) +- [Added `accessibilityEnabled: Boolean = true` argument to `UIKitView` and `UIKitViewController`](https://github.com/JetBrains/compose-multiplatform-core/pull/1350) +- [`preferredStatusBarStyle`, `preferredStatysBarAnimation` and `prefersStatusBarHidden` are added to `ComposeUIViewControllerDelegate` to allow status bar appearance modification](https://github.com/JetBrains/compose-multiplatform-core/pull/1378) + +### Desktop + +- [Add constructor with `RenderSettings` to `ComposePanel`. Added a class `RenderSettings` with `val isVsyncEnabled: Boolean?`. When set to `true` gives a hint to renderer implementation of the particular `ComposePanel` to reduce the latency between the input and visual changes in exchange for possible screen tearing](https://github.com/JetBrains/compose-multiplatform-core/pull/1377) +- [Add public `moveEnabled` and `positionPercentage` setters in `SplitPaneState`](https://github.com/JetBrains/compose-multiplatform/pull/3974) + +### Resources + +- [Speed resources web rendering up by the reading a cached value instantly](https://github.com/JetBrains/compose-multiplatform/pull/4893) +- [If there is no resource with suitable density, use resource with the most suitable density, otherwise use default (similar to the Android logic)](https://github.com/JetBrains/compose-multiplatform/pull/4969) +- [Add a customization for resources directories. Now it is possible to use e.g downloaded resources](https://github.com/JetBrains/compose-multiplatform/pull/5016) + +## Fixes + +### Multiple Platforms + +- [Fix "ComposePanel. Focus moves to child after focusing/unfocusing the main window"](https://github.com/JetBrains/compose-multiplatform-core/pull/1398) +- [Don't show code completion for non-existenst API in `commonMain` that fails on Android with `NoSuchMethodException`](https://github.com/JetBrains/compose-multiplatform-core/pull/1328) +- [Fix order of interop elements in some cases](https://github.com/JetBrains/compose-multiplatform-core/pull/1340) +- [Fixed `Popup` jerking during ripple effect animation](https://github.com/JetBrains/compose-multiplatform-core/pull/1385) +- [Fix applying `ShaderBrush` to part of `AnnotatedString`](https://github.com/JetBrains/compose-multiplatform-core/pull/1389) +- [Fix text `brush` animation and optimized updating some visual text properties (applying time is reduced up to 40%)](https://github.com/JetBrains/compose-multiplatform-core/pull/1395) +- [Fix initial cursor position in the empty `TextField` with explicitly set `TextAlignment`](https://github.com/JetBrains/compose-multiplatform-core/pull/1354) +- [Fix focus for editable `TextField` inside `ExposedDropdownMenuBox`](https://github.com/JetBrains/compose-multiplatform-core/pull/1423) + +### iOS + +- [Pressing directional keys on a physical keyboard connected to iOS device doesn't cause a crash](https://github.com/JetBrains/compose-multiplatform-core/pull/1383) +- [Dismissing popup or dialogue within a very short timespan after its creation doesn't cause a crash](https://github.com/JetBrains/compose-multiplatform-core/pull/1384) +- [Fix missing invalidations during native view resize](https://github.com/JetBrains/compose-multiplatform-core/pull/1387) +- [Fixed a memory spike when continuously resizing the `ComposeUIViewController` (such as when used in modal sheet presentation context with different detents)](https://github.com/JetBrains/compose-multiplatform-core/pull/1390) +- [visibility of selection handles in single-line textfields with LTR + RTL text in iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1331) + +### Desktop + +- [Fix possible `UninitializedPropertyAccessException` in `desktopTest`](https://github.com/JetBrains/compose-multiplatform-core/pull/1343) +- [Fixed `ComposePanel.requestFocus()`, making it correctly assign focus to the first focusable child](https://github.com/JetBrains/compose-multiplatform-core/pull/1352) +- [When using `ComposePanel` inside a Swing application on macOS, VoiceOver will now correctly go into the `ComposePanel` when traversing accessible elements](https://github.com/JetBrains/compose-multiplatform-core/pull/1362) +- [When using `ComposePanel` inside a Swing application on Windows with NVDA turned on, focus will now correctly go into the `ComposePanel` when traversing with (ctrl)-shift-tab](https://github.com/JetBrains/compose-multiplatform-core/pull/1363) +- [Correctly save `WindowState` with unspecified `size` instead of crashing](https://github.com/JetBrains/compose-multiplatform-core/pull/1394) +- [Fix `IndexOutOfBoundsException` crash on Windows when traversing a11y elements](https://github.com/JetBrains/compose-multiplatform-core/pull/1415) + +### Web + +- [Process `keydown` and `keyup` keys for identified keys from virtual keyboard](https://github.com/JetBrains/compose-multiplatform-core/pull/1380) +- [Allow preloading the fallback fonts. This enables the usage of emojis and other unicode characters without manually composing the Text with AnnotatedString](https://github.com/JetBrains/compose-multiplatform-core/pull/1400) +- [Make sure the web app distribution doesn't contain a duplicate `skiko.wasm`](https://github.com/JetBrains/compose-multiplatform/pull/4958) + +### Resources + +- [Delete `contextClassLoader` usage on JVM targets](https://github.com/JetBrains/compose-multiplatform/pull/4895) +- [Create an empty resource dir with "podspec" task instead "podInstall"](https://github.com/JetBrains/compose-multiplatform/pull/4900) +- [Fix resource accessors escaping. Now it is possible to use resources with names: "package", "is", "item_$xxx" etc](https://github.com/JetBrains/compose-multiplatform/pull/4901) +- [Read exactly requested count of bytes from InputStream on jvm platforms](https://github.com/JetBrains/compose-multiplatform/pull/4943) + +### Gradle Plugin + +- [Make sure tryGetSkikoRuntimeIfNeeded is executed only during the task execution](https://github.com/JetBrains/compose-multiplatform/pull/4918) +- [Delete outdated build services](https://github.com/JetBrains/compose-multiplatform/pull/4959) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.7.0-alpha01`. Based on Jetpack Compose libraries: + - [Compiler 1.5.14](https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.14) + - [Runtime 1.7.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0-beta03) + - [UI 1.7.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0-beta03) + - [Foundation 1.7.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.0-beta03) + - [Material 1.7.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0-beta03) + - [Material3 1.3.0-beta03](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.0-beta03) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0`. Based on [Jetpack Lifecycle 2.8.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.0) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha08`. Based on [Jetpack Navigation 2.8.0-beta03](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0-beta03) + +___ + +# 1.6.11 (June 2024) + +_Changes since 1.6.10_ + +## Fixes + +### Multiple Platforms + +- [Fix endless re-layout when layout is invalidated by measure, which includes measuring `TextField(singleLine=true)` with `IntrinsicSize`](https://github.com/JetBrains/compose-multiplatform-core/pull/1355) +- [Fix container size for `Dialog` centering inside `ImageComposeScene`](https://github.com/JetBrains/compose-multiplatform-core/pull/1375) + +### iOS + +- [Fix crash on iOS 12 caused by usage unavailable `UIMenuController` API](https://github.com/JetBrains/compose-multiplatform-core/pull/1361) + +### Desktop + +- [Fix `DropdownMenu`/`Popup` positioning when a window is moved to a screen with a different density](https://github.com/JetBrains/compose-multiplatform-core/pull/1333) +- [Fix possible scrolling without animation on some mouse models](https://github.com/JetBrains/compose-multiplatform-core/pull/1326) + +### Web + +- [Fixed crash when `DatePicker` text field receives illegal input](https://github.com/JetBrains/compose-multiplatform-core/pull/1368) + +### Resources + +- [Fix a cached font if the resource accessor was changed](https://github.com/JetBrains/compose-multiplatform/pull/4864) + +### Gradle Plugin + +- [Fix Compose Compiler configuration for Kotlin < 2.0 when kotlin-android or kotlin-js gradle plugins are applied](https://github.com/JetBrains/compose-multiplatform/pull/4879) + +## Dependencies + +- Gradle Plugin `org.jetbrains.compose`, version `1.6.11`. Based on Jetpack Compose libraries: + - [Compiler 1.5.14](https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.14) + - [Runtime 1.6.7](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.6.7) + - [UI 1.6.7](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.7) + - [Foundation 1.6.7](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.6.7) + - [Material 1.6.7](https://developer.android.com/jetpack/androidx/releases/compose-material#1.6.7) + - [Material3 1.2.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.2.1) + +- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.0`. Based on [Jetpack Lifecycle 2.8.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.0) +- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.7.0-alpha07`. Based on [Jetpack Navigation 2.7.7](https://developer.android.com/jetpack/androidx/releases/navigation#2.7.7) + +___ + # 1.6.10 (May 2024) _Changes since 1.6.2_ diff --git a/README.md b/README.md index fffb8fd8e89..59d9a21bdfc 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,24 @@ [![official project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) -[![Latest release](https://img.shields.io/github/v/release/JetBrains/compose-multiplatform?color=brightgreen&label=latest%20release)](https://github.com/JetBrains/compose-multiplatform/releases/latest) -[![Latest build](https://img.shields.io/github/v/release/JetBrains/compose-multiplatform?color=orange&include_prereleases&label=latest%20build)](https://github.com/JetBrains/compose-multiplatform/releases) - - - -# Compose Multiplatform - -[**Compose Multiplatform**](https://jb.gg/cmp) is a declarative framework for sharing UIs across multiple platforms with Kotlin. +[![stable](https://img.shields.io/github/v/release/JetBrains/compose-multiplatform?sort=semver&display_name=release&label=stable&color=brightgreen)](https://github.com/JetBrains/compose-multiplatform/releases/latest) +[![prerelease](https://img.shields.io/github/v/release/JetBrains/compose-multiplatform?include_prereleases&sort=semver&filter=*-*&display_name=release&label=prerelease&color=blue)](https://github.com/JetBrains/compose-multiplatform/releases) +[![dev](https://img.shields.io/github/v/tag/JetBrains/compose-multiplatform?include_prereleases&sort=semver&filter=v*%2Bdev*&label=dev&color=orange)](https://github.com/JetBrains/compose-multiplatform/tags) + + + + + Compose Multiplatform logo and name + + + +[Compose Multiplatform](https://jb.gg/cmp) is a declarative framework for sharing UI code across multiple platforms with Kotlin. It is based on [Jetpack Compose](https://developer.android.com/jetpack/compose) and developed by [JetBrains](https://www.jetbrains.com/) and open-source contributors. -You can choose the platforms across which to share your UIs using Compose Multiplatform: +You can choose the platforms across which to share your UI code using Compose Multiplatform: -* [iOS](https://jb.gg/start-cmp) (Beta) +* [iOS](https://jb.gg/start-cmp) * [Android](https://jb.gg/start-cmp) -* [Desktop](https://jb.gg/start-cmp) (Windows, MacOS, Linux) -* [Web](https://jb.gg/start-cmp) (Alpha) +* [Desktop](https://jb.gg/start-cmp) (Windows, MacOS, and Linux) +* [Web](https://jb.gg/start-cmp) (Beta) For example, you can share UIs between iOS and Android or Windows and MacOS. @@ -22,10 +26,6 @@ For example, you can share UIs between iOS and Android or Windows and MacOS. ## iOS -> iOS support is in Beta. It is feature complete, and migration issues should be minimal. You may still encounter bugs, performance and developer experience issues, but not as much as in the Alpha stage. -> We would appreciate your feedback on it in the public Slack channel [#compose-ios](https://kotlinlang.slack.com/archives/C0346LWVBJ4/p1678888063176359). -> If you face any issues, please report them on [GitHub](https://github.com/JetBrains/compose-multiplatform/issues). - Compose Multiplatform shares most of its API with Jetpack Compose, the Android UI framework developed by Google. You can use the same APIs to build user interfaces for both Android and iOS. @@ -37,7 +37,7 @@ and embed complex native UI views, such as [MKMapView](https://developer.apple.c ## Android -When Android is one of your targets, you can get the same experience for Android as if you were developing an Android app +When Android is one of your targets, you get the same experience for Android as if you were developing an Android app using [Jetpack Compose](https://developer.android.com/jetpack/compose). **[Get started with Compose Multiplatform](https://jb.gg/start-cmp)** @@ -51,19 +51,17 @@ It has desktop extensions for menus, keyboard shortcuts, window manipulation, an **[Get started with Compose Multiplatform](https://jb.gg/start-cmp)** -> We would appreciate your feedback on Compose Multiplatform in the public Slack channel [#compose](https://kotlinlang.slack.com/archives/CJLTWPH7S/p1678882768039969). - ## Web -> Web support is in Alpha. It may change incompatibly and require manual migration in the future. +> Web support is in Beta, making it a great time to give it a try. Check out our [blog post](https://blog.jetbrains.com/kotlin/2025/09/compose-multiplatform-1-9-0-compose-for-web-beta/) to learn more about the progress made to reach this milestone. > We would appreciate your feedback on it in the public Slack channel [#compose-web](https://kotlinlang.slack.com/archives/C01F2HV7868/p1678887590205449). -> If you face any issues, please report them on [GitHub](https://github.com/JetBrains/compose-multiplatform/issues). +> If you face any issues, please report them on [YouTrack](https://youtrack.jetbrains.com/newIssue?project=CMP). -You can experiment with sharing your mobile or desktop UIs with the web. Compose for Web is based on [Kotlin/Wasm](https://kotl.in/wasm), +You can experiment with sharing your mobile or desktop UIs with the web. Compose Multiplatform for web is based on [Kotlin/Wasm](https://kotl.in/wasm), the newest target for Kotlin Multiplatform projects. It allows Kotlin developers to run their code in the browser with all the benefits that WebAssembly has to offer, such as good and predictable performance for your applications. -**[Get started with Compose for Web](https://jb.gg/start-cmp)** +**[Get started with Compose Multiplatform for web](https://jb.gg/start-cmp)** ## Libraries @@ -82,7 +80,9 @@ for creating web user interfaces with HTML and CSS. * [Compatibility and versioning](https://jb.gg/cmp-versioning) * [Changelog](CHANGELOG.md) +## Get help +There are dedicated public Slack channels for [#compose-ios](https://kotlinlang.slack.com/archives/C0346LWVBJ4/p1678888063176359), [#compose-desktop](https://kotlinlang.slack.com/archives/C01D6HTPATV) and [#compose-web](https://kotlinlang.slack.com/archives/C01F2HV7868/p1678887590205449), as well as the general [#compose](https://kotlinlang.slack.com/archives/CJLTWPH7S) channel. - +If you encounter any issues, please report them on [YouTrack](https://youtrack.jetbrains.com/newIssue?project=CMP). diff --git a/artwork/compose-logo-name-black.svg b/artwork/compose-logo-name-black.svg new file mode 100644 index 00000000000..c456f470a24 --- /dev/null +++ b/artwork/compose-logo-name-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/artwork/compose-logo-name-white.svg b/artwork/compose-logo-name-white.svg new file mode 100644 index 00000000000..0a342b3bf7b --- /dev/null +++ b/artwork/compose-logo-name-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/artwork/compose-logo.png b/artwork/compose-logo.png index 5e4b3ce07b0..9c7967a84b1 100644 Binary files a/artwork/compose-logo.png and b/artwork/compose-logo.png differ diff --git a/artwork/compose-logo.svg b/artwork/compose-logo.svg index ade7a818507..d0d73d660be 100644 --- a/artwork/compose-logo.svg +++ b/artwork/compose-logo.svg @@ -1,177 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/benchmarks/desktop/gradle/wrapper/gradle-wrapper.properties b/benchmarks/desktop/gradle/wrapper/gradle-wrapper.properties index 622ab64a3cb..37f853b1c84 100644 --- a/benchmarks/desktop/gradle/wrapper/gradle-wrapper.properties +++ b/benchmarks/desktop/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/benchmarks/intellij/gradle/wrapper/gradle-wrapper.properties b/benchmarks/intellij/gradle/wrapper/gradle-wrapper.properties index 2e6e5897b52..37f853b1c84 100644 --- a/benchmarks/intellij/gradle/wrapper/gradle-wrapper.properties +++ b/benchmarks/intellij/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/benchmarks/ios/README.md b/benchmarks/ios/README.md index c75a8dc4fa7..d3e6cb10dd8 100644 --- a/benchmarks/ios/README.md +++ b/benchmarks/ios/README.md @@ -1 +1 @@ -Collection of test compose multiplatfom applications used for evaluating performance of Compose for iOS. \ No newline at end of file +### Moved to [multiplatform](https://github.com/JetBrains/compose-multiplatform/tree/master/benchmarks/multiplatform) \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/.gitignore b/benchmarks/ios/animation-from-template/.gitignore deleted file mode 100644 index 6e5f30477c5..00000000000 --- a/benchmarks/ios/animation-from-template/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx -iosApp/Podfile.lock -iosApp/Pods/* -iosApp/iosApp.xcworkspace/* -iosApp/iosApp.xcodeproj/* -!iosApp/iosApp.xcodeproj/project.pbxproj -shared/shared.podspec diff --git a/benchmarks/ios/animation-from-template/.run/desktopApp.run.xml b/benchmarks/ios/animation-from-template/.run/desktopApp.run.xml deleted file mode 100644 index 95395e11eef..00000000000 --- a/benchmarks/ios/animation-from-template/.run/desktopApp.run.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/LICENSE.txt b/benchmarks/ios/animation-from-template/LICENSE.txt deleted file mode 100644 index 244380c242e..00000000000 --- a/benchmarks/ios/animation-from-template/LICENSE.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2020-2021 JetBrains s.r.o. and and respective authors and developers. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/benchmarks/ios/animation-from-template/README.md b/benchmarks/ios/animation-from-template/README.md deleted file mode 100644 index 40718c389ca..00000000000 --- a/benchmarks/ios/animation-from-template/README.md +++ /dev/null @@ -1 +0,0 @@ -Infinite animation based on: https://github.com/JetBrains/compose-multiplatform-template \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/androidApp/build.gradle.kts b/benchmarks/ios/animation-from-template/androidApp/build.gradle.kts deleted file mode 100644 index b86596b3173..00000000000 --- a/benchmarks/ios/animation-from-template/androidApp/build.gradle.kts +++ /dev/null @@ -1,38 +0,0 @@ -plugins { - kotlin("multiplatform") - id("com.android.application") - id("org.jetbrains.compose") -} - -kotlin { - android() - sourceSets { - val androidMain by getting { - dependencies { - implementation(project(":shared")) - } - } - } -} - -android { - compileSdk = (findProperty("android.compileSdk") as String).toInt() - namespace = "com.myapplication" - - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - applicationId = "com.myapplication.MyApplication" - minSdk = (findProperty("android.minSdk") as String).toInt() - targetSdk = (findProperty("android.targetSdk") as String).toInt() - versionCode = 1 - versionName = "1.0" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlin { - jvmToolchain(11) - } -} diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/AndroidManifest.xml b/benchmarks/ios/animation-from-template/androidApp/src/androidMain/AndroidManifest.xml deleted file mode 100644 index bc7e8616968..00000000000 --- a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt b/benchmarks/ios/animation-from-template/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt deleted file mode 100644 index fd6e831ceb7..00000000000 --- a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.myapplication - -import MainView -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity - -class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - setContent { - MainView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/values/strings.xml b/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/values/strings.xml deleted file mode 100644 index 592270bf530..00000000000 --- a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - My application - \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/build.gradle.kts b/benchmarks/ios/animation-from-template/build.gradle.kts deleted file mode 100644 index b7e1d5d26ad..00000000000 --- a/benchmarks/ios/animation-from-template/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - // this is necessary to avoid the plugins to be loaded multiple times - // in each subproject's classloader - kotlin("multiplatform").apply(false) - id("com.android.application").apply(false) - id("com.android.library").apply(false) - id("org.jetbrains.compose").apply(false) -} diff --git a/benchmarks/ios/animation-from-template/cleanup.sh b/benchmarks/ios/animation-from-template/cleanup.sh deleted file mode 100755 index 62f9391b867..00000000000 --- a/benchmarks/ios/animation-from-template/cleanup.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -rm -rf .idea -./gradlew clean -rm -rf .gradle -rm -rf build -rm -rf */build -rm -rf iosApp/iosApp.xcworkspace -rm -rf iosApp/Pods -rm -rf iosApp/iosApp.xcodeproj/project.xcworkspace -rm -rf iosApp/iosApp.xcodeproj/xcuserdata diff --git a/benchmarks/ios/animation-from-template/desktopApp/build.gradle.kts b/benchmarks/ios/animation-from-template/desktopApp/build.gradle.kts deleted file mode 100644 index 931f3467a28..00000000000 --- a/benchmarks/ios/animation-from-template/desktopApp/build.gradle.kts +++ /dev/null @@ -1,30 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -kotlin { - jvm() - sourceSets { - val jvmMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":shared")) - } - } - } -} - -compose.desktop { - application { - mainClass = "MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "KotlinMultiplatformComposeDesktopApplication" - packageVersion = "1.0.0" - } - } -} diff --git a/benchmarks/ios/animation-from-template/desktopApp/src/jvmMain/kotlin/main.kt b/benchmarks/ios/animation-from-template/desktopApp/src/jvmMain/kotlin/main.kt deleted file mode 100644 index 5ffada98e15..00000000000 --- a/benchmarks/ios/animation-from-template/desktopApp/src/jvmMain/kotlin/main.kt +++ /dev/null @@ -1,8 +0,0 @@ -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - Window(onCloseRequest = ::exitApplication) { - MainView() - } -} \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/gradle.properties b/benchmarks/ios/animation-from-template/gradle.properties deleted file mode 100644 index 402848dbea3..00000000000 --- a/benchmarks/ios/animation-from-template/gradle.properties +++ /dev/null @@ -1,24 +0,0 @@ -#Gradle -org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" - -#Kotlin -kotlin.code.style=official - -#MPP -kotlin.mpp.stability.nowarn=true -kotlin.mpp.enableCInteropCommonization=true -kotlin.mpp.androidSourceSetLayoutVersion=2 - -#Compose -org.jetbrains.compose.experimental.uikit.enabled=true - -#Android -android.useAndroidX=true -android.compileSdk=33 -android.targetSdk=33 -android.minSdk=24 - -#Versions -kotlin.version=1.8.20 -agp.version=7.4.2 -compose.version=1.4.0 \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/gradle/wrapper/gradle-wrapper.jar b/benchmarks/ios/animation-from-template/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/benchmarks/ios/animation-from-template/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/benchmarks/ios/animation-from-template/gradle/wrapper/gradle-wrapper.properties b/benchmarks/ios/animation-from-template/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index e1bef7e873c..00000000000 --- a/benchmarks/ios/animation-from-template/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/benchmarks/ios/animation-from-template/gradlew b/benchmarks/ios/animation-from-template/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/benchmarks/ios/animation-from-template/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/benchmarks/ios/animation-from-template/iosApp/Configuration/Config.xcconfig b/benchmarks/ios/animation-from-template/iosApp/Configuration/Config.xcconfig deleted file mode 100644 index f3915978275..00000000000 --- a/benchmarks/ios/animation-from-template/iosApp/Configuration/Config.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -TEAM_ID= -BUNDLE_ID=com.myapplication.MyApplication -APP_NAME=My application diff --git a/benchmarks/ios/animation-from-template/iosApp/Podfile b/benchmarks/ios/animation-from-template/iosApp/Podfile deleted file mode 100644 index aff9c517b20..00000000000 --- a/benchmarks/ios/animation-from-template/iosApp/Podfile +++ /dev/null @@ -1,5 +0,0 @@ -target 'iosApp' do - use_frameworks! - platform :ios, '14.1' - pod 'shared', :path => '../shared' -end \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp.xcodeproj/project.pbxproj b/benchmarks/ios/animation-from-template/iosApp/iosApp.xcodeproj/project.pbxproj deleted file mode 100644 index df8fc264e74..00000000000 --- a/benchmarks/ios/animation-from-template/iosApp/iosApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,418 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXBuildFile section */ - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF7B242A565900829871 /* My application.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "My application.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F85CB1118929364A9C6EFABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 058557D7273AAEEB004C7B11 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 42799AB246E5F90AF97AA0EF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7555FF72242A565900829871 = { - isa = PBXGroup; - children = ( - AB1DB47929225F7C00F7AF9C /* Configuration */, - 7555FF7D242A565900829871 /* iosApp */, - 7555FF7C242A565900829871 /* Products */, - FEFF387C0A8D172AA4D59CAE /* Pods */, - 42799AB246E5F90AF97AA0EF /* Frameworks */, - ); - sourceTree = ""; - }; - 7555FF7C242A565900829871 /* Products */ = { - isa = PBXGroup; - children = ( - 7555FF7B242A565900829871 /* My application.app */, - ); - name = Products; - sourceTree = ""; - }; - 7555FF7D242A565900829871 /* iosApp */ = { - isa = PBXGroup; - children = ( - 058557BA273AAA24004C7B11 /* Assets.xcassets */, - 7555FF82242A565900829871 /* ContentView.swift */, - 7555FF8C242A565B00829871 /* Info.plist */, - 2152FB032600AC8F00CF470E /* iOSApp.swift */, - 058557D7273AAEEB004C7B11 /* Preview Content */, - ); - path = iosApp; - sourceTree = ""; - }; - AB1DB47929225F7C00F7AF9C /* Configuration */ = { - isa = PBXGroup; - children = ( - AB3632DC29227652001CCB65 /* Config.xcconfig */, - ); - path = Configuration; - sourceTree = ""; - }; - FEFF387C0A8D172AA4D59CAE /* Pods */ = { - isa = PBXGroup; - children = ( - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */, - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7555FF7A242A565900829871 /* iosApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; - buildPhases = ( - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */, - 7555FF77242A565900829871 /* Sources */, - 7555FF79242A565900829871 /* Resources */, - F85CB1118929364A9C6EFABC /* Frameworks */, - 2134C13603D0B299603D9F49 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iosApp; - productName = iosApp; - productReference = 7555FF7B242A565900829871 /* My application.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7555FF73242A565900829871 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = orgName; - TargetAttributes = { - 7555FF7A242A565900829871 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7555FF72242A565900829871; - productRefGroup = 7555FF7C242A565900829871 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7555FF7A242A565900829871 /* iosApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7555FF79242A565900829871 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 2134C13603D0B299603D9F49 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7555FF77242A565900829871 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, - 7555FF83242A565900829871 /* ContentView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7555FFA3242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7555FFA4242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7555FFA6242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7555FFA7242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA3242A565B00829871 /* Debug */, - 7555FFA4242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA6242A565B00829871 /* Debug */, - 7555FFA7242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7555FF73242A565900829871 /* Project object */; -} diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/ContentView.swift b/benchmarks/ios/animation-from-template/iosApp/iosApp/ContentView.swift deleted file mode 100644 index f7f6457b31a..00000000000 --- a/benchmarks/ios/animation-from-template/iosApp/iosApp/ContentView.swift +++ /dev/null @@ -1,21 +0,0 @@ -import UIKit -import SwiftUI -import shared - -struct ComposeView: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UIViewController { - Main_iosKt.MainViewController() - } - - func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} -} - -struct ContentView: View { - var body: some View { - ComposeView() - .ignoresSafeArea(.keyboard) // Compose has own keyboard handler - } -} - - - diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/Info.plist b/benchmarks/ios/animation-from-template/iosApp/iosApp/Info.plist deleted file mode 100644 index 9a269f5eaac..00000000000 --- a/benchmarks/ios/animation-from-template/iosApp/iosApp/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/iOSApp.swift b/benchmarks/ios/animation-from-template/iosApp/iosApp/iOSApp.swift deleted file mode 100644 index 0648e8602f2..00000000000 --- a/benchmarks/ios/animation-from-template/iosApp/iosApp/iOSApp.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -@main -struct iOSApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/settings.gradle.kts b/benchmarks/ios/animation-from-template/settings.gradle.kts deleted file mode 100644 index 56cae17dbc5..00000000000 --- a/benchmarks/ios/animation-from-template/settings.gradle.kts +++ /dev/null @@ -1,36 +0,0 @@ -rootProject.name = "MyApplication" - -include(":androidApp") -include(":shared") -include(":desktopApp") - -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - val agpVersion = extra["agp.version"] as String - val composeVersion = extra["compose.version"] as String - - kotlin("jvm").version(kotlinVersion) - kotlin("multiplatform").version(kotlinVersion) - kotlin("android").version(kotlinVersion) - - id("com.android.application").version(agpVersion) - id("com.android.library").version(agpVersion) - - id("org.jetbrains.compose").version(composeVersion) - } -} - -dependencyResolutionManagement { - repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } -} diff --git a/benchmarks/ios/animation-from-template/shared/build.gradle.kts b/benchmarks/ios/animation-from-template/shared/build.gradle.kts deleted file mode 100644 index 8e9b6dadf92..00000000000 --- a/benchmarks/ios/animation-from-template/shared/build.gradle.kts +++ /dev/null @@ -1,83 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("native.cocoapods") - id("com.android.library") - id("org.jetbrains.compose") -} - -kotlin { - android() - - jvm("desktop") - - iosX64() - iosArm64() - iosSimulatorArm64() - - cocoapods { - version = "1.0.0" - summary = "Some description for the Shared Module" - homepage = "Link to the Shared Module homepage" - ios.deploymentTarget = "14.1" - podfile = project.file("../iosApp/Podfile") - framework { - baseName = "shared" - isStatic = true - } - extraSpecAttributes["resources"] = "['src/commonMain/resources/**', 'src/iosMain/resources/**']" - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } - } - val androidMain by getting { - dependencies { - api("androidx.activity:activity-compose:1.6.1") - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.core:core-ktx:1.9.0") - } - } - val iosX64Main by getting - val iosArm64Main by getting - val iosSimulatorArm64Main by getting - val iosMain by creating { - dependsOn(commonMain) - iosX64Main.dependsOn(this) - iosArm64Main.dependsOn(this) - iosSimulatorArm64Main.dependsOn(this) - } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.common) - } - } - } -} - -android { - compileSdk = (findProperty("android.compileSdk") as String).toInt() - namespace = "com.myapplication.common" - - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - sourceSets["main"].res.srcDirs("src/androidMain/res") - sourceSets["main"].resources.srcDirs("src/commonMain/resources") - - defaultConfig { - minSdk = (findProperty("android.minSdk") as String).toInt() - targetSdk = (findProperty("android.targetSdk") as String).toInt() - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlin { - jvmToolchain(11) - } -} diff --git a/benchmarks/ios/animation-from-template/shared/src/androidMain/AndroidManifest.xml b/benchmarks/ios/animation-from-template/shared/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 568741e54f2..00000000000 --- a/benchmarks/ios/animation-from-template/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/shared/src/androidMain/kotlin/main.android.kt b/benchmarks/ios/animation-from-template/shared/src/androidMain/kotlin/main.android.kt deleted file mode 100644 index 4a1d2a6febd..00000000000 --- a/benchmarks/ios/animation-from-template/shared/src/androidMain/kotlin/main.android.kt +++ /dev/null @@ -1,3 +0,0 @@ -import androidx.compose.runtime.Composable - -@Composable fun MainView() = App() diff --git a/benchmarks/ios/animation-from-template/shared/src/commonMain/kotlin/App.kt b/benchmarks/ios/animation-from-template/shared/src/commonMain/kotlin/App.kt deleted file mode 100644 index 79ba129d7f5..00000000000 --- a/benchmarks/ios/animation-from-template/shared/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,42 +0,0 @@ -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.Image -import androidx.compose.foundation.MutatePriority -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.runtime.withFrameMillis -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource - -@OptIn(ExperimentalResourceApi::class) -@Composable -fun App() { - MaterialTheme { - var showImage by remember { mutableStateOf(false) } - LaunchedEffect(showImage) { - delay(200) - showImage = !showImage - } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - AnimatedVisibility(showImage) { - Image( - painterResource("compose-multiplatform.xml"), - null - ) - } - } - } -} diff --git a/benchmarks/ios/animation-from-template/shared/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/ios/animation-from-template/shared/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 190ff810fd9..00000000000 --- a/benchmarks/ios/animation-from-template/shared/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,4 +0,0 @@ -import androidx.compose.desktop.ui.tooling.preview.Preview -import androidx.compose.runtime.Composable - -@Composable fun MainView() = App() diff --git a/benchmarks/ios/animation-from-template/shared/src/iosMain/kotlin/main.ios.kt b/benchmarks/ios/animation-from-template/shared/src/iosMain/kotlin/main.ios.kt deleted file mode 100644 index fa143d45ce7..00000000000 --- a/benchmarks/ios/animation-from-template/shared/src/iosMain/kotlin/main.ios.kt +++ /dev/null @@ -1,3 +0,0 @@ -import androidx.compose.ui.window.ComposeUIViewController - -fun MainViewController() = ComposeUIViewController { App() } \ No newline at end of file diff --git a/benchmarks/ios/jvm-vs-kotlin-native/README.md b/benchmarks/ios/jvm-vs-kotlin-native/README.md index 2d3a57fa6a0..d3e6cb10dd8 100644 --- a/benchmarks/ios/jvm-vs-kotlin-native/README.md +++ b/benchmarks/ios/jvm-vs-kotlin-native/README.md @@ -1,8 +1 @@ -# Compose benchmarks for JVM vs Kotlin Native comparison - -## Run Desktop -- `./gradlew :run` - -## Run native on MacOS - - `./gradlew runReleaseExecutableMacosArm64` (Works on Arm64 processors) - - `./gradlew runReleaseExecutableMacosX64` (Works on Intel processors) +### Moved to [multiplatform](https://github.com/JetBrains/compose-multiplatform/tree/master/benchmarks/multiplatform) \ No newline at end of file diff --git a/benchmarks/ios/jvm-vs-kotlin-native/build.gradle.kts b/benchmarks/ios/jvm-vs-kotlin-native/build.gradle.kts deleted file mode 100644 index 2b4f81ce91a..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/build.gradle.kts +++ /dev/null @@ -1,83 +0,0 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -version = "1.0-SNAPSHOT" - -repositories { - mavenLocal() - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") -} - -kotlin { - jvm("desktop") - macosX64 { - binaries { - executable { - entryPoint = "main" - freeCompilerArgs += listOf( - "-linker-option", "-framework", "-linker-option", "Metal" - ) - } - } - } - macosArm64 { - binaries { - executable { - entryPoint = "main" - freeCompilerArgs += listOf( - "-linker-option", "-framework", "-linker-option", "Metal" - ) - } - } - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.ui) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.runtime) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } - } - - val desktopMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - runtimeOnly("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.7.1") - } - } - - val nativeMain by creating { - dependsOn(commonMain) - } - val macosMain by creating { - dependsOn(nativeMain) - } - val macosX64Main by getting { - dependsOn(macosMain) - } - val macosArm64Main by getting { - dependsOn(macosMain) - } - } -} - -compose.desktop { - application { - mainClass = "Main_desktopKt" - } -} - -tasks.withType { - kotlinOptions.jvmTarget = "11" -} - diff --git a/benchmarks/ios/jvm-vs-kotlin-native/gradle.properties b/benchmarks/ios/jvm-vs-kotlin-native/gradle.properties deleted file mode 100644 index ea3799cf6ba..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/gradle.properties +++ /dev/null @@ -1,16 +0,0 @@ -compose.version=1.4.1 -kotlin.version=1.8.20 -agp.version=7.0.4 -org.gradle.jvmargs=-Xmx3g -kotlin.code.style=official -kotlin.native.useEmbeddableCompilerJar=true -kotlin.native.enableDependencyPropagation=false -kotlin.mpp.enableGranularSourceSetsMetadata=true -# Enable kotlin/native experimental memory model -kotlin.native.binary.memoryModel=experimental -compose.desktop.verbose=true -android.useAndroidX=true -kotlin.js.webpack.major.version=4 -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.macos.enabled=true -org.jetbrains.compose.experimental.uikit.enabled=true diff --git a/benchmarks/ios/jvm-vs-kotlin-native/gradle/wrapper/gradle-wrapper.properties b/benchmarks/ios/jvm-vs-kotlin-native/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index ae04661ee73..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/benchmarks/ios/jvm-vs-kotlin-native/gradlew.bat b/benchmarks/ios/jvm-vs-kotlin-native/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/benchmarks/ios/jvm-vs-kotlin-native/settings.gradle.kts b/benchmarks/ios/jvm-vs-kotlin-native/settings.gradle.kts deleted file mode 100644 index b39db44fad8..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/settings.gradle.kts +++ /dev/null @@ -1,18 +0,0 @@ -pluginManagement { - repositories { - mavenLocal() - mavenCentral() - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - kotlin("multiplatform").version(kotlinVersion) - val composeVersion = extra["compose.version"] as String - id("org.jetbrains.compose").version(composeVersion) - } -} - -rootProject.name = "compose-benchmarks" diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/Benchmarks.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/Benchmarks.kt deleted file mode 100644 index 00414f67a8b..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/Benchmarks.kt +++ /dev/null @@ -1,14 +0,0 @@ -import androidx.compose.runtime.Composable -import benchmarks.animation.AnimatedVisibility -import benchmarks.lazygrid.LazyGrid -import benchmarks.visualeffects.NYContent - -fun runBenchmark(name: String, frameCount: Int, content: @Composable () -> Unit) { - println("$name: " + measureComposable(frameCount, content)) -} - -fun runBenchmarks() { - runBenchmark("AnimatedVisibility", 1000000) { AnimatedVisibility() } - runBenchmark("LazyGrid",2000) { LazyGrid() } - runBenchmark("VisualEffects",1000) { NYContent() } -} \ No newline at end of file diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/MeasureComposable.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/MeasureComposable.kt deleted file mode 100644 index 6b11a8f8425..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/MeasureComposable.kt +++ /dev/null @@ -1,33 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.ui.ComposeScene -import androidx.compose.ui.unit.Constraints -import kotlin.time.Duration -import kotlin.time.ExperimentalTime - -const val width = 640 -const val height = 480 - -const val nanosPerSecond = 1E9.toLong() -const val nanosPerFrame = (0.16 * nanosPerSecond).toLong() - -@OptIn(ExperimentalTime::class) -fun measureComposable( - frameCount: Int = 1000, - content: @Composable () -> Unit -): Duration { - val scene = ComposeScene() - try { - scene.setContent(content) - scene.constraints = Constraints.fixed(width, height) - val surface = org.jetbrains.skia.Surface.makeNull(width, height) - return kotlin.time.measureTime { - var nanoTime = 0L - repeat(frameCount) { - scene.render(surface.canvas, nanoTime) - nanoTime += nanosPerFrame - } - } - } finally { - scene.close() - } -} diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt deleted file mode 100644 index ea3144ff18a..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt +++ /dev/null @@ -1,38 +0,0 @@ -package benchmarks.animation - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import kotlinx.coroutines.delay -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource - -@OptIn(ExperimentalResourceApi::class) -@Composable -fun AnimatedVisibility() { - MaterialTheme { - var showImage by remember { mutableStateOf(false) } - LaunchedEffect(showImage) { - delay(200) - showImage = !showImage - } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - AnimatedVisibility(showImage) { - Image( - painterResource("compose-multiplatform.xml"), - null - ) - } - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt deleted file mode 100644 index 386630f9a07..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt +++ /dev/null @@ -1,106 +0,0 @@ -package benchmarks.lazygrid - -import androidx.compose.foundation.gestures.scrollBy -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.grid.GridCells -import androidx.compose.foundation.lazy.grid.LazyVerticalGrid -import androidx.compose.foundation.lazy.grid.items -import androidx.compose.foundation.lazy.grid.rememberLazyGridState -import androidx.compose.material.Card -import androidx.compose.material.Checkbox -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.runtime.withFrameMillis -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.semantics.contentDescription -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp - -@Composable -fun LazyGrid() { - val itemCount = 12000 - val entries = remember {List(itemCount) { Entry("$it") }} - val state = rememberLazyGridState() - - var smoothScroll by remember { mutableStateOf(false)} - - MaterialTheme { - Column { - Row { - Checkbox( - checked = smoothScroll, - onCheckedChange = { value -> smoothScroll = value} - ) - Text (text = "Smooth scroll", modifier = Modifier.align(Alignment.CenterVertically)) - } - - LazyVerticalGrid( - columns = GridCells.Fixed(4), - modifier = Modifier.fillMaxWidth().semantics { contentDescription = "IamLazy" }, - state = state - ) { - items(entries) { - ListCell(it) - } - } - } - - } - - var curItem by remember { mutableStateOf(0) } - var direct by remember { mutableStateOf(true) } - if (smoothScroll) { - LaunchedEffect(Unit) { - while (smoothScroll) { - withFrameMillis { } - curItem = state.firstVisibleItemIndex - if (curItem == 0) direct = true - if (curItem > itemCount - 100) direct = false - state.scrollBy(if (direct) 5f else -5f) - } - } - } else { - LaunchedEffect(curItem) { - withFrameMillis { } - curItem += if (direct) 50 else -50 - if (curItem >= itemCount) { - direct = false - curItem = itemCount - 1 - } else if (curItem <= 0) { - direct = true - curItem = 0 - } - state.scrollToItem(curItem) - } - } - -} - -data class Entry(val contents: String) - -@Composable -private fun ListCell(entry: Entry) { - Card( - modifier = Modifier - .fillMaxWidth() - .padding(8.dp) - ) { - Text( - text = entry.contents, - textAlign = TextAlign.Center, - style = MaterialTheme.typography.h5, - modifier = Modifier.padding(16.dp) - ) - } -} \ No newline at end of file diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt deleted file mode 100644 index 0d13bb4ecf1..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt +++ /dev/null @@ -1,323 +0,0 @@ -package benchmarks.visualeffects - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Surface -import androidx.compose.runtime.* -import androidx.compose.runtime.snapshots.SnapshotStateList -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.* -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import height -import width - -import kotlin.math.* -import kotlin.random.Random - -const val snowCount = 80 -const val starCount = 60 -const val rocketPartsCount = 30 - -data class SnowFlake( - var x: Dp, - var y: Dp, - val scale: Float, - var v: Double, - var alpha: Float, - var angle: Float, - var rotate: Int, - var phase: Double -) - -data class Star(val x: Dp, val y: Dp, val color: Color, val size: Dp) - -val random = Random(123) - -fun random(): Float = random.nextFloat() - -class DoubleRocket(val particle: Particle) { - private val STATE_ROCKET = 0 - private val STATE_SMALL_ROCKETS = 1 - var state = STATE_ROCKET - var rockets: Array = emptyArray() - private fun checkState(time: Long) { - if (particle.vy > -3.0 && state == STATE_ROCKET) { - explode(time) - } - if (state == STATE_SMALL_ROCKETS) { - var done = true - rockets.forEach { - if (!it.exploded) { - it.checkExplode(time) - } - if (!it.checkDone()) { - done = false - } - } - if (done) { - reset() - } - } - } - - private fun reset() { - state = STATE_ROCKET - particle.x = 0.0 - particle.y = 1000.0 - particle.vx = 2.1 - particle.vy = -12.5 - } - - private fun explode(time: Long) { - val colors = arrayOf(Color(0xff, 0, 0), Color(192, 255, 192), Color(192, 212, 255)) - rockets = Array(7) { - val v = 1.2f + 1.0 * random() - val angle = 2 * PI * random() - Rocket( - Particle( - particle.x, - particle.y, - v * sin(angle) + particle.vx, - v * cos(angle) + particle.vy - 0.5f, - colors[it % colors.size] - ), colors[it % colors.size], time - ) - } - state = STATE_SMALL_ROCKETS - } - - fun move(time: Long, prevTime: Long) { - if (rocket.state == rocket.STATE_ROCKET) { - rocket.particle.move(time, prevTime) - rocket.particle.gravity(time, prevTime) - } else { - rocket.rockets.forEach { - it.move(time, prevTime) - } - } - rocket.checkState(time) - } - - @Composable - fun draw() { - if (state == rocket.STATE_ROCKET) { - particle.draw() - } else { - rockets.forEach { - it.draw() - } - } - } - -} - -class Rocket(val particle: Particle, val color: Color, val startTime: Long = 0) { - var exploded = false - var parts: Array = emptyArray() - - fun checkExplode(time: Long) { - if (time - startTime > 1200000000) { - explode() - } - } - - private fun explode() { - parts = Array(rocketPartsCount) { - val v = 0.5f + 1.5 * random() - val angle = 2 * PI * random() - Particle(particle.x, particle.y, v * sin(angle) + particle.vx, v * cos(angle) + particle.vy, color, 1) - } - exploded = true - } - - fun checkDone(): Boolean { - if (!exploded) return false - parts.forEach { - if (it.y < 800) return false - } - return true - } - - fun move(time: Long, prevTime: Long) { - if (!exploded) { - particle.move(time, prevTime) - particle.gravity(time, prevTime) - checkExplode(time) - } else { - parts.forEach { - it.move(time, prevTime) - it.gravity(time, prevTime) - } - } - } - - @Composable - fun draw() { - if (!exploded) { - particle.draw() - } else { - parts.forEach { - it.draw() - } - } - } -} - -class Particle(var x: Double, var y: Double, var vx: Double, var vy: Double, val color: Color, val type: Int = 0) { - fun move(time: Long, prevTime: Long) { - x = (x + vx * (time - prevTime) / 30000000) - y = (y + vy * (time - prevTime) / 30000000) - } - - fun gravity(time: Long, prevTime: Long) { - vy = vy + 1.0f * (time - prevTime) / 300000000 - } - - @Composable - fun draw() { - val alphaFactor = if (type == 0) 1.0f else 1 / (1 + abs(vy / 5)).toFloat() - Box(Modifier.size(5.dp).offset(x.dp, y.dp).alpha(alphaFactor).clip(CircleShape).background(color)) - for (i in 1..5) { - Box( - Modifier.size(4.dp).offset((x - vx / 2 * i).dp, (y - vy / 2 * i).dp) - .alpha(alphaFactor * (1 - 0.18f * i)).clip(CircleShape).background(color) - ) - } - } -} - -val rocket = DoubleRocket(Particle(0.0, 1000.0, 2.1, -12.5, Color.White)) - -fun prepareStarsAndSnowFlakes(stars: SnapshotStateList, snowFlakes: SnapshotStateList) { - for (i in 0..snowCount) { - snowFlakes.add( - SnowFlake( - (50 + (width - 50) * random()).dp, - (height * random()).dp, - 0.1f + 0.2f * random(), - 1.5 + 3 * random(), - (0.4f + 0.4 * random()).toFloat(), - 60 * random(), - Random.nextInt(1, 5) - 3, - random() * 2 * PI - ) - ) - } - val colors = arrayOf(Color.Red, Color.Yellow, Color.Green, Color.Yellow, Color.Cyan, Color.Magenta, Color.White) - for (i in 0..starCount) { - stars.add( - Star( - (width * random()).dp, - (height * random()).dp, - colors[Random.nextInt(colors.size)], - (3 + 5 * random()).dp - ) - ) - } -} - -@Composable -fun NYContent() { - var time by remember { mutableStateOf(0L) } - val startTime = remember { 0L } - var prevTime by remember { mutableStateOf(0L) } - val snowFlakes = remember { mutableStateListOf() } - val stars = remember { mutableStateListOf() } - var flickering2 by remember { mutableStateOf(true) } - remember { prepareStarsAndSnowFlakes(stars, snowFlakes) } - - Surface( - modifier = Modifier.fillMaxSize().padding(5.dp).shadow(3.dp, RoundedCornerShape(20.dp)), - color = Color.Black, - shape = RoundedCornerShape(20.dp) - ) { - - LaunchedEffect(Unit) { - while (true) { - withFrameNanos { - prevTime = time - time = it - } - } - } - - if (flickering2) { - if (time - startTime > 15500000000) { //note, that startTime has been updated above - flickering2 = false - } - } - - rocket.move(time, prevTime) - - Box(Modifier.fillMaxSize()) { - - snow(time, prevTime, snowFlakes, startTime) - - starrySky(stars) - - rocket.draw() - - } - } -} - - -@Composable -fun starrySky(stars: SnapshotStateList) { - stars.forEach { - star(it.x, it.y, it.color, size = it.size) - } -} - -@Composable -fun star(x: Dp, y: Dp, color: Color = Color.White, size: Dp) { - Box(Modifier.offset(x, y).scale(1.0f, 0.2f).rotate(45f).size(size).background(color)) - Box(Modifier.offset(x, y).scale(0.2f, 1.0f).rotate(45f).size(size).background(color)) -} - -@Composable -fun snow(time: Long, prevTime: Long, snowFlakes: SnapshotStateList, startTime: Long) { - val deltaAngle = (time - startTime) / 100000000 - with(LocalDensity.current) { - snowFlakes.forEach { - var y = it.y + ((it.v * (time - prevTime)) / 300000000).dp - if (y > (height + 20).dp) { - y = -20.dp - } - it.y = y - val x = it.x + (15 * sin(time.toDouble() / 3000000000 + it.phase)).dp - snowFlake(Modifier.offset(x, y).scale(it.scale).rotate(it.angle + deltaAngle * it.rotate), it.alpha) - } - } -} - -@Composable -fun snowFlake(modifier: Modifier, alpha: Float = 0.8f) { - Box(modifier) { - snowFlakeInt(0, 0f, 30.dp, 0.dp, alpha) - snowFlakeInt(0, 60f, 15.dp, 25.dp, alpha) - snowFlakeInt(0, 120f, -15.dp, 25.dp, alpha) - snowFlakeInt(0, 180f, -30.dp, 0.dp, alpha) - snowFlakeInt(0, 240f, -15.dp, -25.dp, alpha) - snowFlakeInt(0, 300f, 15.dp, -25.dp, alpha) - } - -} - -@Composable -fun snowFlakeInt(level: Int, angle: Float, shiftX: Dp, shiftY: Dp, alpha: Float) { - if (level > 3) return - Box( - Modifier.offset(shiftX, shiftY).rotate(angle).width(100.dp).height(10.dp).scale(0.6f).alpha(1f) - .background(Color.White.copy(alpha = alpha)) - ) { - snowFlakeInt(level + 1, 30f, 12.dp, 20.dp, alpha * 0.8f) - snowFlakeInt(level + 1, -30f, 12.dp, -20.dp, alpha * 0.8f) - } -} - diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 6d1367a1a87..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.runBlocking - -fun main() = runBlocking(Dispatchers.Main) { runBenchmarks() } diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/macosMain/kotlin/main.macos.kt b/benchmarks/ios/jvm-vs-kotlin-native/src/macosMain/kotlin/main.macos.kt deleted file mode 100644 index a78976e73a0..00000000000 --- a/benchmarks/ios/jvm-vs-kotlin-native/src/macosMain/kotlin/main.macos.kt +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -fun main() = runBenchmarks() diff --git a/benchmarks/ios/scroll-lazy-grid/.gitignore b/benchmarks/ios/scroll-lazy-grid/.gitignore deleted file mode 100644 index 6e5f30477c5..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx -iosApp/Podfile.lock -iosApp/Pods/* -iosApp/iosApp.xcworkspace/* -iosApp/iosApp.xcodeproj/* -!iosApp/iosApp.xcodeproj/project.pbxproj -shared/shared.podspec diff --git a/benchmarks/ios/scroll-lazy-grid/.run/desktopApp.run.xml b/benchmarks/ios/scroll-lazy-grid/.run/desktopApp.run.xml deleted file mode 100644 index 95395e11eef..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/.run/desktopApp.run.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/LICENSE.txt b/benchmarks/ios/scroll-lazy-grid/LICENSE.txt deleted file mode 100644 index 244380c242e..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/LICENSE.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2020-2021 JetBrains s.r.o. and and respective authors and developers. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/benchmarks/ios/scroll-lazy-grid/README.md b/benchmarks/ios/scroll-lazy-grid/README.md deleted file mode 100644 index beb03aa03c9..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/README.md +++ /dev/null @@ -1 +0,0 @@ -A benchmark app extracted from https://github.com/androidx/androidx/blob/androidx-main/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/LazyVerticalGridActivity.kt diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/build.gradle.kts b/benchmarks/ios/scroll-lazy-grid/androidApp/build.gradle.kts deleted file mode 100644 index b86596b3173..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/build.gradle.kts +++ /dev/null @@ -1,38 +0,0 @@ -plugins { - kotlin("multiplatform") - id("com.android.application") - id("org.jetbrains.compose") -} - -kotlin { - android() - sourceSets { - val androidMain by getting { - dependencies { - implementation(project(":shared")) - } - } - } -} - -android { - compileSdk = (findProperty("android.compileSdk") as String).toInt() - namespace = "com.myapplication" - - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - applicationId = "com.myapplication.MyApplication" - minSdk = (findProperty("android.minSdk") as String).toInt() - targetSdk = (findProperty("android.targetSdk") as String).toInt() - versionCode = 1 - versionName = "1.0" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlin { - jvmToolchain(11) - } -} diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/AndroidManifest.xml b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/AndroidManifest.xml deleted file mode 100644 index bc7e8616968..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt deleted file mode 100644 index fd6e831ceb7..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.myapplication - -import MainView -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity - -class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - setContent { - MainView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9cbf1..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index eca70cfe52e..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cfe52e..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a571e60098c..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 61da551c559..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c41dd285319..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index db5080a7527..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 6dba46dab19..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index da31a871c8d..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 15ac681720f..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index b216f2d313c..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f25a4197447..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index e96783ccce8..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/values/strings.xml b/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/values/strings.xml deleted file mode 100644 index 592270bf530..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - My application - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/build.gradle.kts b/benchmarks/ios/scroll-lazy-grid/build.gradle.kts deleted file mode 100644 index b7e1d5d26ad..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - // this is necessary to avoid the plugins to be loaded multiple times - // in each subproject's classloader - kotlin("multiplatform").apply(false) - id("com.android.application").apply(false) - id("com.android.library").apply(false) - id("org.jetbrains.compose").apply(false) -} diff --git a/benchmarks/ios/scroll-lazy-grid/cleanup.sh b/benchmarks/ios/scroll-lazy-grid/cleanup.sh deleted file mode 100755 index 62f9391b867..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/cleanup.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -rm -rf .idea -./gradlew clean -rm -rf .gradle -rm -rf build -rm -rf */build -rm -rf iosApp/iosApp.xcworkspace -rm -rf iosApp/Pods -rm -rf iosApp/iosApp.xcodeproj/project.xcworkspace -rm -rf iosApp/iosApp.xcodeproj/xcuserdata diff --git a/benchmarks/ios/scroll-lazy-grid/desktopApp/build.gradle.kts b/benchmarks/ios/scroll-lazy-grid/desktopApp/build.gradle.kts deleted file mode 100644 index 931f3467a28..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/desktopApp/build.gradle.kts +++ /dev/null @@ -1,30 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -kotlin { - jvm() - sourceSets { - val jvmMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":shared")) - } - } - } -} - -compose.desktop { - application { - mainClass = "MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "KotlinMultiplatformComposeDesktopApplication" - packageVersion = "1.0.0" - } - } -} diff --git a/benchmarks/ios/scroll-lazy-grid/desktopApp/src/jvmMain/kotlin/main.kt b/benchmarks/ios/scroll-lazy-grid/desktopApp/src/jvmMain/kotlin/main.kt deleted file mode 100644 index 5ffada98e15..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/desktopApp/src/jvmMain/kotlin/main.kt +++ /dev/null @@ -1,8 +0,0 @@ -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - Window(onCloseRequest = ::exitApplication) { - MainView() - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/gradle.properties b/benchmarks/ios/scroll-lazy-grid/gradle.properties deleted file mode 100644 index 402848dbea3..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/gradle.properties +++ /dev/null @@ -1,24 +0,0 @@ -#Gradle -org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" - -#Kotlin -kotlin.code.style=official - -#MPP -kotlin.mpp.stability.nowarn=true -kotlin.mpp.enableCInteropCommonization=true -kotlin.mpp.androidSourceSetLayoutVersion=2 - -#Compose -org.jetbrains.compose.experimental.uikit.enabled=true - -#Android -android.useAndroidX=true -android.compileSdk=33 -android.targetSdk=33 -android.minSdk=24 - -#Versions -kotlin.version=1.8.20 -agp.version=7.4.2 -compose.version=1.4.0 \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/gradle/wrapper/gradle-wrapper.jar b/benchmarks/ios/scroll-lazy-grid/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/gradle/wrapper/gradle-wrapper.properties b/benchmarks/ios/scroll-lazy-grid/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index e1bef7e873c..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/benchmarks/ios/scroll-lazy-grid/gradlew b/benchmarks/ios/scroll-lazy-grid/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/benchmarks/ios/scroll-lazy-grid/gradlew.bat b/benchmarks/ios/scroll-lazy-grid/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/Configuration/Config.xcconfig b/benchmarks/ios/scroll-lazy-grid/iosApp/Configuration/Config.xcconfig deleted file mode 100644 index f3915978275..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/Configuration/Config.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -TEAM_ID= -BUNDLE_ID=com.myapplication.MyApplication -APP_NAME=My application diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/Podfile b/benchmarks/ios/scroll-lazy-grid/iosApp/Podfile deleted file mode 100644 index aff9c517b20..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/Podfile +++ /dev/null @@ -1,5 +0,0 @@ -target 'iosApp' do - use_frameworks! - platform :ios, '14.1' - pod 'shared', :path => '../shared' -end \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp.xcodeproj/project.pbxproj b/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp.xcodeproj/project.pbxproj deleted file mode 100644 index c888c0443ce..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,400 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXBuildFile section */ - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF7B242A565900829871 /* My application.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "My application.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F85CB1118929364A9C6EFABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 058557D7273AAEEB004C7B11 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 42799AB246E5F90AF97AA0EF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7555FF72242A565900829871 = { - isa = PBXGroup; - children = ( - AB1DB47929225F7C00F7AF9C /* Configuration */, - 7555FF7D242A565900829871 /* iosApp */, - 7555FF7C242A565900829871 /* Products */, - FEFF387C0A8D172AA4D59CAE /* Pods */, - 42799AB246E5F90AF97AA0EF /* Frameworks */, - ); - sourceTree = ""; - }; - 7555FF7C242A565900829871 /* Products */ = { - isa = PBXGroup; - children = ( - 7555FF7B242A565900829871 /* My application.app */, - ); - name = Products; - sourceTree = ""; - }; - 7555FF7D242A565900829871 /* iosApp */ = { - isa = PBXGroup; - children = ( - 058557BA273AAA24004C7B11 /* Assets.xcassets */, - 7555FF82242A565900829871 /* ContentView.swift */, - 7555FF8C242A565B00829871 /* Info.plist */, - 2152FB032600AC8F00CF470E /* iOSApp.swift */, - 058557D7273AAEEB004C7B11 /* Preview Content */, - ); - path = iosApp; - sourceTree = ""; - }; - AB1DB47929225F7C00F7AF9C /* Configuration */ = { - isa = PBXGroup; - children = ( - AB3632DC29227652001CCB65 /* Config.xcconfig */, - ); - path = Configuration; - sourceTree = ""; - }; - FEFF387C0A8D172AA4D59CAE /* Pods */ = { - isa = PBXGroup; - children = ( - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */, - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7555FF7A242A565900829871 /* iosApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; - buildPhases = ( - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */, - 7555FF77242A565900829871 /* Sources */, - 7555FF79242A565900829871 /* Resources */, - F85CB1118929364A9C6EFABC /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iosApp; - productName = iosApp; - productReference = 7555FF7B242A565900829871 /* My application.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7555FF73242A565900829871 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = orgName; - TargetAttributes = { - 7555FF7A242A565900829871 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7555FF72242A565900829871; - productRefGroup = 7555FF7C242A565900829871 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7555FF7A242A565900829871 /* iosApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7555FF79242A565900829871 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7555FF77242A565900829871 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, - 7555FF83242A565900829871 /* ContentView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7555FFA3242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7555FFA4242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7555FFA6242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7555FFA7242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA3242A565B00829871 /* Debug */, - 7555FFA4242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA6242A565B00829871 /* Debug */, - 7555FFA7242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7555FF73242A565900829871 /* Project object */; -} diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 8edf56e7a97..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "images" : [ - { - "filename" : "app-icon-1024.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png b/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png deleted file mode 100644 index 53fc536fb9a..00000000000 Binary files a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/ContentView.swift b/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/ContentView.swift deleted file mode 100644 index f7f6457b31a..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/ContentView.swift +++ /dev/null @@ -1,21 +0,0 @@ -import UIKit -import SwiftUI -import shared - -struct ComposeView: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UIViewController { - Main_iosKt.MainViewController() - } - - func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} -} - -struct ContentView: View { - var body: some View { - ComposeView() - .ignoresSafeArea(.keyboard) // Compose has own keyboard handler - } -} - - - diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Info.plist b/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Info.plist deleted file mode 100644 index 9a269f5eaac..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/iOSApp.swift b/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/iOSApp.swift deleted file mode 100644 index 0648e8602f2..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/iOSApp.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -@main -struct iOSApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/settings.gradle.kts b/benchmarks/ios/scroll-lazy-grid/settings.gradle.kts deleted file mode 100644 index 56cae17dbc5..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/settings.gradle.kts +++ /dev/null @@ -1,36 +0,0 @@ -rootProject.name = "MyApplication" - -include(":androidApp") -include(":shared") -include(":desktopApp") - -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - val agpVersion = extra["agp.version"] as String - val composeVersion = extra["compose.version"] as String - - kotlin("jvm").version(kotlinVersion) - kotlin("multiplatform").version(kotlinVersion) - kotlin("android").version(kotlinVersion) - - id("com.android.application").version(agpVersion) - id("com.android.library").version(agpVersion) - - id("org.jetbrains.compose").version(composeVersion) - } -} - -dependencyResolutionManagement { - repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } -} diff --git a/benchmarks/ios/scroll-lazy-grid/shared/build.gradle.kts b/benchmarks/ios/scroll-lazy-grid/shared/build.gradle.kts deleted file mode 100644 index 8e9b6dadf92..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/shared/build.gradle.kts +++ /dev/null @@ -1,83 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("native.cocoapods") - id("com.android.library") - id("org.jetbrains.compose") -} - -kotlin { - android() - - jvm("desktop") - - iosX64() - iosArm64() - iosSimulatorArm64() - - cocoapods { - version = "1.0.0" - summary = "Some description for the Shared Module" - homepage = "Link to the Shared Module homepage" - ios.deploymentTarget = "14.1" - podfile = project.file("../iosApp/Podfile") - framework { - baseName = "shared" - isStatic = true - } - extraSpecAttributes["resources"] = "['src/commonMain/resources/**', 'src/iosMain/resources/**']" - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } - } - val androidMain by getting { - dependencies { - api("androidx.activity:activity-compose:1.6.1") - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.core:core-ktx:1.9.0") - } - } - val iosX64Main by getting - val iosArm64Main by getting - val iosSimulatorArm64Main by getting - val iosMain by creating { - dependsOn(commonMain) - iosX64Main.dependsOn(this) - iosArm64Main.dependsOn(this) - iosSimulatorArm64Main.dependsOn(this) - } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.common) - } - } - } -} - -android { - compileSdk = (findProperty("android.compileSdk") as String).toInt() - namespace = "com.myapplication.common" - - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - sourceSets["main"].res.srcDirs("src/androidMain/res") - sourceSets["main"].resources.srcDirs("src/commonMain/resources") - - defaultConfig { - minSdk = (findProperty("android.minSdk") as String).toInt() - targetSdk = (findProperty("android.targetSdk") as String).toInt() - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlin { - jvmToolchain(11) - } -} diff --git a/benchmarks/ios/scroll-lazy-grid/shared/src/androidMain/AndroidManifest.xml b/benchmarks/ios/scroll-lazy-grid/shared/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 568741e54f2..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/shared/src/androidMain/kotlin/main.android.kt b/benchmarks/ios/scroll-lazy-grid/shared/src/androidMain/kotlin/main.android.kt deleted file mode 100644 index 4a1d2a6febd..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/shared/src/androidMain/kotlin/main.android.kt +++ /dev/null @@ -1,3 +0,0 @@ -import androidx.compose.runtime.Composable - -@Composable fun MainView() = App() diff --git a/benchmarks/ios/scroll-lazy-grid/shared/src/commonMain/kotlin/App.kt b/benchmarks/ios/scroll-lazy-grid/shared/src/commonMain/kotlin/App.kt deleted file mode 100644 index b89f8ca4512..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/shared/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,104 +0,0 @@ -import androidx.compose.foundation.gestures.scrollBy -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.grid.GridCells -import androidx.compose.foundation.lazy.grid.LazyVerticalGrid -import androidx.compose.foundation.lazy.grid.items -import androidx.compose.foundation.lazy.grid.rememberLazyGridState -import androidx.compose.material.Card -import androidx.compose.material.Checkbox -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.runtime.withFrameMillis -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.semantics.contentDescription -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp - -@Composable -fun App() { - val itemCount = 12000 - val entries = remember {List(itemCount) { Entry("$it") }} - val state = rememberLazyGridState() - - var smoothScroll by remember { mutableStateOf(false)} - - MaterialTheme { - Column { - Row { - Checkbox( - checked = smoothScroll, - onCheckedChange = { value -> smoothScroll = value} - ) - Text (text = "Smooth scroll", modifier = Modifier.align(Alignment.CenterVertically)) - } - - LazyVerticalGrid( - columns = GridCells.Fixed(4), - modifier = Modifier.fillMaxWidth().semantics { contentDescription = "IamLazy" }, - state = state - ) { - items(entries) { - ListCell(it) - } - } - } - - } - - var curItem by remember { mutableStateOf(0) } - var direct by remember { mutableStateOf(true) } - if (smoothScroll) { - LaunchedEffect(Unit) { - while (smoothScroll) { - withFrameMillis { } - curItem = state.firstVisibleItemIndex - if (curItem == 0) direct = true - if (curItem > itemCount - 100) direct = false - state.scrollBy(if (direct) 5f else -5f) - } - } - } else { - LaunchedEffect(curItem) { - withFrameMillis { } - curItem += if (direct) 50 else -50 - if (curItem >= itemCount) { - direct = false - curItem = itemCount - 1 - } else if (curItem <= 0) { - direct = true - curItem = 0 - } - state.scrollToItem(curItem) - } - } - -} - -data class Entry(val contents: String) - -@Composable -private fun ListCell(entry: Entry) { - Card( - modifier = Modifier - .fillMaxWidth() - .padding(8.dp) - ) { - Text( - text = entry.contents, - textAlign = TextAlign.Center, - style = MaterialTheme.typography.h5, - modifier = Modifier.padding(16.dp) - ) - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-grid/shared/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/ios/scroll-lazy-grid/shared/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 190ff810fd9..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/shared/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,4 +0,0 @@ -import androidx.compose.desktop.ui.tooling.preview.Preview -import androidx.compose.runtime.Composable - -@Composable fun MainView() = App() diff --git a/benchmarks/ios/scroll-lazy-grid/shared/src/iosMain/kotlin/main.ios.kt b/benchmarks/ios/scroll-lazy-grid/shared/src/iosMain/kotlin/main.ios.kt deleted file mode 100644 index fa143d45ce7..00000000000 --- a/benchmarks/ios/scroll-lazy-grid/shared/src/iosMain/kotlin/main.ios.kt +++ /dev/null @@ -1,3 +0,0 @@ -import androidx.compose.ui.window.ComposeUIViewController - -fun MainViewController() = ComposeUIViewController { App() } \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/.gitignore b/benchmarks/ios/scroll-lazy-list/.gitignore deleted file mode 100644 index 6e5f30477c5..00000000000 --- a/benchmarks/ios/scroll-lazy-list/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx -iosApp/Podfile.lock -iosApp/Pods/* -iosApp/iosApp.xcworkspace/* -iosApp/iosApp.xcodeproj/* -!iosApp/iosApp.xcodeproj/project.pbxproj -shared/shared.podspec diff --git a/benchmarks/ios/scroll-lazy-list/.run/desktopApp.run.xml b/benchmarks/ios/scroll-lazy-list/.run/desktopApp.run.xml deleted file mode 100644 index 54bb5c1c5ae..00000000000 --- a/benchmarks/ios/scroll-lazy-list/.run/desktopApp.run.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/LICENSE.txt b/benchmarks/ios/scroll-lazy-list/LICENSE.txt deleted file mode 100644 index 244380c242e..00000000000 --- a/benchmarks/ios/scroll-lazy-list/LICENSE.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2020-2021 JetBrains s.r.o. and and respective authors and developers. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/benchmarks/ios/scroll-lazy-list/README.md b/benchmarks/ios/scroll-lazy-list/README.md deleted file mode 100644 index 713e51556ca..00000000000 --- a/benchmarks/ios/scroll-lazy-list/README.md +++ /dev/null @@ -1,3 +0,0 @@ -A benchmark app extracted from the sample described in this issue: https://github.com/JetBrains/compose-multiplatform/issues/2283 - -In general it is a lazy list with some complex content that automaticall scrolls. \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/build.gradle.kts b/benchmarks/ios/scroll-lazy-list/androidApp/build.gradle.kts deleted file mode 100644 index b86596b3173..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/build.gradle.kts +++ /dev/null @@ -1,38 +0,0 @@ -plugins { - kotlin("multiplatform") - id("com.android.application") - id("org.jetbrains.compose") -} - -kotlin { - android() - sourceSets { - val androidMain by getting { - dependencies { - implementation(project(":shared")) - } - } - } -} - -android { - compileSdk = (findProperty("android.compileSdk") as String).toInt() - namespace = "com.myapplication" - - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - applicationId = "com.myapplication.MyApplication" - minSdk = (findProperty("android.minSdk") as String).toInt() - targetSdk = (findProperty("android.targetSdk") as String).toInt() - versionCode = 1 - versionName = "1.0" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlin { - jvmToolchain(11) - } -} diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/AndroidManifest.xml b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/AndroidManifest.xml deleted file mode 100644 index bc7e8616968..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt deleted file mode 100644 index fd6e831ceb7..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.myapplication - -import MainView -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity - -class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - setContent { - MainView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d11462..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9cbf1..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index eca70cfe52e..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cfe52e..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a571e60098c..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 61da551c559..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c41dd285319..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index db5080a7527..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 6dba46dab19..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index da31a871c8d..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 15ac681720f..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index b216f2d313c..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f25a4197447..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index e96783ccce8..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/values/strings.xml b/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/values/strings.xml deleted file mode 100644 index 592270bf530..00000000000 --- a/benchmarks/ios/scroll-lazy-list/androidApp/src/androidMain/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - My application - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/build.gradle.kts b/benchmarks/ios/scroll-lazy-list/build.gradle.kts deleted file mode 100644 index b7e1d5d26ad..00000000000 --- a/benchmarks/ios/scroll-lazy-list/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - // this is necessary to avoid the plugins to be loaded multiple times - // in each subproject's classloader - kotlin("multiplatform").apply(false) - id("com.android.application").apply(false) - id("com.android.library").apply(false) - id("org.jetbrains.compose").apply(false) -} diff --git a/benchmarks/ios/scroll-lazy-list/cleanup.sh b/benchmarks/ios/scroll-lazy-list/cleanup.sh deleted file mode 100755 index 62f9391b867..00000000000 --- a/benchmarks/ios/scroll-lazy-list/cleanup.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -rm -rf .idea -./gradlew clean -rm -rf .gradle -rm -rf build -rm -rf */build -rm -rf iosApp/iosApp.xcworkspace -rm -rf iosApp/Pods -rm -rf iosApp/iosApp.xcodeproj/project.xcworkspace -rm -rf iosApp/iosApp.xcodeproj/xcuserdata diff --git a/benchmarks/ios/scroll-lazy-list/desktopApp/build.gradle.kts b/benchmarks/ios/scroll-lazy-list/desktopApp/build.gradle.kts deleted file mode 100644 index 931f3467a28..00000000000 --- a/benchmarks/ios/scroll-lazy-list/desktopApp/build.gradle.kts +++ /dev/null @@ -1,30 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -kotlin { - jvm() - sourceSets { - val jvmMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":shared")) - } - } - } -} - -compose.desktop { - application { - mainClass = "MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "KotlinMultiplatformComposeDesktopApplication" - packageVersion = "1.0.0" - } - } -} diff --git a/benchmarks/ios/scroll-lazy-list/desktopApp/src/jvmMain/kotlin/main.kt b/benchmarks/ios/scroll-lazy-list/desktopApp/src/jvmMain/kotlin/main.kt deleted file mode 100644 index 5ffada98e15..00000000000 --- a/benchmarks/ios/scroll-lazy-list/desktopApp/src/jvmMain/kotlin/main.kt +++ /dev/null @@ -1,8 +0,0 @@ -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - Window(onCloseRequest = ::exitApplication) { - MainView() - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/desktopMain/kotlin/main.desktop.kt b/benchmarks/ios/scroll-lazy-list/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 5f23de7dd91..00000000000 --- a/benchmarks/ios/scroll-lazy-list/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,12 +0,0 @@ -import androidx.compose.desktop.ui.tooling.preview.Preview -import androidx.compose.runtime.Composable - -actual fun getPlatformName(): String = "Desktop" - -@Composable fun MainView() = App() - -@Preview -@Composable -fun AppPreview() { - App() -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/gradle.properties b/benchmarks/ios/scroll-lazy-list/gradle.properties deleted file mode 100644 index 402848dbea3..00000000000 --- a/benchmarks/ios/scroll-lazy-list/gradle.properties +++ /dev/null @@ -1,24 +0,0 @@ -#Gradle -org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" - -#Kotlin -kotlin.code.style=official - -#MPP -kotlin.mpp.stability.nowarn=true -kotlin.mpp.enableCInteropCommonization=true -kotlin.mpp.androidSourceSetLayoutVersion=2 - -#Compose -org.jetbrains.compose.experimental.uikit.enabled=true - -#Android -android.useAndroidX=true -android.compileSdk=33 -android.targetSdk=33 -android.minSdk=24 - -#Versions -kotlin.version=1.8.20 -agp.version=7.4.2 -compose.version=1.4.0 \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/gradle/wrapper/gradle-wrapper.jar b/benchmarks/ios/scroll-lazy-list/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/gradle/wrapper/gradle-wrapper.properties b/benchmarks/ios/scroll-lazy-list/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index e1bef7e873c..00000000000 --- a/benchmarks/ios/scroll-lazy-list/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/benchmarks/ios/scroll-lazy-list/gradlew b/benchmarks/ios/scroll-lazy-list/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/benchmarks/ios/scroll-lazy-list/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/benchmarks/ios/scroll-lazy-list/gradlew.bat b/benchmarks/ios/scroll-lazy-list/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/benchmarks/ios/scroll-lazy-list/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/Configuration/Config.xcconfig b/benchmarks/ios/scroll-lazy-list/iosApp/Configuration/Config.xcconfig deleted file mode 100644 index f3915978275..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/Configuration/Config.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -TEAM_ID= -BUNDLE_ID=com.myapplication.MyApplication -APP_NAME=My application diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/Podfile b/benchmarks/ios/scroll-lazy-list/iosApp/Podfile deleted file mode 100644 index aff9c517b20..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/Podfile +++ /dev/null @@ -1,5 +0,0 @@ -target 'iosApp' do - use_frameworks! - platform :ios, '14.1' - pod 'shared', :path => '../shared' -end \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp.xcodeproj/project.pbxproj b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp.xcodeproj/project.pbxproj deleted file mode 100644 index c888c0443ce..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,400 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXBuildFile section */ - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF7B242A565900829871 /* My application.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "My application.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F85CB1118929364A9C6EFABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 058557D7273AAEEB004C7B11 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 42799AB246E5F90AF97AA0EF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7555FF72242A565900829871 = { - isa = PBXGroup; - children = ( - AB1DB47929225F7C00F7AF9C /* Configuration */, - 7555FF7D242A565900829871 /* iosApp */, - 7555FF7C242A565900829871 /* Products */, - FEFF387C0A8D172AA4D59CAE /* Pods */, - 42799AB246E5F90AF97AA0EF /* Frameworks */, - ); - sourceTree = ""; - }; - 7555FF7C242A565900829871 /* Products */ = { - isa = PBXGroup; - children = ( - 7555FF7B242A565900829871 /* My application.app */, - ); - name = Products; - sourceTree = ""; - }; - 7555FF7D242A565900829871 /* iosApp */ = { - isa = PBXGroup; - children = ( - 058557BA273AAA24004C7B11 /* Assets.xcassets */, - 7555FF82242A565900829871 /* ContentView.swift */, - 7555FF8C242A565B00829871 /* Info.plist */, - 2152FB032600AC8F00CF470E /* iOSApp.swift */, - 058557D7273AAEEB004C7B11 /* Preview Content */, - ); - path = iosApp; - sourceTree = ""; - }; - AB1DB47929225F7C00F7AF9C /* Configuration */ = { - isa = PBXGroup; - children = ( - AB3632DC29227652001CCB65 /* Config.xcconfig */, - ); - path = Configuration; - sourceTree = ""; - }; - FEFF387C0A8D172AA4D59CAE /* Pods */ = { - isa = PBXGroup; - children = ( - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */, - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7555FF7A242A565900829871 /* iosApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; - buildPhases = ( - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */, - 7555FF77242A565900829871 /* Sources */, - 7555FF79242A565900829871 /* Resources */, - F85CB1118929364A9C6EFABC /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iosApp; - productName = iosApp; - productReference = 7555FF7B242A565900829871 /* My application.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7555FF73242A565900829871 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = orgName; - TargetAttributes = { - 7555FF7A242A565900829871 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7555FF72242A565900829871; - productRefGroup = 7555FF7C242A565900829871 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7555FF7A242A565900829871 /* iosApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7555FF79242A565900829871 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7555FF77242A565900829871 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, - 7555FF83242A565900829871 /* ContentView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7555FFA3242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7555FFA4242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7555FFA6242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7555FFA7242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA3242A565B00829871 /* Debug */, - 7555FFA4242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA6242A565B00829871 /* Debug */, - 7555FFA7242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7555FF73242A565900829871 /* Project object */; -} diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index ee7e3ca03f8..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 8edf56e7a97..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "images" : [ - { - "filename" : "app-icon-1024.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png deleted file mode 100644 index 53fc536fb9a..00000000000 Binary files a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png and /dev/null differ diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/Contents.json b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/ContentView.swift b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/ContentView.swift deleted file mode 100644 index f7f6457b31a..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/ContentView.swift +++ /dev/null @@ -1,21 +0,0 @@ -import UIKit -import SwiftUI -import shared - -struct ComposeView: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UIViewController { - Main_iosKt.MainViewController() - } - - func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} -} - -struct ContentView: View { - var body: some View { - ComposeView() - .ignoresSafeArea(.keyboard) // Compose has own keyboard handler - } -} - - - diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Info.plist b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Info.plist deleted file mode 100644 index 9a269f5eaac..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/iOSApp.swift b/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/iOSApp.swift deleted file mode 100644 index 0648e8602f2..00000000000 --- a/benchmarks/ios/scroll-lazy-list/iosApp/iosApp/iOSApp.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -@main -struct iOSApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/settings.gradle.kts b/benchmarks/ios/scroll-lazy-list/settings.gradle.kts deleted file mode 100644 index 2e81b6fa9e6..00000000000 --- a/benchmarks/ios/scroll-lazy-list/settings.gradle.kts +++ /dev/null @@ -1,38 +0,0 @@ -rootProject.name = "My application" - -include(":androidApp") -include(":shared") -include(":desktopApp") - -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - mavenLocal() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - val agpVersion = extra["agp.version"] as String - val composeVersion = extra["compose.version"] as String - - kotlin("jvm").version(kotlinVersion) - kotlin("multiplatform").version(kotlinVersion) - kotlin("android").version(kotlinVersion) - - id("com.android.application").version(agpVersion) - id("com.android.library").version(agpVersion) - - id("org.jetbrains.compose").version(composeVersion) - } -} - -dependencyResolutionManagement { - repositories { - google() - mavenCentral() - mavenLocal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } -} diff --git a/benchmarks/ios/scroll-lazy-list/shared/build.gradle.kts b/benchmarks/ios/scroll-lazy-list/shared/build.gradle.kts deleted file mode 100644 index ad37527fd4c..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/build.gradle.kts +++ /dev/null @@ -1,91 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("native.cocoapods") - id("com.android.library") - id("org.jetbrains.compose") -} - -kotlin { - android() - - jvm("desktop") - - iosX64() - iosArm64() - iosSimulatorArm64() - - cocoapods { - version = "1.0.0" - summary = "Some description for the Shared Module" - homepage = "Link to the Shared Module homepage" - ios.deploymentTarget = "14.1" - podfile = project.file("../iosApp/Podfile") - framework { - baseName = "shared" - isStatic = true - } - extraSpecAttributes["resources"] = "['src/commonMain/resources/**', 'src/iosMain/resources/**']" - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } - } - val androidMain by getting { - dependencies { - api("androidx.activity:activity-compose:1.6.1") - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.core:core-ktx:1.9.0") - } - } - val iosX64Main by getting - val iosArm64Main by getting - val iosSimulatorArm64Main by getting - val iosMain by creating { - dependsOn(commonMain) - iosX64Main.dependsOn(this) - iosArm64Main.dependsOn(this) - iosSimulatorArm64Main.dependsOn(this) - } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.common) - } - } - } -} - -android { - compileSdk = (findProperty("android.compileSdk") as String).toInt() - namespace = "com.myapplication.common" - - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - sourceSets["main"].res.srcDirs("src/androidMain/res") - sourceSets["main"].resources.srcDirs("src/commonMain/resources") - - defaultConfig { - minSdk = (findProperty("android.minSdk") as String).toInt() - targetSdk = (findProperty("android.targetSdk") as String).toInt() - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlin { - jvmToolchain(11) -// targets.withType { -// binaries.all { -// freeCompilerArgs += listOf("-Xdisable-phases=VerifyBitcode", -// "-Xgc=noop" -// ) -// } -// } - } - -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/AndroidManifest.xml b/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 568741e54f2..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/kotlin/listsample/models/FakeItem.kt b/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/kotlin/listsample/models/FakeItem.kt deleted file mode 100644 index 5b6f47f9573..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/kotlin/listsample/models/FakeItem.kt +++ /dev/null @@ -1,30 +0,0 @@ -package listsample.models - -import android.os.Parcel -import android.os.Parcelable - -actual fun createFakeItem(): ICompositionModel = AndroidFakeItem() - -class AndroidFakeItem() : FakeItem(), Parcelable { - constructor(parcel: Parcel) : this() { - } - - override fun writeToParcel(parcel: Parcel, flags: Int) { - - } - - override fun describeContents(): Int { - return 0 - } - - companion object CREATOR : Parcelable.Creator { - override fun createFromParcel(parcel: Parcel): AndroidFakeItem { - return AndroidFakeItem(parcel) - } - - override fun newArray(size: Int): Array { - return arrayOfNulls(size) - } - } - -} diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/kotlin/main.android.kt b/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/kotlin/main.android.kt deleted file mode 100644 index 4a1d2a6febd..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/androidMain/kotlin/main.android.kt +++ /dev/null @@ -1,3 +0,0 @@ -import androidx.compose.runtime.Composable - -@Composable fun MainView() = App() diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/App.kt b/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/App.kt deleted file mode 100644 index 0d17ee9d67d..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,8 +0,0 @@ -import androidx.compose.runtime.Composable - -import listsample.components.MainUiNoImageUseModel - -@Composable -fun App() { - MainUiNoImageUseModel() -} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/desktopMain/kotlin/listsample/models/FakeItem.kt b/benchmarks/ios/scroll-lazy-list/shared/src/desktopMain/kotlin/listsample/models/FakeItem.kt deleted file mode 100644 index 5c52387f867..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/desktopMain/kotlin/listsample/models/FakeItem.kt +++ /dev/null @@ -1,3 +0,0 @@ -package listsample.models - -actual fun createFakeItem(): ICompositionModel = FakeItem() diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/ios/scroll-lazy-list/shared/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 409ab5bcadd..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,4 +0,0 @@ -import androidx.compose.runtime.Composable - -@Composable fun MainView() = App() - diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/iosMain/kotlin/listsample/models/FakeItem.kt b/benchmarks/ios/scroll-lazy-list/shared/src/iosMain/kotlin/listsample/models/FakeItem.kt deleted file mode 100644 index 5c52387f867..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/iosMain/kotlin/listsample/models/FakeItem.kt +++ /dev/null @@ -1,3 +0,0 @@ -package listsample.models - -actual fun createFakeItem(): ICompositionModel = FakeItem() diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/iosMain/kotlin/main.ios.kt b/benchmarks/ios/scroll-lazy-list/shared/src/iosMain/kotlin/main.ios.kt deleted file mode 100644 index fa143d45ce7..00000000000 --- a/benchmarks/ios/scroll-lazy-list/shared/src/iosMain/kotlin/main.ios.kt +++ /dev/null @@ -1,3 +0,0 @@ -import androidx.compose.ui.window.ComposeUIViewController - -fun MainViewController() = ComposeUIViewController { App() } \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/.gitignore b/benchmarks/ios/visual-effects-ny/.gitignore deleted file mode 100644 index 180e0343839..00000000000 --- a/benchmarks/ios/visual-effects-ny/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx -iosApp/Podfile.lock -iosApp/Pods/* -iosApp/iosApp.xcworkspace/* -iosApp/iosApp.xcodeproj/* -!iosApp/iosApp.xcodeproj/project.pbxproj -shared/shared.podspec \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/.run/desktopApp.run.xml b/benchmarks/ios/visual-effects-ny/.run/desktopApp.run.xml deleted file mode 100644 index 0de52186703..00000000000 --- a/benchmarks/ios/visual-effects-ny/.run/desktopApp.run.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/README.md b/benchmarks/ios/visual-effects-ny/README.md deleted file mode 100644 index 45d2731886b..00000000000 --- a/benchmarks/ios/visual-effects-ny/README.md +++ /dev/null @@ -1 +0,0 @@ -A benchmark app extracted from the NY sample of examples/visual-effects \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/androidApp/build.gradle.kts b/benchmarks/ios/visual-effects-ny/androidApp/build.gradle.kts deleted file mode 100644 index 61a9bd4d72e..00000000000 --- a/benchmarks/ios/visual-effects-ny/androidApp/build.gradle.kts +++ /dev/null @@ -1,31 +0,0 @@ -plugins { - kotlin("multiplatform") - id("com.android.application") - id("org.jetbrains.compose") -} - -kotlin { - android() - sourceSets { - val androidMain by getting { - dependencies { - implementation(project(":shared")) - } - } - } -} - -android { - compileSdk = 33 - defaultConfig { - applicationId = "org.jetbrains.VisualEffects" - minSdk = 26 - targetSdk = 33 - versionCode = 1 - versionName = "1.0" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} diff --git a/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/AndroidManifest.xml b/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 0e4d4b8a1b8..00000000000 --- a/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/kotlin/MainActivity.kt b/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/kotlin/MainActivity.kt deleted file mode 100644 index 783122db5ae..00000000000 --- a/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/kotlin/MainActivity.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity - -class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - MainView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/res/values/strings.xml b/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/res/values/strings.xml deleted file mode 100644 index d23a35eb385..00000000000 --- a/benchmarks/ios/visual-effects-ny/androidApp/src/androidMain/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - Visual Effects - \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/build.gradle.kts b/benchmarks/ios/visual-effects-ny/build.gradle.kts deleted file mode 100644 index 8d0c1f3d7c3..00000000000 --- a/benchmarks/ios/visual-effects-ny/build.gradle.kts +++ /dev/null @@ -1,19 +0,0 @@ -plugins { - // this is necessary to avoid the plugins to be loaded multiple times - // in each subproject's classloader - kotlin("jvm") apply false - kotlin("multiplatform") apply false - kotlin("android") apply false - id("com.android.application") apply false - id("com.android.library") apply false - id("org.jetbrains.compose") apply false -} - -allprojects { - repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - mavenLocal() - } -} diff --git a/benchmarks/ios/visual-effects-ny/desktopApp/build.gradle.kts b/benchmarks/ios/visual-effects-ny/desktopApp/build.gradle.kts deleted file mode 100644 index 1cebd3ec6a5..00000000000 --- a/benchmarks/ios/visual-effects-ny/desktopApp/build.gradle.kts +++ /dev/null @@ -1,55 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -kotlin { - jvm {} - sourceSets { - val jvmMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":shared")) - } - } - } -} - -compose.desktop { - application { - mainClass = "org.jetbrains.compose.demo.visuals.MainKt" - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "compose-demo" - packageVersion = "1.0.0" - } - } -} - -afterEvaluate { - val additionalArguments = mutableListOf() - - val runTask = tasks.named("run") { - this.args = additionalArguments - } - - tasks.register("runWords") { - additionalArguments.add("words") - group = "compose desktop" - dependsOn(runTask) - } - - tasks.register("runWave") { - additionalArguments.add("wave") - group = "compose desktop" - dependsOn(runTask) - } - - tasks.register("runNewYear") { - additionalArguments.add("NY") - group = "compose desktop" - dependsOn(runTask) - } -} \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/desktopApp/src/jvmMain/kotlin/main.kt b/benchmarks/ios/visual-effects-ny/desktopApp/src/jvmMain/kotlin/main.kt deleted file mode 100644 index 1217cc5b9da..00000000000 --- a/benchmarks/ios/visual-effects-ny/desktopApp/src/jvmMain/kotlin/main.kt +++ /dev/null @@ -1,4 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -fun main() = mainNY() - diff --git a/benchmarks/ios/visual-effects-ny/gradle.properties b/benchmarks/ios/visual-effects-ny/gradle.properties deleted file mode 100644 index 1c9caed4200..00000000000 --- a/benchmarks/ios/visual-effects-ny/gradle.properties +++ /dev/null @@ -1,15 +0,0 @@ -kotlin.code.style=official -xcodeproj=./iosApp -kotlin.native.cocoapods.generate.wrapper=true -android.useAndroidX=true -org.gradle.jvmargs=-Xmx3g -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.macos.enabled=true -org.jetbrains.compose.experimental.uikit.enabled=true -kotlin.mpp.androidSourceSetLayoutVersion=2 -kotlin.native.useEmbeddableCompilerJar=true -# Enable kotlin/native experimental memory model -kotlin.native.binary.memoryModel=experimental -kotlin.version=1.8.20 -agp.version=7.1.3 -compose.version=1.4.0 diff --git a/benchmarks/ios/visual-effects-ny/gradle/wrapper/gradle-wrapper.jar b/benchmarks/ios/visual-effects-ny/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/benchmarks/ios/visual-effects-ny/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/benchmarks/ios/visual-effects-ny/gradle/wrapper/gradle-wrapper.properties b/benchmarks/ios/visual-effects-ny/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index ae04661ee73..00000000000 --- a/benchmarks/ios/visual-effects-ny/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/benchmarks/ios/visual-effects-ny/gradlew b/benchmarks/ios/visual-effects-ny/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/benchmarks/ios/visual-effects-ny/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/benchmarks/ios/visual-effects-ny/gradlew.bat b/benchmarks/ios/visual-effects-ny/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/benchmarks/ios/visual-effects-ny/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/benchmarks/ios/visual-effects-ny/iosApp/Configuration/Config.xcconfig b/benchmarks/ios/visual-effects-ny/iosApp/Configuration/Config.xcconfig deleted file mode 100644 index bad995c745a..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/Configuration/Config.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -TEAM_ID= -BUNDLE_ID=org.jetbrains.VisualEffects -APP_NAME=VisualEffects diff --git a/benchmarks/ios/visual-effects-ny/iosApp/Podfile b/benchmarks/ios/visual-effects-ny/iosApp/Podfile deleted file mode 100644 index aff9c517b20..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/Podfile +++ /dev/null @@ -1,5 +0,0 @@ -target 'iosApp' do - use_frameworks! - platform :ios, '14.1' - pod 'shared', :path => '../shared' -end \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp.xcodeproj/project.pbxproj b/benchmarks/ios/visual-effects-ny/iosApp/iosApp.xcodeproj/project.pbxproj deleted file mode 100644 index 0cea2ac59dd..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,418 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF7B242A565900829871 /* iosApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F85CB1118929364A9C6EFABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CFDB58B53BB94DE262B13C24 /* Pods_iosApp.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 058557D7273AAEEB004C7B11 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 42799AB246E5F90AF97AA0EF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6B1049432C0C2B312090ABF6 /* Pods_iosApp.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7555FF72242A565900829871 = { - isa = PBXGroup; - children = ( - AB1DB47929225F7C00F7AF9C /* Configuration */, - 7555FF7D242A565900829871 /* iosApp */, - 7555FF7C242A565900829871 /* Products */, - FEFF387C0A8D172AA4D59CAE /* Pods */, - 42799AB246E5F90AF97AA0EF /* Frameworks */, - ); - sourceTree = ""; - }; - 7555FF7C242A565900829871 /* Products */ = { - isa = PBXGroup; - children = ( - 7555FF7B242A565900829871 /* iosApp.app */, - ); - name = Products; - sourceTree = ""; - }; - 7555FF7D242A565900829871 /* iosApp */ = { - isa = PBXGroup; - children = ( - 058557BA273AAA24004C7B11 /* Assets.xcassets */, - 7555FF82242A565900829871 /* ContentView.swift */, - 7555FF8C242A565B00829871 /* Info.plist */, - 2152FB032600AC8F00CF470E /* iOSApp.swift */, - 058557D7273AAEEB004C7B11 /* Preview Content */, - ); - path = iosApp; - sourceTree = ""; - }; - AB1DB47929225F7C00F7AF9C /* Configuration */ = { - isa = PBXGroup; - children = ( - AB3632DC29227652001CCB65 /* Config.xcconfig */, - ); - path = Configuration; - sourceTree = ""; - }; - FEFF387C0A8D172AA4D59CAE /* Pods */ = { - isa = PBXGroup; - children = ( - 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */, - FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7555FF7A242A565900829871 /* iosApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; - buildPhases = ( - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */, - 7555FF77242A565900829871 /* Sources */, - 7555FF79242A565900829871 /* Resources */, - F85CB1118929364A9C6EFABC /* Frameworks */, - 7694444BC13DD49B4B2626ED /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iosApp; - productName = iosApp; - productReference = 7555FF7B242A565900829871 /* iosApp.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7555FF73242A565900829871 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = orgName; - TargetAttributes = { - 7555FF7A242A565900829871 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7555FF72242A565900829871; - productRefGroup = 7555FF7C242A565900829871 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7555FF7A242A565900829871 /* iosApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7555FF79242A565900829871 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 7694444BC13DD49B4B2626ED /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 98D614C51D2DA07C614CC46E /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7555FF77242A565900829871 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, - 7555FF83242A565900829871 /* ContentView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7555FFA3242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7555FFA4242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7555FFA6242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FF3202A603A284706412EDC /* Pods-iosApp.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7555FFA7242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FF8CA3F5360CEAB49D74065F /* Pods-iosApp.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA3242A565B00829871 /* Debug */, - 7555FFA4242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA6242A565B00829871 /* Debug */, - 7555FFA7242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7555FF73242A565900829871 /* Project object */; -} diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index ee7e3ca03f8..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/Contents.json b/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/ContentView.swift b/benchmarks/ios/visual-effects-ny/iosApp/iosApp/ContentView.swift deleted file mode 100644 index f7f6457b31a..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/ContentView.swift +++ /dev/null @@ -1,21 +0,0 @@ -import UIKit -import SwiftUI -import shared - -struct ComposeView: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UIViewController { - Main_iosKt.MainViewController() - } - - func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} -} - -struct ContentView: View { - var body: some View { - ComposeView() - .ignoresSafeArea(.keyboard) // Compose has own keyboard handler - } -} - - - diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Info.plist b/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Info.plist deleted file mode 100644 index 9a269f5eaac..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/iOSApp.swift b/benchmarks/ios/visual-effects-ny/iosApp/iosApp/iOSApp.swift deleted file mode 100644 index 0648e8602f2..00000000000 --- a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/iOSApp.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -@main -struct iOSApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/run-configurations.png b/benchmarks/ios/visual-effects-ny/run-configurations.png deleted file mode 100644 index d859ff0870f..00000000000 Binary files a/benchmarks/ios/visual-effects-ny/run-configurations.png and /dev/null differ diff --git a/benchmarks/ios/visual-effects-ny/settings.gradle.kts b/benchmarks/ios/visual-effects-ny/settings.gradle.kts deleted file mode 100644 index 665c2f3deb2..00000000000 --- a/benchmarks/ios/visual-effects-ny/settings.gradle.kts +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - val agpVersion = extra["agp.version"] as String - val composeVersion = extra["compose.version"] as String - - kotlin("jvm").version(kotlinVersion) - kotlin("multiplatform").version(kotlinVersion) - kotlin("android").version(kotlinVersion) - id("com.android.base").version(agpVersion) - id("com.android.application").version(agpVersion) - id("com.android.library").version(agpVersion) - id("org.jetbrains.compose").version(composeVersion) - } -} - -rootProject.name = "visual-effects" - -include(":androidApp") -include(":shared") -include(":desktopApp") diff --git a/benchmarks/ios/visual-effects-ny/shared/build.gradle.kts b/benchmarks/ios/visual-effects-ny/shared/build.gradle.kts deleted file mode 100644 index 48f2c79381a..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/build.gradle.kts +++ /dev/null @@ -1,95 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("native.cocoapods") - id("com.android.library") - id("org.jetbrains.compose") -} - -version = "1.0-SNAPSHOT" - -kotlin { - android() - - jvm("desktop") - - ios() - iosSimulatorArm64() - - macosX64 { - binaries { - executable { - entryPoint = "main" - } - } - } - macosArm64 { - binaries { - executable { - entryPoint = "main" - } - } - } - - cocoapods { - summary = "Shared code for the sample" - homepage = "https://github.com/JetBrains/compose-jb" - ios.deploymentTarget = "14.1" - podfile = project.file("../iosApp/Podfile") - framework { - baseName = "shared" - isStatic = true - } - extraSpecAttributes["resources"] = "['src/commonMain/resources/**', 'src/iosMain/resources/**']" - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.materialIconsExtended) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } - } - val androidMain by getting { - dependencies { - api("androidx.activity:activity-compose:1.6.1") - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.core:core-ktx:1.9.0") - } - } - val iosMain by getting - val iosSimulatorArm64Main by getting { - dependsOn(iosMain) - } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.common) - } - } - val macosMain by creating { - dependsOn(commonMain) - } - val macosArm64Main by getting { - dependsOn(macosMain) - } - } -} - -android { - compileSdk = 33 - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - sourceSets["main"].res.srcDirs("src/androidMain/res") - sourceSets["main"].resources.srcDirs("src/commonMain/resources") - - defaultConfig { - minSdk = 26 - targetSdk = 33 - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} diff --git a/benchmarks/ios/visual-effects-ny/shared/src/androidMain/AndroidManifest.xml b/benchmarks/ios/visual-effects-ny/shared/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 9382484a7e5..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/main.android.kt b/benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/main.android.kt deleted file mode 100644 index 41a40366286..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/main.android.kt +++ /dev/null @@ -1,10 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -import androidx.compose.runtime.Composable -import org.jetbrains.compose.demo.visuals.NYContent - -actual fun width(): Int = 400 -actual fun height(): Int = 800 - -@Composable -fun MainView() = NYContent() \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/platform/NanoTime.kt b/benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/platform/NanoTime.kt deleted file mode 100644 index 55e2b65c61c..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/androidMain/kotlin/platform/NanoTime.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.jetbrains.compose.demo.visuals.platform - -import kotlin.system.exitProcess - -actual fun nanoTime(): Long = System.nanoTime() - -actual fun measureTime() = nanoTime() - -actual fun exit(): Unit = exitProcess(0) \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/HappyNY.kt b/benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/HappyNY.kt deleted file mode 100644 index 5dde0cf85c2..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/HappyNY.kt +++ /dev/null @@ -1,340 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Surface -import androidx.compose.runtime.* -import androidx.compose.runtime.snapshots.SnapshotStateList -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.* -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import kotlinx.coroutines.delay -import org.jetbrains.compose.demo.visuals.platform.exit -import org.jetbrains.compose.demo.visuals.platform.measureTime -import org.jetbrains.compose.demo.visuals.platform.nanoTime -import kotlin.math.* -import kotlin.random.Random - -expect fun width(): Int -expect fun height(): Int - -val width = width() -val height = height() -const val snowCount = 80 -const val starCount = 60 -const val rocketPartsCount = 30 - -data class SnowFlake( - var x: Dp, - var y: Dp, - val scale: Float, - var v: Double, - var alpha: Float, - var angle: Float, - var rotate: Int, - var phase: Double -) - -data class Star(val x: Dp, val y: Dp, val color: Color, val size: Dp) - -val random = Random(123) - -fun random(): Float = random.nextFloat() - -class DoubleRocket(val particle: Particle) { - private val STATE_ROCKET = 0 - private val STATE_SMALL_ROCKETS = 1 - var state = STATE_ROCKET - var rockets: Array = emptyArray() - private fun checkState(time: Long) { - if (particle.vy > -3.0 && state == STATE_ROCKET) { - explode(time) - } - if (state == STATE_SMALL_ROCKETS) { - var done = true - rockets.forEach { - if (!it.exploded) { - it.checkExplode(time) - } - if (!it.checkDone()) { - done = false - } - } - if (done) { - reset() - } - } - } - - var numOfIterations = 1 - - private fun reset() { - state = STATE_ROCKET - particle.x = 0.0 - particle.y = 1000.0 - particle.vx = 2.1 - particle.vy = -12.5 - numOfIterations -=1 - if (numOfIterations == 0) { - println((measureTime() - measureTime)/1000000) - exit() - } - - } - - private fun explode(time: Long) { - val colors = arrayOf(Color(0xff, 0, 0), Color(192, 255, 192), Color(192, 212, 255)) - rockets = Array(7) { - val v = 1.2f + 1.0 * random() - val angle = 2 * PI * random() - Rocket( - Particle( - particle.x, - particle.y, - v * sin(angle) + particle.vx, - v * cos(angle) + particle.vy - 0.5f, - colors[it % colors.size] - ), colors[it % colors.size], time - ) - } - state = STATE_SMALL_ROCKETS - } - - fun move(time: Long, prevTime: Long) { - if (rocket.state == rocket.STATE_ROCKET) { - rocket.particle.move(time, prevTime) - rocket.particle.gravity(time, prevTime) - } else { - rocket.rockets.forEach { - it.move(time, prevTime) - } - } - rocket.checkState(time) - } - - @Composable - fun draw() { - if (state == rocket.STATE_ROCKET) { - particle.draw() - } else { - rockets.forEach { - it.draw() - } - } - } - -} - -class Rocket(val particle: Particle, val color: Color, val startTime: Long = 0) { - var exploded = false - var parts: Array = emptyArray() - - fun checkExplode(time: Long) { - if (time - startTime > 1200000000) { - explode() - } - } - - private fun explode() { - parts = Array(rocketPartsCount) { - val v = 0.5f + 1.5 * random() - val angle = 2 * PI * random() - Particle(particle.x, particle.y, v * sin(angle) + particle.vx, v * cos(angle) + particle.vy, color, 1) - } - exploded = true - } - - fun checkDone(): Boolean { - if (!exploded) return false - parts.forEach { - if (it.y < 800) return false - } - return true - } - - fun move(time: Long, prevTime: Long) { - if (!exploded) { - particle.move(time, prevTime) - particle.gravity(time, prevTime) - checkExplode(time) - } else { - parts.forEach { - it.move(time, prevTime) - it.gravity(time, prevTime) - } - } - } - - @Composable - fun draw() { - if (!exploded) { - particle.draw() - } else { - parts.forEach { - it.draw() - } - } - } -} - -class Particle(var x: Double, var y: Double, var vx: Double, var vy: Double, val color: Color, val type: Int = 0) { - fun move(time: Long, prevTime: Long) { - x = (x + vx * (time - prevTime) / 30000000) - y = (y + vy * (time - prevTime) / 30000000) - } - - fun gravity(time: Long, prevTime: Long) { - vy = vy + 1.0f * (time - prevTime) / 300000000 - } - - @Composable - fun draw() { - val alphaFactor = if (type == 0) 1.0f else 1 / (1 + abs(vy / 5)).toFloat() - Box(Modifier.size(5.dp).offset(x.dp, y.dp).alpha(alphaFactor).clip(CircleShape).background(color)) - for (i in 1..5) { - Box( - Modifier.size(4.dp).offset((x - vx / 2 * i).dp, (y - vy / 2 * i).dp) - .alpha(alphaFactor * (1 - 0.18f * i)).clip(CircleShape).background(color) - ) - } - } -} - -val rocket = DoubleRocket(Particle(0.0, 1000.0, 2.1, -12.5, Color.White)) - -fun prepareStarsAndSnowFlakes(stars: SnapshotStateList, snowFlakes: SnapshotStateList) { - for (i in 0..snowCount) { - snowFlakes.add( - SnowFlake( - (50 + (width - 50) * random()).dp, - (height * random()).dp, - 0.1f + 0.2f * random().toFloat(), - 1.5 + 3 * random(), - (0.4f + 0.4 * random()).toFloat(), - 60 * random().toFloat(), - Random.nextInt(1, 5) - 3, - random() * 2 * PI - ) - ) - } - val colors = arrayOf(Color.Red, Color.Yellow, Color.Green, Color.Yellow, Color.Cyan, Color.Magenta, Color.White) - for (i in 0..starCount) { - stars.add( - Star( - (width * random()).dp, - (height * random()).dp, - colors[Random.nextInt(colors.size)], - (3 + 5 * random()).dp - ) - ) - } -} - -var measureTime: Long = 0 - -@Composable -fun NYContent() { - measureTime = measureTime() - var time by remember { mutableStateOf(nanoTime()) } - var startTime = remember { nanoTime() } - var prevTime by remember { mutableStateOf(nanoTime()) } - val snowFlakes = remember { mutableStateListOf() } - val stars = remember { mutableStateListOf() } - var flickering2 by remember { mutableStateOf(true) } - remember { prepareStarsAndSnowFlakes(stars, snowFlakes) } - - Surface( - modifier = Modifier.fillMaxSize().padding(5.dp).shadow(3.dp, RoundedCornerShape(20.dp)), - color = Color.Black, - shape = RoundedCornerShape(20.dp) - ) { - - LaunchedEffect(Unit) { - while (true) { - withFrameNanos { - prevTime = time - time = it - } - } - } - - if (flickering2) { - if (time - startTime > 15500000000) { //note, that startTime has been updated above - flickering2 = false - } - } - - rocket.move(time, prevTime) - - Box(Modifier.fillMaxSize()) { - - snow(time, prevTime, snowFlakes, startTime) - - starrySky(stars) - - rocket.draw() - - } - } -} - - -@Composable -fun starrySky(stars: SnapshotStateList) { - stars.forEach { - star(it.x, it.y, it.color, size = it.size) - } -} - -@Composable -fun star(x: Dp, y: Dp, color: Color = Color.White, size: Dp) { - Box(Modifier.offset(x, y).scale(1.0f, 0.2f).rotate(45f).size(size).background(color)) - Box(Modifier.offset(x, y).scale(0.2f, 1.0f).rotate(45f).size(size).background(color)) -} - -@Composable -fun snow(time: Long, prevTime: Long, snowFlakes: SnapshotStateList, startTime: Long) { - val deltaAngle = (time - startTime) / 100000000 - with(LocalDensity.current) { - snowFlakes.forEach { - var y = it.y + ((it.v * (time - prevTime)) / 300000000).dp - if (y > (height + 20).dp) { - y = -20.dp - } - it.y = y - val x = it.x + (15 * sin(time.toDouble() / 3000000000 + it.phase)).dp - snowFlake(Modifier.offset(x, y).scale(it.scale).rotate(it.angle + deltaAngle * it.rotate), it.alpha) - } - } -} - -@Composable -fun snowFlake(modifier: Modifier, alpha: Float = 0.8f) { - Box(modifier) { - snowFlakeInt(0, 0f, 30.dp, 0.dp, alpha) - snowFlakeInt(0, 60f, 15.dp, 25.dp, alpha) - snowFlakeInt(0, 120f, -15.dp, 25.dp, alpha) - snowFlakeInt(0, 180f, -30.dp, 0.dp, alpha) - snowFlakeInt(0, 240f, -15.dp, -25.dp, alpha) - snowFlakeInt(0, 300f, 15.dp, -25.dp, alpha) - } - -} - -@Composable -fun snowFlakeInt(level: Int, angle: Float, shiftX: Dp, shiftY: Dp, alpha: Float) { - if (level > 3) return - Box( - Modifier.offset(shiftX, shiftY).rotate(angle).width(100.dp).height(10.dp).scale(0.6f).alpha(1f) - .background(Color.White.copy(alpha = alpha)) - ) { - snowFlakeInt(level + 1, 30f, 12.dp, 20.dp, alpha * 0.8f) - snowFlakeInt(level + 1, -30f, 12.dp, -20.dp, alpha * 0.8f) - } -} - diff --git a/benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/platform/NanoTime.kt b/benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/platform/NanoTime.kt deleted file mode 100644 index 5383ad4dee4..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/commonMain/kotlin/platform/NanoTime.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.jetbrains.compose.demo.visuals.platform - -expect fun nanoTime(): Long - -expect fun measureTime(): Long -expect fun exit(): Unit \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index c7e7a05a1f6..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.* - -actual fun width(): Int = 640 -actual fun height(): Int = 480 - -@Composable -fun NYWindow(onCloseRequest: () -> Unit) { - val windowState = remember { WindowState(width = width.dp, height = height.dp) } - Window(onCloseRequest = onCloseRequest, undecorated = false, transparent = false, state = windowState) { - NYContent() - } -} - -fun mainNY() = application { - NYWindow(::exitApplication) -} - - diff --git a/benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/platform/NanoTime.kt b/benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/platform/NanoTime.kt deleted file mode 100644 index 6b4da718d75..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/desktopMain/kotlin/platform/NanoTime.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.jetbrains.compose.demo.visuals.platform - -import kotlin.system.exitProcess - -actual fun nanoTime(): Long = 0//System.nanoTime() - -actual fun measureTime() = System.nanoTime() -actual fun exit(): Unit = exitProcess(0) \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/actuals.ios.kt b/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/actuals.ios.kt deleted file mode 100644 index d7fb7142b60..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/actuals.ios.kt +++ /dev/null @@ -1,4 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -actual fun width(): Int = 400 -actual fun height(): Int = 800 \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/main.ios.kt b/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/main.ios.kt deleted file mode 100644 index bcab5fa15a2..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/main.ios.kt +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -import androidx.compose.ui.window.ComposeUIViewController -import org.jetbrains.compose.demo.visuals.NYContent -import platform.UIKit.UIViewController - -fun MainViewController() : UIViewController = ComposeUIViewController { NYContent() } diff --git a/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/platform/NanoTime.kt b/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/platform/NanoTime.kt deleted file mode 100644 index 2044acd82d1..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/iosMain/kotlin/platform/NanoTime.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.jetbrains.compose.demo.visuals.platform - -import kotlin.system.exitProcess - -actual fun nanoTime(): Long = kotlin.system.getTimeNanos() - -actual fun measureTime() = nanoTime() -actual fun exit(): Unit = exitProcess(0) \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/actuals.macos.kt b/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/actuals.macos.kt deleted file mode 100644 index 415f78bcf9e..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/actuals.macos.kt +++ /dev/null @@ -1,4 +0,0 @@ -package org.jetbrains.compose.demo.visuals - -actual fun width(): Int = 640 -actual fun height(): Int = 480 \ No newline at end of file diff --git a/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/main.macos.kt b/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/main.macos.kt deleted file mode 100644 index 600bf5d8a38..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/main.macos.kt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -import androidx.compose.ui.window.Window -import androidx.compose.runtime.remember -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.visuals.NYContent -import platform.AppKit.NSApp -import platform.AppKit.NSApplication - -fun main() { - NSApplication.sharedApplication() - Window("Visual Effects") { - NYContent() - } - NSApp?.run() -} diff --git a/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/platform/NanoTime.kt b/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/platform/NanoTime.kt deleted file mode 100644 index 21a88b5512b..00000000000 --- a/benchmarks/ios/visual-effects-ny/shared/src/macosMain/kotlin/platform/NanoTime.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.jetbrains.compose.demo.visuals.platform - -import kotlin.system.exitProcess - -actual fun nanoTime(): Long = 0;//kotlin.system.getTimeNanos() - -actual fun measureTime() = kotlin.system.getTimeNanos() -actual fun exit(): Unit = exitProcess(0) \ No newline at end of file diff --git a/benchmarks/kn-performance/.gitignore b/benchmarks/kn-performance/.gitignore deleted file mode 100644 index 239c7125d7e..00000000000 --- a/benchmarks/kn-performance/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -local.properties -build -.gradle -.idea -.DS_Store diff --git a/benchmarks/kn-performance/README.md b/benchmarks/kn-performance/README.md index 523f2c1003f..d3e6cb10dd8 100644 --- a/benchmarks/kn-performance/README.md +++ b/benchmarks/kn-performance/README.md @@ -1,5 +1 @@ -# Compose benchmarks for K/N - -## Run native on MacOS - - `./gradlew runReleaseExecutableMacosArm64` (Works on Arm64 processors) - - `./gradlew runReleaseExecutableMacosX64` (Works on Intel processors) +### Moved to [multiplatform](https://github.com/JetBrains/compose-multiplatform/tree/master/benchmarks/multiplatform) \ No newline at end of file diff --git a/benchmarks/kn-performance/build.gradle.kts b/benchmarks/kn-performance/build.gradle.kts deleted file mode 100644 index 2b4f81ce91a..00000000000 --- a/benchmarks/kn-performance/build.gradle.kts +++ /dev/null @@ -1,83 +0,0 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -version = "1.0-SNAPSHOT" - -repositories { - mavenLocal() - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") -} - -kotlin { - jvm("desktop") - macosX64 { - binaries { - executable { - entryPoint = "main" - freeCompilerArgs += listOf( - "-linker-option", "-framework", "-linker-option", "Metal" - ) - } - } - } - macosArm64 { - binaries { - executable { - entryPoint = "main" - freeCompilerArgs += listOf( - "-linker-option", "-framework", "-linker-option", "Metal" - ) - } - } - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.ui) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.runtime) - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.components.resources) - } - } - - val desktopMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - runtimeOnly("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.7.1") - } - } - - val nativeMain by creating { - dependsOn(commonMain) - } - val macosMain by creating { - dependsOn(nativeMain) - } - val macosX64Main by getting { - dependsOn(macosMain) - } - val macosArm64Main by getting { - dependsOn(macosMain) - } - } -} - -compose.desktop { - application { - mainClass = "Main_desktopKt" - } -} - -tasks.withType { - kotlinOptions.jvmTarget = "11" -} - diff --git a/benchmarks/kn-performance/gradle.properties b/benchmarks/kn-performance/gradle.properties deleted file mode 100644 index 17ba8bd122e..00000000000 --- a/benchmarks/kn-performance/gradle.properties +++ /dev/null @@ -1,10 +0,0 @@ -compose.version=1.5.10 -kotlin.version=1.9.20 -org.gradle.jvmargs=-Xmx3g -kotlin.native.useEmbeddableCompilerJar=true -compose.desktop.verbose=true -android.useAndroidX=true -kotlin.js.webpack.major.version=4 -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.macos.enabled=true -org.jetbrains.compose.experimental.uikit.enabled=true diff --git a/benchmarks/kn-performance/gradle/wrapper/gradle-wrapper.properties b/benchmarks/kn-performance/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index ae04661ee73..00000000000 --- a/benchmarks/kn-performance/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/benchmarks/kn-performance/gradlew.bat b/benchmarks/kn-performance/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/benchmarks/kn-performance/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/benchmarks/kn-performance/settings.gradle.kts b/benchmarks/kn-performance/settings.gradle.kts deleted file mode 100644 index b39db44fad8..00000000000 --- a/benchmarks/kn-performance/settings.gradle.kts +++ /dev/null @@ -1,18 +0,0 @@ -pluginManagement { - repositories { - mavenLocal() - mavenCentral() - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - kotlin("multiplatform").version(kotlinVersion) - val composeVersion = extra["compose.version"] as String - id("org.jetbrains.compose").version(composeVersion) - } -} - -rootProject.name = "compose-benchmarks" diff --git a/benchmarks/kn-performance/src/commonMain/kotlin/Benchmarks.kt b/benchmarks/kn-performance/src/commonMain/kotlin/Benchmarks.kt deleted file mode 100644 index cd2d006c3a3..00000000000 --- a/benchmarks/kn-performance/src/commonMain/kotlin/Benchmarks.kt +++ /dev/null @@ -1,151 +0,0 @@ -import androidx.compose.runtime.Composable -import benchmarks.animation.AnimatedVisibility -import benchmarks.lazygrid.LazyGrid -import benchmarks.visualeffects.NYContent -import kotlin.math.roundToInt -import kotlin.time.Duration - -enum class BenchmarkFrameTimeKind { - CPU, GPU -} - - -fun BenchmarkFrameTimeKind.toPrettyPrintString(): String = - when (this) { - BenchmarkFrameTimeKind.CPU -> "CPU" - BenchmarkFrameTimeKind.GPU -> "GPU" - } - -data class BenchmarkFrame( - val cpuDuration: Duration, - val gpuDuration: Duration -) { - fun duration(kind: BenchmarkFrameTimeKind): Duration = - when (kind) { - BenchmarkFrameTimeKind.CPU -> cpuDuration - BenchmarkFrameTimeKind.GPU -> gpuDuration - } -} - -data class BenchmarkPercentileAverage( - val percentile: Double, - val average: Duration -) - -data class MissedFrames( - val count: Int, - val ratio: Double -) { - fun prettyPrint(description: String) { - println( - """ - Missed frames ($description): - - count: $count - - ratio: $ratio - - """.trimIndent() - ) - } -} - -data class BenchmarkStats( - val frameBudget: Duration, - val percentileCPUAverage: List, - val percentileGPUAverage: List, - val noBufferingMissedFrames: MissedFrames, - val doubleBufferingMissedFrames: MissedFrames -) { - fun prettyPrint() { - percentileCPUAverage.prettyPrint(BenchmarkFrameTimeKind.CPU) - println() - percentileGPUAverage.prettyPrint(BenchmarkFrameTimeKind.GPU) - println() - noBufferingMissedFrames.prettyPrint("no buffering") - doubleBufferingMissedFrames.prettyPrint("double buffering") - } - - private fun List.prettyPrint(kind: BenchmarkFrameTimeKind) { - forEach { - println("Worst p${(it.percentile * 100).roundToInt()} ${kind.toPrettyPrintString()} average: ${it.average}") - } - } -} - -class BenchmarkResult( - private val frameBudget: Duration, - private val frames: List, -) { - private fun percentileAverageFrameTime(percentile: Double, kind: BenchmarkFrameTimeKind): Duration { - require(percentile in 0.0..1.0) - - val startIndex = ((frames.size - 1) * percentile).roundToInt() - - val percentileFrames = frames.sortedBy { it.duration(kind) }.subList(frames.size - startIndex - 1, frames.size) - - return averageDuration(percentileFrames) { - it.duration(kind) - } - } - - fun generateStats(): BenchmarkStats { - val noBufferingMissedFramesCount = frames.count { - it.cpuDuration + it.gpuDuration > frameBudget - } - - val doubleBufferingMissedFrames = frames.count { - maxOf(it.cpuDuration, it.gpuDuration) > frameBudget - } - - return BenchmarkStats( - frameBudget, - listOf(0.01, 0.02, 0.05, 0.1, 0.25, 0.5).map { percentile -> - val average = percentileAverageFrameTime(percentile, BenchmarkFrameTimeKind.CPU) - - BenchmarkPercentileAverage(percentile, average) - }, - listOf(0.01, 0.1, 0.5).map { percentile -> - val average = percentileAverageFrameTime(percentile, BenchmarkFrameTimeKind.GPU) - - BenchmarkPercentileAverage(percentile, average) - }, - MissedFrames(noBufferingMissedFramesCount, noBufferingMissedFramesCount / frames.size.toDouble()), - MissedFrames(doubleBufferingMissedFrames, doubleBufferingMissedFrames / frames.size.toDouble()) - ) - } - - private fun averageDuration(frames: List, selector: (BenchmarkFrame) -> Duration): Duration = - frames.fold(Duration.ZERO) { acc, frame -> - acc + selector(frame) - } / frames.size - -} - -fun runBenchmark( - name: String, - width: Int, - height: Int, - targetFps: Int, - frameCount: Int, - graphicsContext: GraphicsContext?, - content: @Composable () -> Unit -): BenchmarkStats { - val stats = measureComposable(frameCount, width, height, targetFps, graphicsContext, content).generateStats() - - println(name) - stats.prettyPrint() - println() - - return stats -} - -fun runBenchmarks( - width: Int = 1920, - height: Int = 1080, - targetFps: Int = 120, - graphicsContext: GraphicsContext? = null -) { - println("Running emulating $targetFps FPS") - runBenchmark("AnimatedVisibility", width, height, targetFps, 1000, graphicsContext) { AnimatedVisibility() } - runBenchmark("LazyGrid", width, height, targetFps, 1000, graphicsContext) { LazyGrid() } - runBenchmark("VisualEffects", width, height, targetFps, 1000, graphicsContext) { NYContent(width, height) } -} \ No newline at end of file diff --git a/benchmarks/kn-performance/src/commonMain/kotlin/MeasureComposable.kt b/benchmarks/kn-performance/src/commonMain/kotlin/MeasureComposable.kt deleted file mode 100644 index f614668ea32..00000000000 --- a/benchmarks/kn-performance/src/commonMain/kotlin/MeasureComposable.kt +++ /dev/null @@ -1,76 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.ui.ComposeScene -import androidx.compose.ui.unit.Constraints -import org.jetbrains.skia.DirectContext -import org.jetbrains.skia.Surface -import kotlin.time.Duration -import kotlin.time.Duration.Companion.nanoseconds -import kotlin.time.ExperimentalTime -import kotlin.time.measureTime -import kotlinx.coroutines.* - -const val nanosPerSecond = 1E9.toLong() -const val millisPerSecond = 1e3.toLong() -const val nanosPerMillisecond = nanosPerSecond / millisPerSecond - -interface GraphicsContext { - fun surface(width: Int, height: Int): Surface - - suspend fun awaitGPUCompletion() -} - -@OptIn(ExperimentalTime::class) -fun measureComposable( - frameCount: Int = 500, - width: Int, - height: Int, - targetFps: Int, - graphicsContext: GraphicsContext?, - content: @Composable () -> Unit -): BenchmarkResult = runBlocking { - val scene = ComposeScene() - try { - val nanosPerFrame = (1.0 / targetFps.toDouble() * nanosPerSecond).toLong() - scene.setContent(content) - scene.constraints = Constraints.fixed(width, height) - val surface = graphicsContext?.surface(width, height) ?: Surface.makeNull(width, height) - - val frames = MutableList(frameCount) { - BenchmarkFrame(Duration.INFINITE, Duration.INFINITE) - } - - var nanoTime = 0L - - repeat(frameCount) { - val frameTime = measureTime { - val cpuTime = measureTime { - scene.render(surface.canvas, nanoTime) - surface.flushAndSubmit(false) - } - - val gpuTime = measureTime { - graphicsContext?.awaitGPUCompletion() - } - - frames[it] = BenchmarkFrame(cpuTime, gpuTime) - } - - val actualNanosPerFrame = frameTime.inWholeNanoseconds - val nanosUntilDeadline = nanosPerFrame - actualNanosPerFrame - - // Emulate waiting for next vsync - if (nanosUntilDeadline > 0) { - delay(nanosUntilDeadline / nanosPerMillisecond) - } - - nanoTime += maxOf(actualNanosPerFrame, nanosPerFrame) - } - - BenchmarkResult( - nanosPerFrame.nanoseconds, - frames - ) - } finally { - scene.close() - } -} diff --git a/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt b/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt deleted file mode 100644 index ea3144ff18a..00000000000 --- a/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt +++ /dev/null @@ -1,38 +0,0 @@ -package benchmarks.animation - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import kotlinx.coroutines.delay -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource - -@OptIn(ExperimentalResourceApi::class) -@Composable -fun AnimatedVisibility() { - MaterialTheme { - var showImage by remember { mutableStateOf(false) } - LaunchedEffect(showImage) { - delay(200) - showImage = !showImage - } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - AnimatedVisibility(showImage) { - Image( - painterResource("compose-multiplatform.xml"), - null - ) - } - } - } -} \ No newline at end of file diff --git a/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt b/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt deleted file mode 100644 index 386630f9a07..00000000000 --- a/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt +++ /dev/null @@ -1,106 +0,0 @@ -package benchmarks.lazygrid - -import androidx.compose.foundation.gestures.scrollBy -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.grid.GridCells -import androidx.compose.foundation.lazy.grid.LazyVerticalGrid -import androidx.compose.foundation.lazy.grid.items -import androidx.compose.foundation.lazy.grid.rememberLazyGridState -import androidx.compose.material.Card -import androidx.compose.material.Checkbox -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.runtime.withFrameMillis -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.semantics.contentDescription -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp - -@Composable -fun LazyGrid() { - val itemCount = 12000 - val entries = remember {List(itemCount) { Entry("$it") }} - val state = rememberLazyGridState() - - var smoothScroll by remember { mutableStateOf(false)} - - MaterialTheme { - Column { - Row { - Checkbox( - checked = smoothScroll, - onCheckedChange = { value -> smoothScroll = value} - ) - Text (text = "Smooth scroll", modifier = Modifier.align(Alignment.CenterVertically)) - } - - LazyVerticalGrid( - columns = GridCells.Fixed(4), - modifier = Modifier.fillMaxWidth().semantics { contentDescription = "IamLazy" }, - state = state - ) { - items(entries) { - ListCell(it) - } - } - } - - } - - var curItem by remember { mutableStateOf(0) } - var direct by remember { mutableStateOf(true) } - if (smoothScroll) { - LaunchedEffect(Unit) { - while (smoothScroll) { - withFrameMillis { } - curItem = state.firstVisibleItemIndex - if (curItem == 0) direct = true - if (curItem > itemCount - 100) direct = false - state.scrollBy(if (direct) 5f else -5f) - } - } - } else { - LaunchedEffect(curItem) { - withFrameMillis { } - curItem += if (direct) 50 else -50 - if (curItem >= itemCount) { - direct = false - curItem = itemCount - 1 - } else if (curItem <= 0) { - direct = true - curItem = 0 - } - state.scrollToItem(curItem) - } - } - -} - -data class Entry(val contents: String) - -@Composable -private fun ListCell(entry: Entry) { - Card( - modifier = Modifier - .fillMaxWidth() - .padding(8.dp) - ) { - Text( - text = entry.contents, - textAlign = TextAlign.Center, - style = MaterialTheme.typography.h5, - modifier = Modifier.padding(16.dp) - ) - } -} \ No newline at end of file diff --git a/benchmarks/kn-performance/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/kn-performance/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 6d1367a1a87..00000000000 --- a/benchmarks/kn-performance/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.runBlocking - -fun main() = runBlocking(Dispatchers.Main) { runBenchmarks() } diff --git a/benchmarks/kn-performance/src/macosMain/kotlin/main.macos.kt b/benchmarks/kn-performance/src/macosMain/kotlin/main.macos.kt deleted file mode 100644 index 73adc79d6b6..00000000000 --- a/benchmarks/kn-performance/src/macosMain/kotlin/main.macos.kt +++ /dev/null @@ -1,66 +0,0 @@ -import kotlinx.cinterop.ExperimentalForeignApi -import kotlinx.cinterop.objcPtr -import org.jetbrains.skia.* -import platform.Metal.* -import kotlin.coroutines.resume -import kotlin.coroutines.suspendCoroutine - -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -@OptIn(ExperimentalForeignApi::class) -fun main() { - val graphicsContext = object : GraphicsContext { - private val device = MTLCreateSystemDefaultDevice() ?: throw IllegalStateException("Can't create MTLDevice") - private val commandQueue = device.newCommandQueue() ?: throw IllegalStateException("Can't create MTLCommandQueue") - private val directContext = DirectContext.makeMetal(device.objcPtr(), commandQueue.objcPtr()) - private var cachedSurface: Surface? = null - - override fun surface(width: Int, height: Int): Surface { - val oldSurface = cachedSurface - - if (oldSurface != null && oldSurface.width == width && oldSurface.height == height) { - return oldSurface - } - - val descriptor = MTLTextureDescriptor() - descriptor.width = width.toULong() - descriptor.height = height.toULong() - descriptor.usage = MTLTextureUsageShaderRead or MTLTextureUsageShaderWrite or MTLTextureUsageRenderTarget - descriptor.textureType = MTLTextureType2D - descriptor.pixelFormat = MTLPixelFormatBGRA8Unorm - descriptor.mipmapLevelCount = 1UL - - val texture = device.newTextureWithDescriptor(descriptor) ?: throw IllegalStateException("Can't create MTLTexture") - - val renderTarget = BackendRenderTarget.makeMetal(width, height, texture.objcPtr()) - - return Surface.makeFromBackendRenderTarget( - directContext, - renderTarget, - SurfaceOrigin.TOP_LEFT, - SurfaceColorFormat.BGRA_8888, - ColorSpace.sRGB, - SurfaceProps(pixelGeometry = PixelGeometry.UNKNOWN) - ).also { - cachedSurface = it - } ?: throw IllegalStateException("Can't create Surface") - } - - override suspend fun awaitGPUCompletion() { - val commandBuffer = commandQueue.commandBuffer() ?: return - - suspendCoroutine { continuation -> - commandBuffer.addCompletedHandler { - continuation.resume(Unit) - } - - commandBuffer.commit() - } - } - } - - runBenchmarks(graphicsContext = graphicsContext) -} diff --git a/benchmarks/ios/jvm-vs-kotlin-native/.gitignore b/benchmarks/multiplatform/.gitignore similarity index 100% rename from benchmarks/ios/jvm-vs-kotlin-native/.gitignore rename to benchmarks/multiplatform/.gitignore diff --git a/benchmarks/multiplatform/README.md b/benchmarks/multiplatform/README.md new file mode 100644 index 00000000000..05eea2f007c --- /dev/null +++ b/benchmarks/multiplatform/README.md @@ -0,0 +1,50 @@ +# Compose Multiplatform benchmarks + +## Run Desktop +- `./gradlew :benchmarks:run` + +## Run native on iOS +Open the project in Fleet or Android Studio with KMM plugin installed and +choose `iosApp` run configuration. Make sure that you build the app in `Release` configuration. +Alternatively you may open `iosApp/iosApp` project in XCode and run the app from there. + +## Run native on MacOS + - `./gradlew :benchmarks:runReleaseExecutableMacosArm64` (Works on Arm64 processors) + - `./gradlew :benchmarks:runReleaseExecutableMacosX64` (Works on Intel processors) + +## Run K/Wasm target in D8: +`./gradlew :benchmarks:wasmJsD8ProductionRun` + +or with arguments: + +`./gradlew :benchmarks:wasmJsD8ProductionRun -PrunArguments=benchmarks=AnimatedVisibility` + +## To build and run a K/Wasm D8 distribution for Jetstream3-like: +`./gradlew :benchmarks:buildD8Distribution --rerun-tasks` + +then in a distribution directory run using your D8 binary: + +`~/.gradle/d8/v8-mac-arm64-rel-11.9.85/d8 --module launcher_jetstream3.mjs -- AnimatedVisibility 1000` + +## Run in web browser: + +Please run your browser with manual GC enabled before running the benchmark, like for Google Chrome: + +`open -a Google\ Chrome --args --js-flags="--expose-gc"` + +- `./gradlew clean :benchmarks:wasmJsBrowserProductionRun` (you can see the results printed on the page itself) + + +# Benchmarks description + +| Benchmark Name | File Path | Description | +|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| AnimatedVisibility | [benchmarks/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt](benchmarks/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt) | Tests the performance of the AnimatedVisibility component by repeatedly toggling the visibility of a PNG image. | +| LazyGrid | [benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt](benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt) | Tests the performance of the LazyVerticalGrid component with 12,000 items and jumps to specific items multiple times while running. | +| LazyGrid-ItemLaunchedEffect | [benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt](benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt) | Same as LazyGrid but adds a LaunchedEffect in each grid item that simulates an async task. | +| LazyGrid-SmoothScroll | [benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt](benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt) | Same as LazyGrid but uses smooth scrolling instead of jumping to items. | +| LazyGrid-SmoothScroll-ItemLaunchedEffect | [benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt](benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt) | Combines smooth scrolling with LaunchedEffect in each item. | +| VisualEffects | [benchmarks/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt](benchmarks/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt) | Tests the performance of complex animations and visual effects including snow flakes, stars, and rocket particles. | +| LazyList | [benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MainUI.kt](benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MainUI.kt) | Tests the performance of a complex LazyColumn implementation with features like pull-to-refresh, loading more items, and continuous scrolling. | +| MultipleComponents | [benchmarks/src/commonMain/kotlin/benchmarks/example1/Example1.kt](benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/MultipleComponents.kt) | Tests the performance of a comprehensive UI that showcases various Compose components including layouts, animations, and styled text. | +| MultipleComponents-NoVectorGraphics | [benchmarks/src/commonMain/kotlin/benchmarks/example1/Example1.kt](benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/MultipleComponents.kt) | Same as MultipleComponents but skips the Composables with vector graphics rendering. | diff --git a/benchmarks/multiplatform/benchmarks/build.gradle.kts b/benchmarks/multiplatform/benchmarks/build.gradle.kts new file mode 100644 index 00000000000..c8a14d5adb1 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/build.gradle.kts @@ -0,0 +1,228 @@ +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack +import org.jetbrains.kotlin.gradle.targets.wasm.d8.D8Exec +import kotlin.text.replace + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.composeMultiplatform) + alias(libs.plugins.composeCompiler) + alias(libs.plugins.kotlinSerialization) +} + +version = "1.0-SNAPSHOT" + +repositories { + mavenLocal() + google() + mavenCentral() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") +} + +kotlin { + jvm("desktop") + + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { iosTarget -> + iosTarget.binaries.framework { + baseName = "benchmarks" + isStatic = true + } + } + + listOf( + macosX64(), + macosArm64() + ).forEach { macosTarget -> + macosTarget.binaries { + executable { + entryPoint = "main" + } + } + } + + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + binaries.executable() + d8 { + compilerOptions.freeCompilerArgs.add("-Xwasm-attach-js-exception") + runTask { + // It aborts even on coroutine cancellation exceptions: + // d8Args.add("--abort-on-uncaught-exception") + } + } + browser() + + binaries.configureEach { + compilation.compileTaskProvider.configure { + compilerOptions { + freeCompilerArgs.apply { + add("-Xwasm-use-new-exception-proposal") + } + } + } + } + } + + sourceSets { + val commonMain by getting { + dependencies { + implementation(compose.ui) + implementation(compose.foundation) + implementation(compose.material) + implementation(compose.runtime) + implementation(compose.components.resources) + implementation("org.jetbrains.compose.material:material-icons-core:1.6.11") + implementation(libs.kotlinx.serialization.json) + implementation(libs.kotlinx.io) + implementation(libs.kotlinx.datetime) + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.content.negotiation) + implementation(libs.ktor.serialization.kotlinx.json) + } + } + + val desktopMain by getting { + dependencies { + implementation(compose.desktop.currentOs) + runtimeOnly(libs.kotlinx.coroutines.swing) + implementation(libs.ktor.server.core) + implementation(libs.ktor.server.netty) + implementation(libs.ktor.server.content.negotiation) + implementation(libs.ktor.client.java) + implementation(libs.ktor.server.cors) + } + } + + val wasmJsMain by getting { + dependencies { + implementation(libs.ktor.client.js) + implementation(libs.ktor.client.content.negotiation) + implementation(libs.ktor.serialization.kotlinx.json) + } + } + } +} + +compose.desktop { + application { + mainClass = "Main_desktopKt" + } +} + +val runArguments: String? by project + +val composeVersion = libs.versions.compose.multiplatform +val kotlinVersion = libs.versions.kotlin + +// Handle runArguments property +gradle.taskGraph.whenReady { + var appArgs = runArguments + ?.split(" ") + .orEmpty().let { + it + listOf("versionInfo=\"${composeVersion.get()} (Kotlin ${kotlinVersion.get()})\"") + } + .map { + it.replace(" ", "%20") + } + + println("runArguments: $appArgs") + + tasks.named("run") { + args(appArgs) + } + tasks.forEach { t -> + if ((t is Exec) && t.name.startsWith("runReleaseExecutableMacos")) { + t.args(appArgs) + } + } + tasks.named("wasmJsBrowserProductionRun") { + val args = appArgs + .mapIndexed { index, arg -> "arg$index=$arg" } + .joinToString("&") + + devServerProperty = devServerProperty.get().copy( + open = "http://localhost:8080/?$args" + ) + } + + @OptIn(ExperimentalWasmDsl::class) + tasks.withType().configureEach { + inputFileProperty.set(rootProject.layout.buildDirectory.file( + "wasm/packages/compose-benchmarks-benchmarks/kotlin/launcher.mjs") + ) + + args(appArgs) + } +} + + +tasks.register("buildD8Distribution", Zip::class.java) { + dependsOn("wasmJsProductionExecutableCompileSync") + from(rootProject.layout.buildDirectory.file("wasm/packages/compose-benchmarks-benchmarks/kotlin")) + archiveFileName.set("d8-distribution.zip") + destinationDirectory.set(rootProject.layout.buildDirectory.dir("distributions")) +} + +tasks.register("runBrowserAndSaveStats") { + fun printProcessOutput(inputStream: java.io.InputStream) { + Thread { + inputStream.bufferedReader().use { reader -> + reader.lines().forEach { line -> + println(line) + } + } + }.start() + } + + fun runCommand(vararg command: String): Process { + return ProcessBuilder(*command).start().also { + printProcessOutput(it.inputStream) + printProcessOutput(it.errorStream) + } + } + + doFirst { + var serverProcess: Process? = null + var clientProcess: Process? = null + try { + serverProcess = runCommand("./gradlew", "benchmarks:run", + "-PrunArguments=runServer=true saveStatsToJSON=true") + + clientProcess = runCommand("./gradlew", "benchmarks:wasmJsBrowserProductionRun", + "-PrunArguments=$runArguments saveStatsToJSON=true") + + serverProcess.waitFor() + } catch (e: Throwable) { + e.printStackTrace() + } finally { + serverProcess?.destroy() + clientProcess?.destroy() + } + } +} + +tasks.withType().configureEach { + binaryenArgs.add("-g") // keep the readable names +} + +@OptIn(ExperimentalWasmDsl::class) +project.the().apply { + // version = "122" // change only if needed +} + +val jsOrWasmRegex = Regex("js|wasm") + +configurations.all { + resolutionStrategy.eachDependency { + if (requested.group.startsWith("org.jetbrains.skiko") && + jsOrWasmRegex.containsMatchIn(requested.name) + ) { + // to keep the readable names from Skiko + useVersion(requested.version!! + "+profiling") + } + } +} diff --git a/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/BenchmarksSave.apple.kt b/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/BenchmarksSave.apple.kt new file mode 100644 index 00000000000..815b87fb501 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/BenchmarksSave.apple.kt @@ -0,0 +1,6 @@ +/* + * Copyright 2020-2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +actual fun saveBenchmarkStats(name: String, stats: BenchmarkStats) = saveBenchmarkStatsOnDisk(name, stats) diff --git a/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/GraphicsContext.apple.kt b/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/GraphicsContext.apple.kt new file mode 100644 index 00000000000..fb6564fcc41 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/GraphicsContext.apple.kt @@ -0,0 +1,65 @@ +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.objcPtr +import org.jetbrains.skia.BackendRenderTarget +import org.jetbrains.skia.ColorSpace +import org.jetbrains.skia.DirectContext +import org.jetbrains.skia.PixelGeometry +import org.jetbrains.skia.Surface +import org.jetbrains.skia.SurfaceColorFormat +import org.jetbrains.skia.SurfaceOrigin +import org.jetbrains.skia.SurfaceProps +import platform.Metal.MTLCreateSystemDefaultDevice +import platform.Metal.MTLPixelFormatBGRA8Unorm +import platform.Metal.MTLTextureDescriptor +import platform.Metal.MTLTextureType2D +import platform.Metal.MTLTextureUsageRenderTarget +import platform.Metal.MTLTextureUsageShaderRead +import platform.Metal.MTLTextureUsageShaderWrite +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine + +@OptIn(ExperimentalForeignApi::class) +fun graphicsContext() = object : GraphicsContext { + private val device = MTLCreateSystemDefaultDevice() ?: throw IllegalStateException("Can't create MTLDevice") + private val commandQueue = device.newCommandQueue() ?: throw IllegalStateException("Can't create MTLCommandQueue") + private val directContext = DirectContext.makeMetal(device.objcPtr(), commandQueue.objcPtr()) + + override fun surface(width: Int, height: Int): Surface { + val descriptor = MTLTextureDescriptor() + descriptor.width = width.toULong() + descriptor.height = height.toULong() + descriptor.usage = MTLTextureUsageShaderRead or MTLTextureUsageShaderWrite or MTLTextureUsageRenderTarget + descriptor.textureType = MTLTextureType2D + descriptor.pixelFormat = MTLPixelFormatBGRA8Unorm + descriptor.mipmapLevelCount = 1UL + + val texture = device.newTextureWithDescriptor(descriptor) ?: throw IllegalStateException("Can't create MTLTexture") + + val renderTarget = BackendRenderTarget.makeMetal(width, height, texture.objcPtr()) + + return Surface.makeFromBackendRenderTarget( + directContext, + renderTarget, + SurfaceOrigin.TOP_LEFT, + SurfaceColorFormat.BGRA_8888, + ColorSpace.sRGB, + SurfaceProps(pixelGeometry = PixelGeometry.UNKNOWN) + ) ?: throw IllegalStateException("Can't create Surface") + } + + override suspend fun awaitGPUCompletion() { + val commandBuffer = commandQueue.commandBuffer() ?: return + + suspendCoroutine { continuation -> + commandBuffer.addCompletedHandler { + continuation.resume(Unit) + } + + commandBuffer.commit() + } + } +} + + + + diff --git a/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/runGC.native.kt b/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/runGC.native.kt new file mode 100644 index 00000000000..7b499db7325 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/appleMain/kotlin/runGC.native.kt @@ -0,0 +1,7 @@ +import kotlin.native.runtime.GC +import kotlin.native.runtime.NativeRuntimeApi + +@OptIn(NativeRuntimeApi::class) +actual fun runGC() { + GC.collect() +} \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/compose-multiplatform.png b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/compose-multiplatform.png new file mode 100644 index 00000000000..8b74accd0be Binary files /dev/null and b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/compose-multiplatform.png differ diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_cat.jpg b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_cat.jpg new file mode 100644 index 00000000000..62f987d6dcf Binary files /dev/null and b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_cat.jpg differ diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_ic_call_answer.xml b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_ic_call_answer.xml new file mode 100644 index 00000000000..da8a42f54a3 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_ic_call_answer.xml @@ -0,0 +1,36 @@ + + + + diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_sailing.svg b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_sailing.svg new file mode 100644 index 00000000000..ba23d0fe090 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/drawable/example1_sailing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/files/example1_compose-community-primary.png b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/files/example1_compose-community-primary.png new file mode 100644 index 00000000000..a73ddd79899 Binary files /dev/null and b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/files/example1_compose-community-primary.png differ diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/font/jetbrainsmono_italic.ttf b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/font/jetbrainsmono_italic.ttf new file mode 100644 index 00000000000..44e1f4a7f3a Binary files /dev/null and b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/font/jetbrainsmono_italic.ttf differ diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/font/jetbrainsmono_regular.ttf b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/font/jetbrainsmono_regular.ttf new file mode 100644 index 00000000000..7db854fd913 Binary files /dev/null and b/benchmarks/multiplatform/benchmarks/src/commonMain/composeResources/font/jetbrainsmono_regular.ttf differ diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Benchmarks.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Benchmarks.kt new file mode 100644 index 00000000000..17f83aead00 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Benchmarks.kt @@ -0,0 +1,282 @@ +import androidx.compose.runtime.Composable +import benchmarks.animation.AnimatedVisibility +import benchmarks.complexlazylist.components.MainUiNoImageUseModel +import benchmarks.multipleComponents.MultipleComponentsExample +import benchmarks.lazygrid.LazyGrid +import benchmarks.visualeffects.NYContent +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import kotlin.math.roundToInt +import kotlin.time.Duration + +enum class BenchmarkFrameTimeKind { + CPU, GPU +} + + +fun BenchmarkFrameTimeKind.toPrettyPrintString(): String = + when (this) { + BenchmarkFrameTimeKind.CPU -> "CPU" + BenchmarkFrameTimeKind.GPU -> "GPU" + } + +data class BenchmarkFrame( + val cpuDuration: Duration, + val gpuDuration: Duration +) { + fun duration(kind: BenchmarkFrameTimeKind): Duration = + when (kind) { + BenchmarkFrameTimeKind.CPU -> cpuDuration + BenchmarkFrameTimeKind.GPU -> gpuDuration + } +} + +@Serializable +data class BenchmarkConditions( + val frameCount: Int, + val warmupCount: Int +) { + fun prettyPrint() { + println("$frameCount frames (warmup $warmupCount)") + } + + fun putFormattedValuesTo(map: MutableMap) { + map.put("Frames/warmup", "$frameCount/$warmupCount") + } +} + +@Serializable +data class FrameInfo( + val cpuTime: Duration, + val gpuTime: Duration, +) { + val totalTime = cpuTime + gpuTime + + fun prettyPrint() { + println("CPU average frame time: $cpuTime") + println("GPU average frame time: $gpuTime") + println("TOTAL average frame time: $totalTime") + } + + fun putFormattedValuesTo(map: MutableMap) { + map.put("CPU avg frame (ms)", cpuTime.formatAsMilliseconds()) + map.put("GPU avg frame (ms)", gpuTime.formatAsMilliseconds()) + map.put("TOTAL avg frame (ms)", totalTime.formatAsMilliseconds()) + } +} + +@Serializable +data class BenchmarkPercentileAverage( + val percentile: Double, + val average: Duration +) + +@Serializable +data class MissedFrames( + val count: Int, + val ratio: Double +) { + fun prettyPrint(description: String) { + println( + """ + Missed frames ($description): + - count: $count + - ratio: $ratio + + """.trimIndent() + ) + } + + fun putFormattedValuesTo(description: String, map: MutableMap) { + map.put("Missed frames ($description)", "$ratio") + } +} + +private val json = Json { prettyPrint = true } + +@Serializable +data class BenchmarkStats( + val name: String, + val frameBudget: Duration, + val conditions: BenchmarkConditions, + val averageFrameInfo: FrameInfo?, + val percentileCPUAverage: List, + val percentileGPUAverage: List, + val noBufferingMissedFrames: MissedFrames, + val doubleBufferingMissedFrames: MissedFrames, +) { + fun prettyPrint() { + val versionInfo = Config.versionInfo + if (versionInfo != null) { + println("Version: $versionInfo") + } + conditions.prettyPrint() + println() + if (Config.isModeEnabled(Mode.SIMPLE)) { + val frameInfo = requireNotNull(averageFrameInfo) { "frameInfo shouldn't be null with Mode.SIMPLE" } + frameInfo.prettyPrint() + println() + } + if (Config.isModeEnabled(Mode.VSYNC_EMULATION)) { + percentileCPUAverage.prettyPrint(BenchmarkFrameTimeKind.CPU) + println() + percentileGPUAverage.prettyPrint(BenchmarkFrameTimeKind.GPU) + println() + noBufferingMissedFrames.prettyPrint("no buffering") + doubleBufferingMissedFrames.prettyPrint("double buffering") + } + } + + fun putFormattedValuesTo(map: MutableMap) { + val versionInfo = Config.versionInfo + if (versionInfo != null) { + map.put("Version", versionInfo) + } + conditions.putFormattedValuesTo(map) + if (Config.isModeEnabled(Mode.SIMPLE)) { + val frameInfo = requireNotNull(averageFrameInfo) { "frameInfo shouldn't be null with Mode.SIMPLE" } + frameInfo.putFormattedValuesTo(map) + } + if (Config.isModeEnabled(Mode.VSYNC_EMULATION)) { + percentileCPUAverage.putFormattedValuesTo(BenchmarkFrameTimeKind.CPU, map) + percentileGPUAverage.putFormattedValuesTo(BenchmarkFrameTimeKind.GPU, map) + noBufferingMissedFrames.putFormattedValuesTo("no buffering", map) + doubleBufferingMissedFrames.putFormattedValuesTo("double buffering", map) + } + } + + private fun List.prettyPrint(kind: BenchmarkFrameTimeKind) { + forEach { + println("Worst p${(it.percentile * 100).roundToInt()} ${kind.toPrettyPrintString()} (ms): ${it.average}") + } + } + + private fun List.putFormattedValuesTo( + kind: BenchmarkFrameTimeKind, + map: MutableMap + ) { + forEach { + map.put( + "Worst p${(it.percentile * 100).roundToInt()} ${kind.toPrettyPrintString()} (ms)", + it.average.formatAsMilliseconds() + ) + } + } + + fun toJsonString(): String = json.encodeToString(serializer(), this) +} + +class BenchmarkResult( + private val name: String, + private val frameBudget: Duration, + private val conditions: BenchmarkConditions, + private val averageFrameInfo: FrameInfo, + private val frames: List, +) { + private fun percentileAverageFrameTime(percentile: Double, kind: BenchmarkFrameTimeKind): Duration { + require(percentile in 0.0..1.0) + + val startIndex = ((frames.size - 1) * percentile).roundToInt() + + val percentileFrames = frames.sortedBy { it.duration(kind) }.subList(frames.size - startIndex - 1, frames.size) + + return averageDuration(percentileFrames) { + it.duration(kind) + } + } + + fun generateStats(): BenchmarkStats { + val noBufferingMissedFramesCount = frames.count { + it.cpuDuration + it.gpuDuration > frameBudget + } + + val doubleBufferingMissedFrames = frames.count { + maxOf(it.cpuDuration, it.gpuDuration) > frameBudget + } + + return BenchmarkStats( + name, + frameBudget, + conditions, + averageFrameInfo, + listOf(0.01, 0.02, 0.05, 0.1, 0.25, 0.5).map { percentile -> + val average = percentileAverageFrameTime(percentile, BenchmarkFrameTimeKind.CPU) + + BenchmarkPercentileAverage(percentile, average) + }, + listOf(0.01, 0.1, 0.5).map { percentile -> + val average = percentileAverageFrameTime(percentile, BenchmarkFrameTimeKind.GPU) + + BenchmarkPercentileAverage(percentile, average) + }, + MissedFrames(noBufferingMissedFramesCount, noBufferingMissedFramesCount / frames.size.toDouble()), + MissedFrames(doubleBufferingMissedFrames, doubleBufferingMissedFrames / frames.size.toDouble()) + ) + } + + private fun averageDuration(frames: List, selector: (BenchmarkFrame) -> Duration): Duration = + frames.fold(Duration.ZERO) { acc, frame -> + acc + selector(frame) + } / frames.size + +} + +private fun Duration.formatAsMilliseconds(): String = (inWholeMicroseconds / 1000.0).toString() + +suspend fun runBenchmark( + name: String, + width: Int, + height: Int, + targetFps: Int, + frameCount: Int, + graphicsContext: GraphicsContext?, + warmupCount: Int = 100, + content: @Composable () -> Unit +) { + if (Config.isBenchmarkEnabled(name)) { + println("# $name") + val stats = measureComposable( + name = name, + warmupCount = warmupCount, + frameCount = Config.getBenchmarkProblemSize(name, frameCount), + width = width, + height = height, + targetFps = targetFps, + graphicsContext = graphicsContext, + content = content + ).generateStats() + stats.prettyPrint() + if (Config.saveStats()) { + saveBenchmarkStats(name = name, stats = stats) + } + } +} + +suspend fun runBenchmarks( + width: Int = 1920, + height: Int = 1080, + targetFps: Int = 120, + warmupCount: Int = 100, + graphicsContext: GraphicsContext? = null +) { + println() + println("Running emulating $targetFps FPS") + println() + runBenchmark("AnimatedVisibility", width, height, targetFps, 1000, graphicsContext, warmupCount) { AnimatedVisibility() } + runBenchmark("LazyGrid", width, height, targetFps, 1000, graphicsContext, warmupCount) { LazyGrid() } + runBenchmark("LazyGrid-ItemLaunchedEffect", width, height, targetFps, 1000, graphicsContext, warmupCount) { + LazyGrid(smoothScroll = false, withLaunchedEffectInItem = true) + } + runBenchmark("LazyGrid-SmoothScroll", width, height, targetFps, 1000, graphicsContext, warmupCount) { + LazyGrid(smoothScroll = true) + } + runBenchmark("LazyGrid-SmoothScroll-ItemLaunchedEffect", width, height, targetFps, 1000, graphicsContext, warmupCount) { + LazyGrid(smoothScroll = true, withLaunchedEffectInItem = true) + } + runBenchmark("VisualEffects", width, height, targetFps, 1000, graphicsContext, warmupCount) { NYContent(width, height) } + runBenchmark("LazyList", width, height, targetFps, 1000, graphicsContext, warmupCount) { MainUiNoImageUseModel()} + runBenchmark("MultipleComponents", width, height, targetFps, 1000, graphicsContext, warmupCount) { MultipleComponentsExample() } + runBenchmark("MultipleComponents-NoVectorGraphics", width, height, targetFps, 1000, graphicsContext, warmupCount) { + MultipleComponentsExample(isVectorGraphicsSupported = false) + } +} diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/BenchmarksSave.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/BenchmarksSave.kt new file mode 100644 index 00000000000..a15fd76cd11 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/BenchmarksSave.kt @@ -0,0 +1,90 @@ +/* + * Copyright 2020-2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import kotlinx.datetime.Clock +import kotlinx.datetime.LocalDateTime +import kotlinx.datetime.TimeZone +import kotlinx.datetime.format.FormatStringsInDatetimeFormats +import kotlinx.datetime.format.byUnicodePattern +import kotlinx.datetime.toLocalDateTime +import kotlinx.io.IOException +import kotlinx.io.RawSink +import kotlinx.io.RawSource +import kotlinx.io.buffered +import kotlinx.io.files.Path +import kotlinx.io.files.SystemFileSystem +import kotlinx.io.readByteArray + +// port for the benchmarks save server +val BENCHMARK_SERVER_PORT = 8090 + +private val BENCHMARKS_SAVE_DIR = "build/benchmarks" +private fun pathToCsv(name: String) = Path("$BENCHMARKS_SAVE_DIR/$name.csv") +private fun pathToJson(name: String) = Path("$BENCHMARKS_SAVE_DIR/json-reports/$name.json") + +internal fun saveJson(benchmarkName: String, jsonString: String) { + val jsonPath = pathToJson(benchmarkName) + SystemFileSystem.createDirectories(jsonPath.parent!!) + SystemFileSystem.sink(jsonPath).writeText(jsonString) + println("JSON results saved to ${SystemFileSystem.resolve(jsonPath)}") +} + +fun saveBenchmarkStatsOnDisk(name: String, stats: BenchmarkStats) { + try { + if (Config.saveStatsToCSV) { + val path = pathToCsv(name) + + val keyToValue = mutableMapOf() + keyToValue.put("Date", currentFormattedDate) + stats.putFormattedValuesTo(keyToValue) + + var text = if (SystemFileSystem.exists(path)) { + SystemFileSystem.source(path).readText() + } else { + keyToValue.keys.joinToString(",") + "\n" + } + + fun escapeForCSV(value: String) = value.replace(",", ";") + text += keyToValue.values.joinToString(",", transform = ::escapeForCSV) + "\n" + + SystemFileSystem.createDirectories(path.parent!!) + SystemFileSystem.sink(path).writeText(text) + println("CSV results saved to ${SystemFileSystem.resolve(path)}") + println() + } else if (Config.saveStatsToJSON) { + saveJson(name, stats.toJsonString()) + println() + } + } catch (_: IOException) { + // IOException "Read-only file system" is thrown on iOS without writing permissions + } catch (_: UnsupportedOperationException) { + // UnsupportedOperationException is thrown in browser + } +} + +/** + * Saves benchmark statistics to disk or sends them to a server. + * This is an expect function with platform-specific implementations. + */ +expect fun saveBenchmarkStats(name: String, stats: BenchmarkStats) + +private fun RawSource.readText() = use { + it.buffered().readByteArray().decodeToString() +} + +internal fun RawSink.writeText(text: String) = use { + it.buffered().apply { + write(text.encodeToByteArray()) + flush() + } +} + +@OptIn(FormatStringsInDatetimeFormats::class) +private val currentFormattedDate: String get() { + val currentTime = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()) + return LocalDateTime.Format { + byUnicodePattern("dd-MM-yyyy HH:mm:ss") + }.format(currentTime) +} \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Config.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Config.kt new file mode 100644 index 00000000000..f75e7a67b06 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Config.kt @@ -0,0 +1,157 @@ +enum class Mode { + SIMPLE, + VSYNC_EMULATION, +} + +object Args { + + private fun argToSet(arg: String): Set = arg.substring(arg.indexOf('=') + 1) + .split(",").filter{!it.isEmpty()}.map{it.uppercase()}.toSet() + + + private fun argToMap(arg: String): Map = arg.substring(arg.indexOf('=') + 1) + .split(",").filter { !it.isEmpty() }.map { it.uppercase() }.associate { + if (it.contains('(') && it.contains(')')) { + it.substringBefore('(') to it.substringAfter('(').substringBefore(')').toInt() + } else { + it to -1 + } + } + + private fun String.decodeArg() = replace("%20", " ") + + /** + * Parses command line arguments to create a [Config] for benchmarks run. + * + * @param args an array of strings representing the command line arguments. + * Each argument can specify either of these settings: + * modes, benchmarks, disabledBenchmarks - comma separated values, + * versionInfo, saveStatsToCSV, saveStatsToJSON - single values. + * + * Example: benchmarks=AnimatedVisibility(100),modes=SIMPLE,versionInfo=Kotlin_2_1_20,saveStatsToCSV=true + */ + fun parseArgs(args: Array): Config { + val modes = mutableSetOf() + val benchmarks = mutableMapOf() + val disabledBenchmarks = mutableSetOf() + var versionInfo: String? = null + var saveStatsToCSV: Boolean = false + var saveStatsToJSON: Boolean = false + var runServer: Boolean = false + + for (arg in args) { + if (arg.startsWith("modes=", ignoreCase = true)) { + modes.addAll(argToSet(arg.decodeArg()).map { Mode.valueOf(it) }) + } else if (arg.startsWith("benchmarks=", ignoreCase = true)) { + benchmarks += argToMap(arg.decodeArg()) + } else if (arg.startsWith("versionInfo=", ignoreCase = true)) { + versionInfo = arg.substringAfter("=").decodeArg() + } else if (arg.startsWith("saveStatsToCSV=", ignoreCase = true)) { + saveStatsToCSV = arg.substringAfter("=").toBoolean() + } else if (arg.startsWith("saveStatsToJSON=", ignoreCase = true)) { + saveStatsToJSON = arg.substringAfter("=").toBoolean() + } else if (arg.startsWith("disabledBenchmarks=", ignoreCase = true)) { + disabledBenchmarks += argToMap(arg.decodeArg()).keys + } else if (arg.startsWith("runServer=", ignoreCase = true)) { + runServer = arg.substringAfter("=").toBoolean() + } + } + + return Config( + modes = modes, + benchmarks = benchmarks, + disabledBenchmarks = disabledBenchmarks, + versionInfo = versionInfo, + saveStatsToCSV = saveStatsToCSV, + saveStatsToJSON = saveStatsToJSON, + runServer = runServer, + ) + } +} + +/** + * Represents the benchmarks configuration parsed from command line arguments or configured programmatically. + * + * @property modes The set of enabled execution modes. If empty, all modes are considered enabled by default checks. + * @property benchmarks A map of explicitly mentioned benchmarks to their specific problem sizes. + * A value of -1 indicates the benchmark is enabled but should use its default size. + * If the map is empty, all benchmarks are considered enabled by default checks. + * @property disabledBenchmarks A set of benchmarks to skip. + * @property versionInfo Optional string containing version information. + * @property saveStatsToCSV Flag indicating whether statistics should be saved to a CSV file. + * @property saveStatsToJSON Flag indicating whether statistics should be saved to a JSON file. + */ +data class Config( + val modes: Set = emptySet(), + val benchmarks: Map = emptyMap(), // Name -> Problem Size (-1 for default) + val disabledBenchmarks: Set = emptySet(), + val versionInfo: String? = null, + val saveStatsToCSV: Boolean = false, + val saveStatsToJSON: Boolean = false, + val runServer: Boolean = false, +) { + /** + * Checks if a specific mode is enabled based on the configuration. + * A mode is considered enabled if no modes were specified (default) or if it's explicitly listed. + */ + fun isModeEnabled(mode: Mode): Boolean = modes.isEmpty() || modes.contains(mode) + + /** + * Checks if a specific benchmark is enabled + */ + fun isBenchmarkEnabled(benchmark: String): Boolean { + val normalizedName = benchmark.uppercase() + // Enabled if the benchmarks map is empty OR if the specific benchmark is present + return (benchmarks.isEmpty() || benchmarks.containsKey(normalizedName)) + && !disabledBenchmarks.contains(normalizedName) + && !disabledBenchmarks.contains(benchmark) + } + + /** + * Returns the problem size configured for [benchmark], or [default] if not set. + * + * @param benchmark Benchmark name (case-insensitive). + * @param default Fallback size when no configuration is found. + * @return The problem size to use. + */ + fun getBenchmarkProblemSize(benchmark: String, default: Int): Int { + val normalizedName = benchmark.uppercase() + val problemSize = benchmarks[normalizedName] ?: -1 + return if (problemSize == -1) default else problemSize + } + + companion object { + private var global: Config = Config() + + val versionInfo: String? + get() = global.versionInfo + + val saveStatsToCSV: Boolean + get() = global.saveStatsToCSV + + val saveStatsToJSON: Boolean + get() = global.saveStatsToJSON + + val runServer: Boolean + get() = global.runServer + + fun setGlobal(global: Config) { + this.global = global + } + + fun setGlobalFromArgs(args: Array) { + this.global = Args.parseArgs(args) + } + + fun isModeEnabled(mode: Mode): Boolean = + global.isModeEnabled(mode) + + fun isBenchmarkEnabled(benchmark: String): Boolean = + global.isBenchmarkEnabled(benchmark) + + fun getBenchmarkProblemSize(benchmark: String, default: Int): Int = + global.getBenchmarkProblemSize(benchmark, default) + + fun saveStats() = saveStatsToCSV || saveStatsToJSON + } +} \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/MeasureComposable.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/MeasureComposable.kt new file mode 100644 index 00000000000..265d2b65b76 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/MeasureComposable.kt @@ -0,0 +1,177 @@ +import androidx.compose.runtime.Composable +import androidx.compose.ui.InternalComposeUiApi +import androidx.compose.ui.graphics.asComposeCanvas +import androidx.compose.ui.scene.CanvasLayersComposeScene +import androidx.compose.ui.scene.ComposeScene +import androidx.compose.ui.unit.IntSize +import org.jetbrains.skia.Surface +import kotlin.time.Duration +import kotlin.time.Duration.Companion.nanoseconds +import kotlin.time.ExperimentalTime +import kotlinx.coroutines.* +import org.jetbrains.skia.Color +import org.jetbrains.skia.PictureRecorder +import org.jetbrains.skia.Rect +import kotlin.time.TimeSource.Monotonic.markNow +import kotlin.time.measureTime + +const val nanosPerSecond = 1E9.toLong() + +interface GraphicsContext { + fun surface(width: Int, height: Int): Surface + + suspend fun awaitGPUCompletion() +} + +expect fun runGC() + +suspend inline fun preciseDelay(duration: Duration) { + val liveDelay: Duration + if (duration.inWholeMilliseconds > 2) { + //experiments have shown that for precise delay we should do live delay at least 2 ms + val delayMillis = duration.inWholeMilliseconds - 2 + val delayStart = markNow() + delay(delayMillis) + liveDelay = duration - delayStart.elapsedNow() + } else { + liveDelay = duration + } + val liveDelayStart = markNow() + while (liveDelayStart.elapsedNow() < liveDelay){} +} + +/** + * Some of the benchmarks involved an asynchronous fetch operation for resources when running in a browser. + * To let the fetch operation result be handled by compose, the benchmark loop must yield the event loop. + * Otherwise, such benchmark do not run a part of workload, making the stats less meaningful. + * + * It makes sense for all platforms, since there could be some work scheduled to run on the same Thread + * as the benchmarks runner. But without yielding, it won't be dispatched. + */ +private suspend inline fun yieldEventLoop() { + yield() +} + +@OptIn(ExperimentalTime::class, InternalComposeUiApi::class) +internal suspend fun measureComposable( + name: String, + warmupCount: Int, + frameCount: Int, + width: Int, + height: Int, + targetFps: Int, + graphicsContext: GraphicsContext?, + content: @Composable () -> Unit +): BenchmarkResult { + val surface = graphicsContext?.surface(width, height) ?: Surface.makeNull(width, height) + val scene = CanvasLayersComposeScene(size = IntSize(width, height)) + try { + val nanosPerFrame = (1.0 / targetFps.toDouble() * nanosPerSecond).toLong() + scene.setContent(content) + + // warmup + repeat(warmupCount) { + scene.mimicSkikoRender(surface, it * nanosPerFrame, width, height) + surface.flushAndSubmit(false) + graphicsContext?.awaitGPUCompletion() + yieldEventLoop() + } + + runGC() + + var cpuTotalTime = Duration.ZERO + var gpuTotalTime = Duration.ZERO + if (Config.isModeEnabled(Mode.SIMPLE)) { + cpuTotalTime = measureTime { + repeat(frameCount) { + scene.mimicSkikoRender(surface, it * nanosPerFrame, width, height) + surface.flushAndSubmit(false) + gpuTotalTime += measureTime { + graphicsContext?.awaitGPUCompletion() + } + yieldEventLoop() + } + } + cpuTotalTime -= gpuTotalTime + } + + val frames = MutableList(frameCount) { + BenchmarkFrame(Duration.INFINITE, Duration.INFINITE) + } + + if (Config.isModeEnabled(Mode.VSYNC_EMULATION)) { + var nextVSync = Duration.ZERO + var missedFrames = 0; + + runGC() + + val start = markNow() + + repeat(frameCount) { + val frameStart = start + nextVSync + + scene.mimicSkikoRender(surface, it * nextVSync.inWholeNanoseconds, width, height) + surface.flushAndSubmit(false) + + val cpuTime = frameStart.elapsedNow() + + graphicsContext?.awaitGPUCompletion() + + val frameTime = frameStart.elapsedNow() + + frames[it] = BenchmarkFrame(cpuTime, frameTime - cpuTime) + + missedFrames += (frameTime.inWholeNanoseconds / nanosPerFrame).toInt() + + nextVSync = ((it + 1 + missedFrames) * nanosPerFrame).nanoseconds + + val timeUntilNextVSync = nextVSync - start.elapsedNow() + + if (timeUntilNextVSync > Duration.ZERO) { + // Emulate waiting for next vsync + preciseDelay(timeUntilNextVSync) + } + + yieldEventLoop() + } + } + + return BenchmarkResult( + name, + nanosPerFrame.nanoseconds, + BenchmarkConditions(frameCount, warmupCount), + FrameInfo(cpuTotalTime / frameCount, gpuTotalTime / frameCount), + frames, + ) + } finally { + scene.close() + surface.close() + runGC() // cleanup for next benchmarks + } +} + +private val pictureRecorder = PictureRecorder() + +/** + * Mimic Skiko render logic from + * https://github.com/JetBrains/skiko/blob/eb1f04ec99d50ff0bdb2f592fdf49711a9251aa7/skiko/src/awtMain/kotlin/org/jetbrains/skiko/SkiaLayer.awt.kt#L531 + * + * This is a simplified logic and it still can differ from the real cases: + * - Rendering into an intermediate picture. Benchmarks can show incorrect results without it. + * For example, we had a case when they showed an improvement by 10%, + * but there was a regression by 10% + * - Clearing the canvas each frame + * + * Beware that this logic can be changed in some new version of Skiko. + * If Skiko stops using `picture`, we need to remove it here too. + */ +@OptIn(InternalComposeUiApi::class) +fun ComposeScene.mimicSkikoRender(surface: Surface, time: Long, width: Int, height: Int) { + val pictureCanvas = pictureRecorder.beginRecording(Rect(0f, 0f, width.toFloat(), height.toFloat())) + render(pictureCanvas.asComposeCanvas(), time) + val picture = pictureRecorder.finishRecordingAsPicture() + + surface.canvas.clear(Color.TRANSPARENT) + surface.canvas.drawPicture(picture) + picture.close() +} diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt new file mode 100644 index 00000000000..5b802922a61 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/animation/AnimatedVisibility.kt @@ -0,0 +1,47 @@ +package benchmarks.animation + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.EnterExitState +import androidx.compose.animation.core.Transition +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.runtime.withFrameNanos +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import compose_benchmarks.benchmarks.generated.resources.Res +import compose_benchmarks.benchmarks.generated.resources.compose_multiplatform +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.painterResource + +@OptIn(ExperimentalResourceApi::class) +@Composable +fun AnimatedVisibility() { + MaterialTheme { + var showImage by remember { mutableStateOf(false) } + var transition: Transition? = null + LaunchedEffect(showImage) { + do { + withFrameNanos {} + } while (transition?.isRunning == true) + + showImage = !showImage + } + Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { + AnimatedVisibility(showImage) { + transition = this.transition + Image( + painterResource(Res.drawable.compose_multiplatform), + null + ) + } + } + } +} \ No newline at end of file diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/MainUI.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MainUI.kt similarity index 81% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/MainUI.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MainUI.kt index 1305cb06582..9b16c9ee65e 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/MainUI.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MainUI.kt @@ -1,26 +1,23 @@ -package listsample.components +package benchmarks.complexlazylist.components import androidx.compose.foundation.gestures.scrollBy import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.MaterialTheme import androidx.compose.runtime.* -import listsample.components.refresh.* -import listsample.models.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import listsample.components.refresh.LOADING_MORE -import listsample.components.refresh.LoadingIndicatorDefault -import listsample.components.refresh.NORMAL -import listsample.components.refresh.REFRESHING -import listsample.components.refresh.SwipeRefreshLayout -import listsample.components.refresh.rememberSwipeRefreshState -import listsample.models.IBaseViewModel -import listsample.models.ICompositionModel -import listsample.models.fetchCompositionModels +import benchmarks.complexlazylist.components.refresh.LOADING_MORE +import benchmarks.complexlazylist.components.refresh.LoadingIndicatorDefault +import benchmarks.complexlazylist.components.refresh.NORMAL +import benchmarks.complexlazylist.components.refresh.REFRESHING +import benchmarks.complexlazylist.components.refresh.SwipeRefreshLayout +import benchmarks.complexlazylist.components.refresh.rememberSwipeRefreshState +import benchmarks.complexlazylist.models.IBaseViewModel +import benchmarks.complexlazylist.models.ICompositionModel +import benchmarks.complexlazylist.models.fetchCompositionModels // just for demo internal var models: MutableList = mutableStateListOf() diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/MultiLevelCell.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MultiLevelCell.kt similarity index 98% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/MultiLevelCell.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MultiLevelCell.kt index 228017f374d..77ef62ce5ec 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/MultiLevelCell.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/MultiLevelCell.kt @@ -1,4 +1,4 @@ -package listsample.components +package benchmarks.complexlazylist.components import androidx.compose.animation.core.animate import androidx.compose.animation.core.animateDpAsState @@ -27,9 +27,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import listsample.models.IBaseViewModel -import listsample.models.ICompositionItem -import listsample.models.ICompositionModel +import benchmarks.complexlazylist.models.IBaseViewModel +import benchmarks.complexlazylist.models.ICompositionItem +import benchmarks.complexlazylist.models.ICompositionModel import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/LoadingIndicator.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/LoadingIndicator.kt similarity index 99% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/LoadingIndicator.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/LoadingIndicator.kt index dca5d7c48ce..359f4ea74fd 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/LoadingIndicator.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/LoadingIndicator.kt @@ -1,4 +1,4 @@ -package listsample.components.refresh +package benchmarks.complexlazylist.components.refresh import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.LinearEasing diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeProgress.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeProgress.kt similarity index 85% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeProgress.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeProgress.kt index 28c8294a92b..3c8e0486d87 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeProgress.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeProgress.kt @@ -1,4 +1,4 @@ -package listsample.components.refresh +package benchmarks.complexlazylist.components.refresh import androidx.compose.runtime.Immutable diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshLayout.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshLayout.kt similarity index 98% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshLayout.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshLayout.kt index e60c81525f6..6d9142da34f 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshLayout.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshLayout.kt @@ -1,4 +1,4 @@ -package listsample.components.refresh +package benchmarks.complexlazylist.components.refresh import androidx.compose.animation.core.animate import androidx.compose.animation.core.tween diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshNestedScrollConnection.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshNestedScrollConnection.kt similarity index 98% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshNestedScrollConnection.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshNestedScrollConnection.kt index f00b0858c1a..9ce64478ad9 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshNestedScrollConnection.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshNestedScrollConnection.kt @@ -1,4 +1,4 @@ -package listsample.components.refresh +package benchmarks.complexlazylist.components.refresh import androidx.compose.ui.geometry.Offset import androidx.compose.ui.input.nestedscroll.NestedScrollConnection diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshState.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshState.kt similarity index 97% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshState.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshState.kt index f4bb7fb24d2..5194d64a570 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/components/refresh/SwipeRefreshState.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/components/refresh/SwipeRefreshState.kt @@ -1,4 +1,4 @@ -package listsample.components.refresh +package benchmarks.complexlazylist.components.refresh import androidx.compose.animation.core.Animatable import androidx.compose.foundation.MutatePriority diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/FollowItem.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/FollowItem.kt similarity index 93% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/FollowItem.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/FollowItem.kt index d159376d619..04949ab8f24 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/FollowItem.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/FollowItem.kt @@ -1,4 +1,4 @@ -package listsample.models +package benchmarks.complexlazylist.models class FollowItem() : IBaseViewModel { override val blockId: String? diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/HotItem.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/HotItem.kt similarity index 93% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/HotItem.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/HotItem.kt index 8eaeb985661..8c79eb07354 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/HotItem.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/HotItem.kt @@ -1,4 +1,4 @@ -package listsample.models +package benchmarks.complexlazylist.models class HotItem() : IBaseViewModel { override val blockId: String? diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/IBaseViewModel.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/IBaseViewModel.kt similarity index 84% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/IBaseViewModel.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/IBaseViewModel.kt index 3003eaecca1..0c541f6be77 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/IBaseViewModel.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/IBaseViewModel.kt @@ -1,4 +1,4 @@ -package listsample.models +package benchmarks.complexlazylist.models interface IBaseViewModel { val blockId: String? diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/ICompositionModel.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/ICompositionModel.kt similarity index 92% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/ICompositionModel.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/ICompositionModel.kt index 7775fbab9ce..004bb51a0f2 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/ICompositionModel.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/ICompositionModel.kt @@ -1,4 +1,4 @@ -package listsample.models +package benchmarks.complexlazylist.models interface ICompositionItem { val bgColor: String? diff --git a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/ViewModelFactory.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/ViewModelFactory.kt similarity index 94% rename from benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/ViewModelFactory.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/ViewModelFactory.kt index fdeb70c7798..d1fdc8b7827 100644 --- a/benchmarks/ios/scroll-lazy-list/shared/src/commonMain/kotlin/listsample/models/ViewModelFactory.kt +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/complexlazylist/models/ViewModelFactory.kt @@ -1,4 +1,4 @@ -package listsample.models +package benchmarks.complexlazylist.models val fakeItem2 = object : ICompositionItem { @@ -49,7 +49,7 @@ open class FakeItem : ICompositionModel { get() = TODO("Not yet implemented") } -expect fun createFakeItem(): ICompositionModel +fun createFakeItem(): ICompositionModel = FakeItem() internal fun fetchCompositionModels(useJSON: Boolean, callback: (List) -> Unit) { callback(List(250, { createFakeItem() })) diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt new file mode 100644 index 00000000000..a10fafe31b3 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/lazygrid/LazyGrid.kt @@ -0,0 +1,97 @@ +package benchmarks.lazygrid + +import androidx.compose.foundation.gestures.scrollBy +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.material.Card +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.* +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.isActive +import kotlin.coroutines.suspendCoroutine + +@Composable +fun LazyGrid(smoothScroll: Boolean = false, withLaunchedEffectInItem: Boolean = false) { + val itemCount = 12000 + val entries = remember {List(itemCount) { Entry("$it") }} + val state = rememberLazyGridState() + + MaterialTheme { + Column { + LazyVerticalGrid( + columns = GridCells.Fixed(4), + modifier = Modifier.fillMaxWidth().semantics { contentDescription = "IamLazy" }, + state = state + ) { + items(entries) { + ListCell(it, withLaunchedEffectInItem) + } + } + } + + } + + var curItem by remember { mutableStateOf(0) } + var direct by remember { mutableStateOf(true) } + if (smoothScroll) { + LaunchedEffect(Unit) { + while (isActive) { + withFrameMillis { } + curItem = state.firstVisibleItemIndex + if (curItem == 0) direct = true + if (curItem > itemCount - 100) direct = false + state.scrollBy(if (direct) 55f else -55f) + } + } + } else { + LaunchedEffect(Unit) { + while(isActive) { + withFrameMillis {} + curItem += if (direct) 50 else -50 + if (curItem >= itemCount) { + direct = false + curItem = itemCount - 1 + } else if (curItem <= 0) { + direct = true + curItem = 0 + } + state.scrollToItem(curItem) + } + } + } +} + +data class Entry(val contents: String) + +@Composable +private fun ListCell(entry: Entry, withLaunchedEffect: Boolean = false) { + Card( + modifier = Modifier + .fillMaxWidth() + .padding(8.dp) + ) { + Text( + text = entry.contents, + textAlign = TextAlign.Center, + style = MaterialTheme.typography.h5, + modifier = Modifier.padding(16.dp) + ) + + if (withLaunchedEffect) { + LaunchedEffect(Unit) { + // Never resumed to imitate some async task running in an item's scope + suspendCoroutine { } + } + } + } +} \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/Clickable.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/Clickable.kt new file mode 100644 index 00000000000..b8b364d6cc4 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/Clickable.kt @@ -0,0 +1,362 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// copy of https://github.com/JetBrains/compose-multiplatform-core/blob/d9e875b62e7bb4dd47b6b155d3a787251ff5bd38/compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/Clickable.desktop.kt#L78 +// inefficient implementation of clickable for benchmarking purposes (Modifier.Node variant in AOSP is more optimized) + +package benchmarks.multipleComponents + +import androidx.compose.foundation.Indication +import androidx.compose.foundation.focusable +import androidx.compose.foundation.gestures.awaitEachGesture +import androidx.compose.foundation.hoverable +import androidx.compose.foundation.indication +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.PressInteraction +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.State +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.Modifier +import androidx.compose.ui.composed +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.input.key.KeyEventType.Companion.KeyDown +import androidx.compose.ui.input.key.KeyEventType.Companion.KeyUp +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onKeyEvent +import androidx.compose.ui.input.key.type +import androidx.compose.ui.input.pointer.AwaitPointerEventScope +import androidx.compose.ui.input.pointer.PointerButtons +import androidx.compose.ui.input.pointer.PointerEvent +import androidx.compose.ui.input.pointer.PointerEventPass +import androidx.compose.ui.input.pointer.PointerInputScope +import androidx.compose.ui.input.pointer.PointerKeyboardModifiers +import androidx.compose.ui.input.pointer.changedToDown +import androidx.compose.ui.input.pointer.changedToUp +import androidx.compose.ui.input.pointer.isOutOfBounds +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.input.pointer.positionChangeConsumed +import androidx.compose.ui.node.ModifierNodeElement +import androidx.compose.ui.node.SemanticsModifierNode +import androidx.compose.ui.platform.InspectorInfo +import androidx.compose.ui.platform.debugInspectorInfo +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.SemanticsPropertyReceiver +import androidx.compose.ui.semantics.disabled +import androidx.compose.ui.semantics.onClick +import androidx.compose.ui.semantics.onLongClick +import androidx.compose.ui.unit.center +import androidx.compose.ui.unit.toOffset +import androidx.compose.ui.util.fastAll +import androidx.compose.ui.util.fastAny +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch + +@Immutable +class MouseClickScope( + val buttons: PointerButtons, + val keyboardModifiers: PointerKeyboardModifiers +) + +@Suppress("DEPRECATION") +internal val EmptyClickContext = MouseClickScope( + PointerButtons(0), PointerKeyboardModifiers(0) +) + +fun Modifier.mouseClickable( + enabled: Boolean = true, + onClickLabel: String? = null, + role: Role? = null, + @Suppress("DEPRECATION") onClick: MouseClickScope.() -> Unit +) = composed( + factory = { + val onClickState = rememberUpdatedState(onClick) + val centreOffset = remember { mutableStateOf(Offset.Zero) } + val currentKeyPressInteractions = remember { mutableMapOf() } + val focusRequester = remember { FocusRequester() } + val gesture = if (enabled) { + Modifier.pointerInput(Unit) { + centreOffset.value = size.center.toOffset() + detectTapWithContext( + onTap = { down, _ -> + focusRequester.requestFocus() + onClickState.value.invoke( + MouseClickScope( + down.buttons, + down.keyboardModifiers + ) + ) + } + ) + } + } else { + Modifier + } + Modifier + .focusRequester(focusRequester) + .genericClickableWithoutGesture( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + indicationScope = rememberCoroutineScope(), + keyClickOffset = centreOffset, + enabled = enabled, + onClickLabel = onClickLabel, + currentKeyPressInteractions = currentKeyPressInteractions, + role = role, + onLongClickLabel = null, + onLongClick = null, + onClick = { onClick(EmptyClickContext) } + ) + .then(gesture) + }, + inspectorInfo = debugInspectorInfo { + name = "clickable" + properties["enabled"] = enabled + properties["onClickLabel"] = onClickLabel + properties["role"] = role + properties["onClick"] = onClick + } +) + +internal suspend fun PointerInputScope.detectTapWithContext( + onTap: ((PointerEvent, PointerEvent) -> Unit)? = null +) { + awaitEachGesture { + val down = awaitEventFirstDown().also { + it.changes.forEach { it.consume() } + } + + val up = waitForFirstInboundUpOrCancellation() + if (up != null) { + up.changes.forEach { it.consume() } + onTap?.invoke(down, up) + } + } +} + +private suspend fun AwaitPointerEventScope.awaitEventFirstDown(): PointerEvent { + var event: PointerEvent + do { + event = awaitPointerEvent() + } while ( + !event.changes.fastAll { it.changedToDown() } + ) + return event +} + +private suspend fun AwaitPointerEventScope.waitForFirstInboundUpOrCancellation(): PointerEvent? { + while (true) { + val event = awaitPointerEvent(PointerEventPass.Main) + if (event.changes.fastAll { it.changedToUp() }) { + // All pointers are up + return event + } + + if (event.changes.fastAny { + it.consumed.downChange || it.isOutOfBounds(size, extendedTouchPadding) + } + ) { + return null // Canceled + } + + // Check for cancel by position consumption. We can look on the Final pass of the + // existing pointer event because it comes after the Main pass we checked above. + val consumeCheck = awaitPointerEvent(PointerEventPass.Final) + if (consumeCheck.changes.fastAny { it.positionChangeConsumed() }) { + return null + } + } +} + +internal fun Modifier.genericClickableWithoutGesture( + interactionSource: MutableInteractionSource, + indication: Indication?, + indicationScope: CoroutineScope, + currentKeyPressInteractions: MutableMap, + keyClickOffset: State, + enabled: Boolean = true, + onClickLabel: String? = null, + role: Role? = null, + onLongClickLabel: String? = null, + onLongClick: (() -> Unit)? = null, + onClick: () -> Unit +): Modifier { + fun Modifier.detectPressAndClickFromKey() = this.onKeyEvent { keyEvent -> + when { + enabled && keyEvent.isPress -> { + // If the key already exists in the map, keyEvent is a repeat event. + // We ignore it as we only want to emit an interaction for the initial key press. + if (!currentKeyPressInteractions.containsKey(keyEvent.key)) { + val press = PressInteraction.Press(keyClickOffset.value) + currentKeyPressInteractions[keyEvent.key] = press + indicationScope.launch { interactionSource.emit(press) } + true + } else { + false + } + } + enabled && keyEvent.isClick -> { + currentKeyPressInteractions.remove(keyEvent.key)?.let { + indicationScope.launch { + interactionSource.emit(PressInteraction.Release(it)) + } + } + onClick() + true + } + else -> false + } + } + return this then + ClickableSemanticsElement( + enabled = enabled, + role = role, + onLongClickLabel = onLongClickLabel, + onLongClick = onLongClick, + onClickLabel = onClickLabel, + onClick = onClick + ) + .detectPressAndClickFromKey() + .indication(interactionSource, indication) + .hoverable(enabled = enabled, interactionSource = interactionSource) + .focusable(enabled = enabled, interactionSource = interactionSource) +} + +private class ClickableSemanticsElement( + private val enabled: Boolean, + private val role: Role?, + private val onLongClickLabel: String?, + private val onLongClick: (() -> Unit)?, + private val onClickLabel: String?, + private val onClick: () -> Unit +) : ModifierNodeElement() { + override fun create() = ClickableSemanticsNode( + enabled = enabled, + role = role, + onLongClickLabel = onLongClickLabel, + onLongClick = onLongClick, + onClickLabel = onClickLabel, + onClick = onClick + ) + + override fun update(node: ClickableSemanticsNode) { + node.update(enabled, onClickLabel, role, onClick, onLongClickLabel, onLongClick) + } + + override fun InspectorInfo.inspectableProperties() = Unit + + override fun hashCode(): Int { + var result = enabled.hashCode() + result = 31 * result + role.hashCode() + result = 31 * result + onLongClickLabel.hashCode() + result = 31 * result + onLongClick.hashCode() + result = 31 * result + onClickLabel.hashCode() + result = 31 * result + onClick.hashCode() + return result + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ClickableSemanticsElement) return false + + if (enabled != other.enabled) return false + if (role != other.role) return false + if (onLongClickLabel != other.onLongClickLabel) return false + if (onLongClick !== other.onLongClick) return false + if (onClickLabel != other.onClickLabel) return false + if (onClick !== other.onClick) return false + + return true + } +} + +internal class ClickableSemanticsNode( + private var enabled: Boolean, + private var onClickLabel: String?, + private var role: Role?, + private var onClick: () -> Unit, + private var onLongClickLabel: String?, + private var onLongClick: (() -> Unit)?, +) : SemanticsModifierNode, Modifier.Node() { + fun update( + enabled: Boolean, + onClickLabel: String?, + role: Role?, + onClick: () -> Unit, + onLongClickLabel: String?, + onLongClick: (() -> Unit)?, + ) { + this.enabled = enabled + this.onClickLabel = onClickLabel + this.role = role + this.onClick = onClick + this.onLongClickLabel = onLongClickLabel + this.onLongClick = onLongClick + } + + override val shouldMergeDescendantSemantics: Boolean + get() = true + + override fun SemanticsPropertyReceiver.applySemantics() { + if (this@ClickableSemanticsNode.role != null) { + role = this@ClickableSemanticsNode.role!! + } + onClick( + action = { onClick(); true }, + label = onClickLabel + ) + if (onLongClick != null) { + onLongClick( + action = { onLongClick?.invoke(); true }, + label = onLongClickLabel + ) + } + if (!enabled) { + disabled() + } + } +} + + +/** + * Whether the specified [KeyEvent] should trigger a press for a clickable component, i.e. whether + * it is associated with a press of an enter key or dpad centre. + */ +private val KeyEvent.isPress: Boolean + get() = type == KeyDown && isEnter + +/** + * Whether the specified [KeyEvent] should trigger a click for a clickable component, i.e. whether + * it is associated with a release of an enter key or dpad centre. + */ +private val KeyEvent.isClick: Boolean + get() = type == KeyUp && isEnter + +private val KeyEvent.isEnter: Boolean + get() = + when (key) { + Key.DirectionCenter, + Key.Enter, + Key.NumPadEnter, + Key.Spacebar -> true + else -> false + } diff --git a/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/MultipleComponents.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/MultipleComponents.kt new file mode 100644 index 00000000000..bdfa7521468 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/multipleComponents/MultipleComponents.kt @@ -0,0 +1,670 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// copy of https://github.com/JetBrains/compose-multiplatform-core/blob/d9e875b62e7bb4dd47b6b155d3a787251ff5bd38/compose/desktop/desktop/samples/src/jvmMain/kotlin/androidx/compose/desktop/examples/example1/Main.jvm.kt#L17 + +package benchmarks.multipleComponents + +import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.core.TweenSpec +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.Image +import androidx.compose.foundation.ScrollState +import androidx.compose.foundation.VerticalScrollbar +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.rememberScrollbarAdapter +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.text.InlineTextContent +import androidx.compose.foundation.text.appendInlineContent +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.BottomAppBar +import androidx.compose.material.Button +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.Checkbox +import androidx.compose.material.CircularProgressIndicator +import androidx.compose.material.DropdownMenu +import androidx.compose.material.DropdownMenuItem +import androidx.compose.material.ExtendedFloatingActionButton +import androidx.compose.material.Icon +import androidx.compose.material.IconButton +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Scaffold +import androidx.compose.material.Slider +import androidx.compose.material.Switch +import androidx.compose.material.Text +import androidx.compose.material.TextField +import androidx.compose.material.TopAppBar +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Menu +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.produceState +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusProperties +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Color.Companion.Black +import androidx.compose.ui.graphics.Color.Companion.Blue +import androidx.compose.ui.graphics.Color.Companion.Green +import androidx.compose.ui.graphics.Color.Companion.Red +import androidx.compose.ui.graphics.Color.Companion.Yellow +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.ImageShader +import androidx.compose.ui.graphics.ShaderBrush +import androidx.compose.ui.graphics.Shadow +import androidx.compose.ui.graphics.TileMode +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.isMetaPressed +import androidx.compose.ui.input.key.isShiftPressed +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onPreviewKeyEvent +import androidx.compose.ui.input.pointer.PointerEventType +import androidx.compose.ui.input.pointer.PointerIcon +import androidx.compose.ui.input.pointer.isAltPressed +import androidx.compose.ui.input.pointer.isBackPressed +import androidx.compose.ui.input.pointer.isCtrlPressed +import androidx.compose.ui.input.pointer.isForwardPressed +import androidx.compose.ui.input.pointer.isMetaPressed +import androidx.compose.ui.input.pointer.isPrimaryPressed +import androidx.compose.ui.input.pointer.isSecondaryPressed +import androidx.compose.ui.input.pointer.isShiftPressed +import androidx.compose.ui.input.pointer.isTertiaryPressed +import androidx.compose.ui.input.pointer.onPointerEvent +import androidx.compose.ui.input.pointer.pointerHoverIcon +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.text.ExperimentalTextApi +import androidx.compose.ui.text.Placeholder +import androidx.compose.ui.text.PlaceholderVerticalAlign +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.text.style.TextDecoration.Companion.Underline +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.em +import androidx.compose.ui.unit.sp +import compose_benchmarks.benchmarks.generated.resources.Res +import compose_benchmarks.benchmarks.generated.resources.example1_cat +import compose_benchmarks.benchmarks.generated.resources.example1_ic_call_answer +import compose_benchmarks.benchmarks.generated.resources.example1_sailing +import compose_benchmarks.benchmarks.generated.resources.jetbrainsmono_italic +import compose_benchmarks.benchmarks.generated.resources.jetbrainsmono_regular +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.resources.Font +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.decodeToImageBitmap +import org.jetbrains.compose.resources.painterResource +import kotlin.random.Random + +@Composable +fun MultipleComponentsExample(isVectorGraphicsSupported: Boolean = true) { + val uriHandler = LocalUriHandler.current + MaterialTheme { + Scaffold( + topBar = { + TopAppBar( + title = { + Row(verticalAlignment = Alignment.CenterVertically) { + if (isVectorGraphicsSupported) { + Image( + painterResource(Res.drawable.example1_sailing), + contentDescription = "Star" + ) + } + Text("Desktop Compose Elements") + } + } + ) + }, + floatingActionButton = { + ExtendedFloatingActionButton( + text = { Text("Open URL") }, + onClick = { + uriHandler.openUri("https://google.com/") + } + ) + }, + isFloatingActionButtonDocked = true, + bottomBar = { + BottomAppBar(cutoutShape = CircleShape) { + IconButton( + onClick = {} + ) { + Icon(Icons.Filled.Menu, "Menu", Modifier.size(ButtonDefaults.IconSize)) + } + } + }, + content = { innerPadding -> + Row(Modifier.padding(innerPadding)) { + LeftColumn(Modifier.weight(1f)) + MiddleColumn(Modifier.width(500.dp), isVectorGraphicsSupported = isVectorGraphicsSupported) + RightColumn(Modifier.width(200.dp)) + } + } + ) + } +} + +@Composable +private fun LeftColumn(modifier: Modifier) = Box(modifier.fillMaxSize()) { + val state = rememberScrollState() + ScrollableContent(state) + + VerticalScrollbar( + rememberScrollbarAdapter(state), + Modifier.align(Alignment.CenterEnd).fillMaxHeight() + ) +} + +@OptIn(ExperimentalComposeUiApi::class) +@Composable +private fun ScrollableContent(scrollState: ScrollState) { + val italicFont = FontFamily( + Font(Res.font.jetbrainsmono_italic) + ) + + val dispatchedFonts = FontFamily( + Font(Res.font.jetbrainsmono_regular, style = FontStyle.Italic), + Font(Res.font.jetbrainsmono_italic, style = FontStyle.Normal) + ) + + val amount = remember { mutableStateOf(0f) } + val animation = remember { mutableStateOf(true) } + Column(Modifier.fillMaxSize().verticalScroll(scrollState)) { + Text( + text = "Привет! 你好! Desktop Compose use: ${amount.value}", + color = Color.Black, + modifier = Modifier + .background(Color.Blue) + .height(56.dp) + .wrapContentSize(Alignment.Center) + ) + + val inlineIndicatorId = "indicator" + + Text( + text = buildAnnotatedString { + append("The quick ") + if (animation.value) { + appendInlineContent(inlineIndicatorId) + } + pushStyle( + SpanStyle( + color = Color(0xff964B00), + shadow = Shadow(Color.Green, offset = Offset(1f, 1f)) + ) + ) + append("brown fox") + pop() + pushStyle(SpanStyle(background = Color.Yellow)) + append(" 🦊 ate a ") + pop() + pushStyle(SpanStyle(fontSize = 30.sp, textDecoration = Underline)) + append("zesty hamburgerfons") + pop() + append(" 🍔.\nThe 👩‍👩‍👧‍👧 laughed.") + addStyle(SpanStyle(color = Color.Green), 25, 35) + }, + color = Color.Black, + inlineContent = mapOf( + inlineIndicatorId to InlineTextContent( + Placeholder( + width = 1.em, + height = 1.em, + placeholderVerticalAlign = PlaceholderVerticalAlign.AboveBaseline + ) + ) { + CircularProgressIndicator(Modifier.padding(end = 3.dp)) + } + ) + ) + + val loremColors = listOf( + Color.Black, + Color.Yellow, + Color.Green, + Color.Blue + ) + var loremColor by remember { mutableStateOf(0) } + + val loremDecorations = listOf( + TextDecoration.None, + TextDecoration.Underline, + TextDecoration.LineThrough + ) + val lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" + + " eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad" + + " minim veniam, quis nostrud exercitation ullamco laboris nisi ut" + + " aliquipex ea commodo consequat. Duis aute irure dolor in reprehenderit" + + " in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + + " Excepteur" + + " sint occaecat cupidatat non proident, sunt in culpa qui officia" + + " deserunt mollit anim id est laborum." + var loremDecoration by remember { mutableStateOf(0) } + Text( + text = lorem, + color = loremColors[loremColor], + textAlign = TextAlign.Center, + textDecoration = loremDecorations[loremDecoration], + modifier = Modifier.clickable { + if (loremColor < loremColors.size - 1) { + loremColor += 1 + } else { + loremColor = 0 + } + + if (loremDecoration < loremDecorations.size - 1) { + loremDecoration += 1 + } else { + loremDecoration = 0 + } + } + ) + + Text( + text = lorem, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Row { + Box(modifier = Modifier.size(200.dp, 200.dp).border(1.dp, Black)) { + BrushTextGradient(lorem) + } + Box(modifier = Modifier.size(200.dp, 200.dp).border(1.dp, Black)) { + BrushTextImage(lorem) + } + } + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceEvenly + ) { + Text( + "Default", + ) + + Text( + "SansSerif", + fontFamily = FontFamily.SansSerif + ) + + Text( + "Serif", + fontFamily = FontFamily.Serif + ) + + Text( + "Monospace", + fontFamily = FontFamily.Monospace + ) + + Text( + "Cursive", + fontFamily = FontFamily.Cursive + ) + } + + var overText by remember { mutableStateOf("Move mouse over text:") } + Text(overText, style = TextStyle(letterSpacing = 10.sp)) + + SelectionContainer { + Text( + text = "fun > List.quickSort(): List = when {\n" + + " size < 2 -> this\n" + + " else -> {\n" + + " val pivot = first()\n" + + " val (smaller, greater) = drop(1).partition { it <= pivot }\n" + + " smaller.quickSort() + pivot + greater.quickSort()\n" + + " }\n" + + "}", + fontFamily = italicFont, + modifier = Modifier + .padding(10.dp) + .onPointerEvent(PointerEventType.Move) { + val position = it.changes.first().position + overText = "Move position: $position" + } + .onPointerEvent(PointerEventType.Enter) { + overText = "Over enter" + } + .onPointerEvent(PointerEventType.Exit) { + overText = "Over exit" + } + ) + } + Text( + text = buildAnnotatedString { + append("resolved: NotoSans-Regular.ttf ") + pushStyle( + SpanStyle( + fontStyle = FontStyle.Italic + ) + ) + append("NotoSans-italic.ttf.") + }, + fontFamily = dispatchedFonts, + ) + + Row(verticalAlignment = Alignment.CenterVertically) { + Button( + modifier = Modifier.padding(4.dp).pointerHoverIcon(PointerIcon.Hand), + onClick = { + amount.value++ + } + ) { + Text("Base") + } + + var clickableText by remember { mutableStateOf("Click me!") } + Text( + modifier = Modifier.mouseClickable( + onClick = { + clickableText = buildString { + append("Buttons pressed:\n") + append("primary: ${buttons.isPrimaryPressed}\t") + append("secondary: ${buttons.isSecondaryPressed}\t") + append("tertiary: ${buttons.isTertiaryPressed}\t") + append("primary: ${buttons.isPrimaryPressed}\t") + append("back: ${buttons.isBackPressed}\t") + append("forward: ${buttons.isForwardPressed}\t") + + append("\n\nKeyboard modifiers pressed:\n") + + append("alt: ${keyboardModifiers.isAltPressed}\t") + append("ctrl: ${keyboardModifiers.isCtrlPressed}\t") + append("meta: ${keyboardModifiers.isMetaPressed}\t") + append("shift: ${keyboardModifiers.isShiftPressed}\t") + } + } + ), + text = clickableText + ) + } + + Row( + modifier = Modifier.padding(vertical = 10.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Row { + Column { + Switch( + animation.value, + onCheckedChange = { + animation.value = it + } + ) + Row( + modifier = Modifier.padding(4.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Checkbox( + animation.value, + onCheckedChange = { + animation.value = it + } + ) + Text("Animation") + } + } + + Button( + modifier = Modifier.padding(4.dp), + onClick = { } + ) { + Text("Window") + } + } + + Animations(isCircularEnabled = animation.value) + } + + Slider( + value = amount.value / 100f, + onValueChange = { amount.value = (it * 100) } + ) + val dropDownMenuExpanded = remember { mutableStateOf(false) } + Button(onClick = { dropDownMenuExpanded.value = true }) { + Text("Expand Menu") + } + DropdownMenu( + expanded = dropDownMenuExpanded.value, + onDismissRequest = { + dropDownMenuExpanded.value = false + println("OnDismissRequest") + } + ) { + DropdownMenuItem(modifier = Modifier, onClick = { + println("Item 1 clicked") + }) { + Text("Item 1") + } + DropdownMenuItem(modifier = Modifier, onClick = { + println("Item 2 clicked") + }) { + Text("Item 2") + } + DropdownMenuItem(modifier = Modifier, onClick = { + println("Item 3 clicked") + }) { + Text("Item 3") + } + } + TextField( + value = amount.value.toString(), + onValueChange = { amount.value = it.toFloatOrNull() ?: 42f }, + label = { Text(text = "Input1") } + ) + + } +} + +@Composable +fun MiddleColumn(modifier: Modifier, isVectorGraphicsSupported: Boolean) = Column(modifier) { + val (focusItem1, focusItem2) = FocusRequester.createRefs() + val text = remember { + mutableStateOf("Hello \uD83E\uDDD1\uD83C\uDFFF\u200D\uD83E\uDDB0") + } + + TextField( + value = text.value, + onValueChange = { text.value = it }, + label = { Text(text = "Input2") }, + placeholder = { + Text(text = "Important input") + }, + maxLines = 1, + modifier = Modifier.onPreviewKeyEvent { + when { + (it.isMetaPressed && it.key == Key.Enter) -> { + if (it.isShiftPressed) { + text.value = "Cleared with shift!" + } else { + text.value = "Cleared!" + } + true + } + else -> false + } + }.focusRequester(focusItem1) + .focusProperties { + next = focusItem2 + } + ) + + var text2 by remember { + val initText = buildString { + (1..1000).forEach { + append("$it\n") + } + } + mutableStateOf(initText) + } + TextField( + text2, + modifier = Modifier + .height(200.dp) + .focusRequester(focusItem2) + .focusProperties { + previous = focusItem1 + }, + onValueChange = { text2 = it } + ) + + Row { + Image( + painterResource(Res.drawable.example1_cat), + "Localized description", + Modifier.size(200.dp) + ) + + if (isVectorGraphicsSupported) { + Icon( + painterResource(Res.drawable.example1_ic_call_answer), + "Localized description", + Modifier.size(100.dp).align(Alignment.CenterVertically), + tint = Color.Blue.copy(alpha = 0.5f) + ) + } + } + + Box( + modifier = Modifier.size(150.dp).background(Color.Gray).pointerHoverIcon( + PointerIcon.Hand + ) + ) { + Box( + modifier = Modifier.offset(20.dp, 20.dp).size(100.dp).background(Color.Blue).pointerHoverIcon( + PointerIcon.Crosshair + ) + ) { + Text("pointerHoverIcon test with Ctrl") + } + } +} + +@Composable +fun Animations(isCircularEnabled: Boolean) = Row { + if (isCircularEnabled) { + CircularProgressIndicator(Modifier.padding(10.dp)) + } + + val enabled = remember { mutableStateOf(true) } + val color by animateColorAsState( + if (enabled.value) Color.Green else Color.Red, + animationSpec = TweenSpec(durationMillis = 2000) + ) + + MaterialTheme { + Box( + Modifier + .size(70.dp) + .clickable { enabled.value = !enabled.value } + .background(color) + ) + } +} + +@OptIn(ExperimentalFoundationApi::class) +@Composable +private fun RightColumn(modifier: Modifier) = Box(modifier) { + val state = rememberLazyListState() + val itemCount = 100000 + val heights = remember { + val random = Random(24) + (0 until itemCount).map { random.nextFloat() } + } + + LazyColumn(Modifier.fillMaxSize().graphicsLayer(alpha = 0.5f), state = state) { + items((0 until itemCount).toList()) { i -> + val itemHeight = 20.dp + 20.dp * heights[i] + Text(i.toString(), Modifier.graphicsLayer(alpha = 0.5f).height(itemHeight)) + } + } + + VerticalScrollbar( + rememberScrollbarAdapter(state), + Modifier.align(Alignment.CenterEnd) + ) +} + +@OptIn(ExperimentalTextApi::class) +@Composable +fun BrushTextGradient(text: String) { + Text( + text = text, + style = TextStyle( + fontSize = 12.sp, + fontWeight = FontWeight.Bold, + brush = Brush.linearGradient( + colors = listOf(Red, Yellow, Green, Blue) + ) + ) + ) +} + +@OptIn(ExperimentalTextApi::class, ExperimentalResourceApi::class, InternalResourceApi::class) +@Composable +fun BrushTextImage(text: String) { + val image: ImageBitmap? by produceState(null) { + value = Res.readBytes("files/example1_compose-community-primary.png").decodeToImageBitmap() + } + if (image != null) { + Text( + text = text, + style = TextStyle( + fontSize = 12.sp, + fontWeight = FontWeight.Bold, + brush = ShaderBrush( + ImageShader(image!!, TileMode.Repeated, TileMode.Repeated) + ) + ) + ) + } +} \ No newline at end of file diff --git a/benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt b/benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt similarity index 100% rename from benchmarks/kn-performance/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt rename to benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/benchmarks/visualeffects/HappyNY.kt diff --git a/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/BenchmarksSave.desktop.kt b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/BenchmarksSave.desktop.kt new file mode 100644 index 00000000000..815b87fb501 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/BenchmarksSave.desktop.kt @@ -0,0 +1,6 @@ +/* + * Copyright 2020-2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +actual fun saveBenchmarkStats(name: String, stats: BenchmarkStats) = saveBenchmarkStatsOnDisk(name, stats) diff --git a/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/BenchmarksSaveServer.kt b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/BenchmarksSaveServer.kt new file mode 100644 index 00000000000..4e0ac67c1b0 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/BenchmarksSaveServer.kt @@ -0,0 +1,92 @@ +/* + * Copyright 2020-2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import io.ktor.http.* +import io.ktor.serialization.kotlinx.json.* +import io.ktor.server.application.* +import io.ktor.server.engine.* +import io.ktor.server.netty.* +import io.ktor.server.plugins.contentnegotiation.* +import io.ktor.server.plugins.cors.routing.CORS +import io.ktor.server.request.* +import io.ktor.server.response.* +import io.ktor.server.routing.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import kotlinx.io.files.Path +import kotlinx.io.files.SystemFileSystem +import kotlinx.serialization.Serializable + +/** + * Data class for receiving benchmark results from client. + */ +@Serializable +data class BenchmarkResultFromClient( + val name: String, + val stats: String // JSON string of BenchmarkStats +) + +/** + * Starts a Ktor server to receive benchmark results from browsers + * and save them to disk in the same format as the direct disk saving mechanism. + */ +object BenchmarksSaveServer { + private var server: EmbeddedServer? = null + + fun start(port: Int = BENCHMARK_SERVER_PORT) { + if (server != null) { + println("Benchmark server is already running") + return + } + + server = embeddedServer(Netty, port = port) { + install(ContentNegotiation) { + json() + } + install(CORS) { + allowMethod(HttpMethod.Get) + allowMethod(HttpMethod.Post) + allowHeader(HttpHeaders.ContentType) + anyHost() + } + routing { + post("/benchmark") { + val result = call.receive() + if (result.name.isEmpty()) { + println("Stopping server! Received empty name from client") + call.respond(HttpStatusCode.OK, "Server stopped.") + stop() + return@post + } + println("Received benchmark result for: ${result.name}") + + withContext(Dispatchers.IO) { + if (Config.saveStatsToJSON) { + saveJson(result.name, result.stats) + } + + if (Config.saveStatsToCSV) { + // TODO: for CSV, we would need to convert JSON to the values + println("CSV results are not yet supported for the browser.") + } + } + + call.respond(HttpStatusCode.OK, "Benchmark result saved") + } + + get("/") { + call.respondText("Benchmark server is running", ContentType.Text.Plain) + } + } + }.start(wait = true) + } + + fun stop() { + server?.stop(1000, 2000) + server = null + println("Benchmark server stopped") + System.exit(0) + } +} diff --git a/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/GraphicsContext.desktop.kt b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/GraphicsContext.desktop.kt new file mode 100644 index 00000000000..df9eb367aba --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/GraphicsContext.desktop.kt @@ -0,0 +1,43 @@ +import org.jetbrains.skia.ColorSpace +import org.jetbrains.skia.PixelGeometry +import org.jetbrains.skia.Surface +import org.jetbrains.skia.SurfaceColorFormat +import org.jetbrains.skia.SurfaceOrigin +import org.jetbrains.skia.SurfaceProps +import org.jetbrains.skiko.ExperimentalSkikoApi +import org.jetbrains.skiko.graphicapi.DirectXOffscreenContext +import org.jetbrains.skiko.hostOs + +@OptIn(ExperimentalSkikoApi::class) +fun graphicsContext(): GraphicsContext? = when { + hostOs.isWindows -> DirectXGraphicsContext() + else -> { + println("Unsupported desktop host OS: $hostOs. Using non-GPU graphic context") + null + } +} + +@OptIn(ExperimentalSkikoApi::class) +class DirectXGraphicsContext() : GraphicsContext { + // Note: we don't close `context` and `texture` after using, + // because it is created once in the main function + private val context = DirectXOffscreenContext() + private var texture: DirectXOffscreenContext.Texture? = null + + override fun surface(width: Int, height: Int): Surface { + texture?.close() + texture = context.Texture(width, height) + return Surface.makeFromBackendRenderTarget( + context.directContext, + texture!!.backendRenderTarget, + SurfaceOrigin.TOP_LEFT, + SurfaceColorFormat.BGRA_8888, + ColorSpace.sRGB, + SurfaceProps(pixelGeometry = PixelGeometry.UNKNOWN) + ) ?: throw IllegalStateException("Can't create Surface") + } + + override suspend fun awaitGPUCompletion() { + texture?.waitForCompletion() + } +} diff --git a/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/main.desktop.kt b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/main.desktop.kt new file mode 100644 index 00000000000..f3016313ef6 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/main.desktop.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.runBlocking + +fun main(args: Array) { + Config.setGlobalFromArgs(args) + + if (Config.runServer) { + // Start the benchmark server to receive results from browsers + BenchmarksSaveServer.start() + } else { + runBlocking(Dispatchers.Main) { runBenchmarks(graphicsContext = graphicsContext()) } + } +} diff --git a/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/runGC.jvm.kt b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/runGC.jvm.kt new file mode 100644 index 00000000000..3095a116b1c --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/desktopMain/kotlin/runGC.jvm.kt @@ -0,0 +1,3 @@ +actual fun runGC() { + System.gc() +} \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/iosMain/kotlin/main.ios.kt b/benchmarks/multiplatform/benchmarks/src/iosMain/kotlin/main.ios.kt new file mode 100644 index 00000000000..f895dff3e37 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/iosMain/kotlin/main.ios.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.launch + +fun main(args : List) { + Config.setGlobalFromArgs(args.toTypedArray()) + MainScope().launch { + runBenchmarks(graphicsContext = graphicsContext()) + println("Completed!") + } +} diff --git a/benchmarks/multiplatform/benchmarks/src/macosMain/kotlin/main.macos.kt b/benchmarks/multiplatform/benchmarks/src/macosMain/kotlin/main.macos.kt new file mode 100644 index 00000000000..cbc704c68bf --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/macosMain/kotlin/main.macos.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ +import kotlinx.coroutines.runBlocking + +fun main(args : Array) { + Config.setGlobalFromArgs(args) + runBlocking { runBenchmarks(graphicsContext = graphicsContext()) } +} diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/BenchmarksSave.wasmJs.kt b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/BenchmarksSave.wasmJs.kt new file mode 100644 index 00000000000..e9854d7cac3 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/BenchmarksSave.wasmJs.kt @@ -0,0 +1,114 @@ +/* + * Copyright 2020-2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import io.ktor.client.HttpClient +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation +import io.ktor.client.request.get +import io.ktor.client.request.post +import io.ktor.client.request.setBody +import io.ktor.http.ContentType +import io.ktor.http.HttpStatusCode +import io.ktor.http.contentType +import io.ktor.serialization.kotlinx.json.json +import kotlinx.browser.window +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.yield +import kotlinx.serialization.Serializable + +/** + * Browser implementation for saving benchmark results. + * Instead of trying to save directly to disk (which would fail with UnsupportedOperationException), + * this implementation sends the results to a server via HTTP. + */ +actual fun saveBenchmarkStats(name: String, stats: BenchmarkStats) { + GlobalScope.launch { + BenchmarksSaveServerClient.sendBenchmarkResult(name, stats) + } +} + +/** + * Client for sending benchmark results to the server + */ +object BenchmarksSaveServerClient { + private val client = HttpClient { + install(ContentNegotiation) { + json() + } + } + + private var resultsSendingInProgress = 0 + + private fun serverUrlRoot(): String { + val protocol = window.location.protocol + val hostname = window.location.hostname + return "$protocol//$hostname:$BENCHMARK_SERVER_PORT" + } + + private fun serverUrl(): String { + return "${serverUrlRoot()}/benchmark" + } + + /** + * Sends benchmark results to the server + */ + suspend fun sendBenchmarkResult(name: String, stats: BenchmarkStats) { + resultsSendingInProgress++ + println("Sending results: $name") + sendBenchmarkResult(name, stats.toJsonString()) + resultsSendingInProgress-- + println("Benchmark result sent to server: ${serverUrl()}") + } + + private suspend fun sendBenchmarkResult(name: String, stats: String) { + try { + + val result = BenchmarkResultToServer( + name = name, + stats = stats + ) + + client.post(serverUrl()) { + contentType(ContentType.Application.Json) + setBody(result) + } + } catch (e: Throwable) { + println("Error sending benchmark result to server: ${e.message}") + } + } + + suspend fun stopServer() { + while (resultsSendingInProgress > 0) { + yield() + } + sendBenchmarkResult("", "") + } + + suspend fun isServerAlive(): Boolean { + // waiting for the server to start for 2 seconds + val TIMEOUT = 2000 + val DELTA = 100L + var delayed = 0L + while (delayed < TIMEOUT) { + try { + return client.get(serverUrlRoot()).status == HttpStatusCode.OK + } catch (_: Throwable) { + delayed += DELTA + delay(DELTA) + } + } + return false + } +} + +/** + * Data class for sending benchmark results to the server + */ +@Serializable +data class BenchmarkResultToServer( + val name: String, + val stats: String // JSON string of BenchmarkStats +) \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/main.wasmJs.kt b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/main.wasmJs.kt new file mode 100644 index 00000000000..d796d88975a --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/main.wasmJs.kt @@ -0,0 +1,90 @@ +@file:OptIn(ExperimentalJsExport::class) + +import kotlinx.browser.window +import kotlinx.coroutines.* +import org.w3c.dom.url.URLSearchParams +import kotlin.js.Promise + +val jsOne = 1.toJsNumber() + +fun main(args: Array) { + if (isD8env().toBoolean()) { + mainD8(args) + } else { + mainBrowser() + } +} + +fun mainBrowser() { + val urlParams = URLSearchParams(window.location.search.toJsString()) + var i = 0 + val args = generateSequence { urlParams.get("arg${i++}") }.toList().toTypedArray() + + Config.setGlobalFromArgs(args) + + MainScope().launch { + if (Config.saveStats() && !BenchmarksSaveServerClient.isServerAlive()) { + println("No benchmark server found.") + return@launch + } + runBenchmarks() + println("Completed!") + if (Config.saveStats()) { + GlobalScope.launch { + BenchmarksSaveServerClient.stopServer() + } + } + } +} + + +// Currently, the initialization can't be adjusted to avoid calling the fun main, but +// we don't want use the default fun main, because Jetstream3 requires running the workloads separately / independently of each other. +// Also, they require that a benchmark completes before the function exists, which is not possible with if they just call fun main. +// Therefore, they'll rely on fun customLaunch, which returns a Promise (can be awaited for). +fun mainD8(args: Array) { + println("mainD8 is intentionally doing nothing. Read the comments in main.wasmJs.kt") +} + +private val basicConfigForD8 = Config( + // Using only SIMPLE mode, because VSYNC_EMULATION calls delay(...), + // which is implemented via setTimeout on web targets. + // setTimeout implementation is simplified in D8, making + // the VSYNC_EMULATION mode meaningless when running in D8 + modes = setOf(Mode.SIMPLE), + // MultipleComponents is unsupported, because it uses vector icons. D8 doesn't provide XML parsing APIs. + // But there is an alternative workload called 'MultipleComponents-NoVectorGraphics' + disabledBenchmarks = setOf("MultipleComponents"), +) + +@JsExport +fun customLaunch(benchmarkName: String, frameCount: Int): Promise { + val config = basicConfigForD8.copy( + benchmarks = mapOf(benchmarkName.uppercase() to frameCount) + ) + Config.setGlobal(config) + + return MainScope().promise { + runBenchmarks(warmupCount = 0) + jsOne + } +} + +@JsExport +fun d8BenchmarksRunner(args: String): Promise { + val config = Args.parseArgs(args.split(" ").toTypedArray()) + .copy( + modes = basicConfigForD8.modes, + disabledBenchmarks = basicConfigForD8.disabledBenchmarks + ) + + Config.setGlobal(config) + + return MainScope().promise { + runBenchmarks() + jsOne + } +} + +private fun isD8env(): JsBoolean = + js("typeof isD8 !== 'undefined'") diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/runGC.wasmJs.kt b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/runGC.wasmJs.kt new file mode 100644 index 00000000000..461e7098994 --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/kotlin/runGC.wasmJs.kt @@ -0,0 +1,3 @@ +actual fun runGC() { + js("(typeof gc === 'function')? gc() : console.log('Manual GC is not available. Ensure that the browser was started with the appropriate flags.')") +} \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/index.html b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/index.html new file mode 100644 index 00000000000..fb8a8127cfc --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/index.html @@ -0,0 +1,21 @@ + + + + + Benchmarks Compose + K/Wasm + + + + +Wait for the benchmarks to complete... + + \ No newline at end of file diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/launcher.mjs b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/launcher.mjs new file mode 100644 index 00000000000..4cfd3181aec --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/launcher.mjs @@ -0,0 +1,13 @@ +globalThis.isD8 = true; + +import * as skiko from './skikod8.mjs'; +import { instantiate } from './compose-benchmarks-benchmarks.uninstantiated.mjs'; + +const exports = (await instantiate({ + './skiko.mjs': skiko +})).exports; + +await import('./polyfills.mjs'); + +await exports.d8BenchmarksRunner(Array.from(arguments).join(' ')); +console.log('Finished'); diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/launcher_jetstream3.mjs b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/launcher_jetstream3.mjs new file mode 100644 index 00000000000..412d25651ec --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/launcher_jetstream3.mjs @@ -0,0 +1,24 @@ +globalThis.isD8 = true; + +import * as skiko from './skikod8.mjs'; +import { instantiate } from './compose-benchmarks-benchmarks-wasm-js.uninstantiated.mjs'; + +const exports = (await instantiate({ + './skiko.mjs': skiko +})).exports; + +await import('./polyfills.mjs'); + +/* + AnimatedVisibility, + LazyGrid, + LazyGrid-ItemLaunchedEffect, + LazyGrid-SmoothScroll, + LazyGrid-SmoothScroll-ItemLaunchedEffect, + VisualEffects, + MultipleComponents-NoVectorGraphics + */ +let name = arguments[0] ? arguments[0] : 'AnimatedVisibility'; +let frameCount = arguments[1] ? parseInt(arguments[1]) : 1000; +await exports.customLaunch(name, frameCount); +console.log('Finished'); diff --git a/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/polyfills.mjs b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/polyfills.mjs new file mode 100644 index 00000000000..a3b2d6ac94f --- /dev/null +++ b/benchmarks/multiplatform/benchmarks/src/wasmJsMain/resources/polyfills.mjs @@ -0,0 +1,59 @@ +// polyfills.mjs +if (typeof globalThis.window === 'undefined') { + globalThis.window = globalThis; +} +if (typeof globalThis.navigator === 'undefined') { + globalThis.navigator = {}; +} +if (!globalThis.navigator.languages) { + globalThis.navigator.languages = ['en-US', 'en']; + globalThis.navigator.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; + globalThis.navigator.platform = "MacIntel"; +} + +// Compose reads `window.isSecureContext` in its Clipboard feature: +globalThis.isSecureContext = false; + +if (!globalThis.gc) { + // No GC control in D8 + globalThis.gc = () => { + // console.log('gc called'); + }; +} + +// Minimal Blob polyfill +class BlobPolyfill { + constructor(uint8, type = '') { + this._uint8 = uint8; + this._type = type; + } + get size() { + return this._uint8.byteLength; + } + get type() { return this._type; } + async arrayBuffer() { + console.log('arrayBuffer called'); + return this._uint8.buffer; + } +} + +globalThis.fetch = async (p) => { + let data; + try { + let path = p.replace(/^\.\//, ''); + console.log('fetch', path); + data = read(path, 'binary'); + } catch (err) { + console.log('error', err); + } + + const uint8 = new Uint8Array(data); + + return { + ok: true, + status: 200, + async blob() { + return new BlobPolyfill(uint8, 'application/xml'); + }, + }; +}; \ No newline at end of file diff --git a/benchmarks/multiplatform/build.gradle.kts b/benchmarks/multiplatform/build.gradle.kts new file mode 100644 index 00000000000..96ae9a60c77 --- /dev/null +++ b/benchmarks/multiplatform/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + // this is necessary to avoid the plugins to be loaded multiple times + // in each subproject's classloader + alias(libs.plugins.composeMultiplatform) apply false + alias(libs.plugins.composeCompiler) apply false + alias(libs.plugins.kotlinMultiplatform) apply false + alias(libs.plugins.kotlinSerialization) apply false +} + +allprojects { + repositories { + google() + mavenCentral() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://maven.pkg.jetbrains.space/kotlin/p/wasm/experimental") + mavenLocal() + } +} diff --git a/benchmarks/multiplatform/gradle.properties b/benchmarks/multiplatform/gradle.properties new file mode 100644 index 00000000000..81f4fda1f5b --- /dev/null +++ b/benchmarks/multiplatform/gradle.properties @@ -0,0 +1,7 @@ +org.gradle.jvmargs=-Xmx3g +kotlin.native.useEmbeddableCompilerJar=true +compose.desktop.verbose=true +android.useAndroidX=true +runArguments=benchmarks= modes= +kotlin.js.webpack.major.version=4 +org.jetbrains.compose.experimental.macos.enabled=true \ No newline at end of file diff --git a/benchmarks/multiplatform/gradle/libs.versions.toml b/benchmarks/multiplatform/gradle/libs.versions.toml new file mode 100644 index 00000000000..e7fab7bab1d --- /dev/null +++ b/benchmarks/multiplatform/gradle/libs.versions.toml @@ -0,0 +1,29 @@ +[versions] +compose-multiplatform = "1.8.1" +kotlin = "2.2.0" +kotlinx-coroutines = "1.8.0" +kotlinx-serialization = "1.8.0" +kotlinx-io = "0.7.0" +kotlinx-datetime = "0.6.2" +ktor = "3.0.0-wasm2" + +[libraries] +kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } +kotlinx-io = { module = "org.jetbrains.kotlinx:kotlinx-io-core", version.ref = "kotlinx-io" } +kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" } +ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktor" } +ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" } +ktor-server-content-negotiation = { module = "io.ktor:ktor-server-content-negotiation", version.ref = "ktor" } +ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } +ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" } +ktor-client-java = { module = "io.ktor:ktor-client-java", version.ref = "ktor" } +ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } +ktor-server-cors = { module= "io.ktor:ktor-server-cors", version.ref = "ktor" } + +[plugins] +composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } +composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin"} diff --git a/benchmarks/ios/jvm-vs-kotlin-native/gradle/wrapper/gradle-wrapper.jar b/benchmarks/multiplatform/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from benchmarks/ios/jvm-vs-kotlin-native/gradle/wrapper/gradle-wrapper.jar rename to benchmarks/multiplatform/gradle/wrapper/gradle-wrapper.jar diff --git a/benchmarks/multiplatform/gradle/wrapper/gradle-wrapper.properties b/benchmarks/multiplatform/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..37f853b1c84 --- /dev/null +++ b/benchmarks/multiplatform/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/benchmarks/ios/jvm-vs-kotlin-native/gradlew b/benchmarks/multiplatform/gradlew similarity index 100% rename from benchmarks/ios/jvm-vs-kotlin-native/gradlew rename to benchmarks/multiplatform/gradlew diff --git a/benchmarks/ios/animation-from-template/gradlew.bat b/benchmarks/multiplatform/gradlew.bat similarity index 100% rename from benchmarks/ios/animation-from-template/gradlew.bat rename to benchmarks/multiplatform/gradlew.bat diff --git a/benchmarks/multiplatform/iosApp/Configuration/Config.xcconfig b/benchmarks/multiplatform/iosApp/Configuration/Config.xcconfig new file mode 100644 index 00000000000..3d008370616 --- /dev/null +++ b/benchmarks/multiplatform/iosApp/Configuration/Config.xcconfig @@ -0,0 +1,3 @@ +TEAM_ID= +BUNDLE_ID=org.jetbrains.benchmarks +APP_NAME=ComposeBenchmarks diff --git a/benchmarks/multiplatform/iosApp/iosApp.xcodeproj/project.pbxproj b/benchmarks/multiplatform/iosApp/iosApp.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..bb98a5659a5 --- /dev/null +++ b/benchmarks/multiplatform/iosApp/iosApp.xcodeproj/project.pbxproj @@ -0,0 +1,382 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; + 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; + 7555FF7B242A565900829871 /* ComposeBenchmarks.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ComposeBenchmarks.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + F85CB1118929364A9C6EFABC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 058557D7273AAEEB004C7B11 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 7555FF72242A565900829871 = { + isa = PBXGroup; + children = ( + AB1DB47929225F7C00F7AF9C /* Configuration */, + 7555FF7D242A565900829871 /* iosApp */, + 7555FF7C242A565900829871 /* Products */, + ); + sourceTree = ""; + }; + 7555FF7C242A565900829871 /* Products */ = { + isa = PBXGroup; + children = ( + 7555FF7B242A565900829871 /* ComposeBenchmarks.app */, + ); + name = Products; + sourceTree = ""; + }; + 7555FF7D242A565900829871 /* iosApp */ = { + isa = PBXGroup; + children = ( + 058557BA273AAA24004C7B11 /* Assets.xcassets */, + 7555FF82242A565900829871 /* ContentView.swift */, + 7555FF8C242A565B00829871 /* Info.plist */, + 2152FB032600AC8F00CF470E /* iOSApp.swift */, + 058557D7273AAEEB004C7B11 /* Preview Content */, + ); + path = iosApp; + sourceTree = ""; + }; + AB1DB47929225F7C00F7AF9C /* Configuration */ = { + isa = PBXGroup; + children = ( + AB3632DC29227652001CCB65 /* Config.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7555FF7A242A565900829871 /* iosApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; + buildPhases = ( + 05E104082A8AADF800D11C3D /* Compile Kotlin */, + 7555FF77242A565900829871 /* Sources */, + 7555FF79242A565900829871 /* Resources */, + F85CB1118929364A9C6EFABC /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iosApp; + productName = iosApp; + productReference = 7555FF7B242A565900829871 /* ComposeBenchmarks.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7555FF73242A565900829871 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = orgName; + TargetAttributes = { + 7555FF7A242A565900829871 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7555FF72242A565900829871; + productRefGroup = 7555FF7C242A565900829871 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7555FF7A242A565900829871 /* iosApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7555FF79242A565900829871 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 05E104082A8AADF800D11C3D /* Compile Kotlin */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Compile Kotlin"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"$SRCROOT/..\"\n./gradlew :benchmarks:embedAndSignAppleFrameworkForXcode\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7555FF77242A565900829871 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, + 7555FF83242A565900829871 /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7555FFA3242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7555FFA4242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7555FFA6242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../benchmarks/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n"; + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + "benchmarks\n", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7555FFA7242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../benchmarks/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n"; + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + "benchmarks\n", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA3242A565B00829871 /* Debug */, + 7555FFA4242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA6242A565B00829871 /* Debug */, + 7555FFA7242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7555FF73242A565900829871 /* Project object */; +} diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/benchmarks/multiplatform/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json rename to benchmarks/multiplatform/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/benchmarks/multiplatform/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from benchmarks/ios/visual-effects-ny/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json rename to benchmarks/multiplatform/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/Contents.json b/benchmarks/multiplatform/iosApp/iosApp/Assets.xcassets/Contents.json similarity index 100% rename from benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/Contents.json rename to benchmarks/multiplatform/iosApp/iosApp/Assets.xcassets/Contents.json diff --git a/benchmarks/multiplatform/iosApp/iosApp/ContentView.swift b/benchmarks/multiplatform/iosApp/iosApp/ContentView.swift new file mode 100644 index 00000000000..bddc31945ea --- /dev/null +++ b/benchmarks/multiplatform/iosApp/iosApp/ContentView.swift @@ -0,0 +1,11 @@ +import UIKit +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Text("Hello, world!") + } + .padding() + } +} \ No newline at end of file diff --git a/examples/cocoapods-ios-example/iosApp/iosApp/Info.plist b/benchmarks/multiplatform/iosApp/iosApp/Info.plist similarity index 100% rename from examples/cocoapods-ios-example/iosApp/iosApp/Info.plist rename to benchmarks/multiplatform/iosApp/iosApp/Info.plist diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/benchmarks/multiplatform/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from benchmarks/ios/animation-from-template/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json rename to benchmarks/multiplatform/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/benchmarks/multiplatform/iosApp/iosApp/iOSApp.swift b/benchmarks/multiplatform/iosApp/iosApp/iOSApp.swift new file mode 100644 index 00000000000..c54e451afce --- /dev/null +++ b/benchmarks/multiplatform/iosApp/iosApp/iOSApp.swift @@ -0,0 +1,34 @@ +import SwiftUI +import benchmarks +import Combine + +class MemoryWarningMonitor: ObservableObject { + private var cancellable: AnyCancellable? + + init() { + self.cancellable = NotificationCenter.default + .publisher(for: UIApplication.didReceiveMemoryWarningNotification) + .sink { _ in + self.didReceiveMemoryWarning() + } + } + + private func didReceiveMemoryWarning() { +// print("Memory warning received! Cleaning resources.") + RunGC_nativeKt.runGC() + } +} + +@main +struct iOSApp: App { + init() { + MemoryWarningMonitor() + Main_iosKt.main(args: ProcessInfo.processInfo.arguments) + } + + var body: some Scene { + WindowGroup { + ContentView() + } + } +} \ No newline at end of file diff --git a/benchmarks/multiplatform/settings.gradle.kts b/benchmarks/multiplatform/settings.gradle.kts new file mode 100644 index 00000000000..b1d1367534c --- /dev/null +++ b/benchmarks/multiplatform/settings.gradle.kts @@ -0,0 +1,29 @@ +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + google() + } +} + +rootProject.name = "compose-benchmarks" + +dependencyResolutionManagement { + versionCatalogs{ + create("libs") { + // Override Kotlin and Compose versions with properties + providers.run { + with(gradleProperty("kotlin.version")) { + if (isPresent) version("kotlin", get()) + } + with(gradleProperty("compose.version")) { + if (isPresent) version("compose-multiplatform", get()) + } + } + } + } +} + +include(":benchmarks") diff --git a/benchmarks/showcases/LazyGridImageView/.gitignore b/benchmarks/showcases/LazyGridImageView/.gitignore new file mode 100644 index 00000000000..d7cf070a675 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/.gitignore @@ -0,0 +1,19 @@ +.kotlin +.gradle +.idea +**/build/ +local.properties +iosApp/iosApp.xcworkspace/* +iosApp/iosApp.xcodeproj/* +!iosApp/iosApp.xcodeproj/project.pbxproj +nativeiosApp/nativeiosApp.xcworkspace/* +nativeiosApp/nativeiosApp.xcodeproj/* +!nativeiosApp/nativeiosApp.xcodeproj/project.pbxproj + +# Ignore downloaded images except the first one +composeApp/src/commonMain/composeResources/files/downloaded_image*.jpg +nativeiosApp/nativeiosApp/downloaded_images/downloaded_image*.jpg +nativeAndroidApp/app/src/main/assets/downloaded_images/downloaded_image*.jpg +!composeApp/src/commonMain/composeResources/files/downloaded_image001.jpg +!nativeiosApp/nativeiosApp/downloaded_images/downloaded_image001.jpg +!nativeAndroidApp/app/src/main/assets/downloaded_images/downloaded_image001.jpg diff --git a/benchmarks/showcases/LazyGridImageView/.run/desktopApp.run.xml b/benchmarks/showcases/LazyGridImageView/.run/desktopApp.run.xml new file mode 100644 index 00000000000..54a673041b4 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/.run/desktopApp.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/README.md b/benchmarks/showcases/LazyGridImageView/README.md new file mode 100644 index 00000000000..21895023f95 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/README.md @@ -0,0 +1,55 @@ +# Lazy Grid Image Demo + +This project demonstrates how to display a grid of images across multiple platforms: Android, iOS, and Desktop. + +The project includes three different implementations of the same functionality: + +1. **Kotlin Multiplatform with Compose** - a shared implementation using Compose Multiplatform +2. **Native Android** - a pure Android implementation using Jetpack Compose +3. **Native iOS** - a pure iOS implementation using SwiftUI + +The application displays 999 images in a LazyVerticalGrid (or equivalent on each platform) with 3 columns. +The images are loaded asynchronously from local resources: + +- In the Compose Multiplatform version, images are loaded using [Coil library](https://coil-kt.github.io/coil/) from the Compose Multiplatform resources +- In the native Android version, images are loaded using [Coil library](https://coil-kt.github.io/coil/) from the Android assets +- In the native iOS version, images are loaded using `AsyncImage` from the local file system + +The project is used to compare Compose Multiplatform performance metrics with native counter-parts such us +size, startup time, FPS, CPU/GPU usage, etc. + +## Project Structure + +* `/composeApp` - Contains the Kotlin Multiplatform implementation using Compose Multiplatform + - `commonMain` - Code shared across all platforms + - `androidMain` - Android-specific code + - `iosMain` - iOS-specific code + - `desktopMain` - Desktop-specific code + +* `/nativeAndroidApp` - Contains a native Android implementation using Jetpack Compose + - Uses Android's resource system to load images + +* `/nativeiosApp` - Contains a native iOS implementation using SwiftUI + - Uses iOS asset catalog to load images + +## Downloading Images + +This project includes a script to download 999 different images +from [Picsum Photos](https://picsum.photos/) with 512x512 resolution: + +`./download_images.sh` + +Please run the script before building the project. + +## Building and Running + +### Compose Multiplatform App +- For Android: Run the `composeApp` configuration from Android Studio +- For iOS: Open the Xcode project in the `iosApp` directory +- For Desktop: Run the `desktopApp` configuration from IntelliJ IDEA or Android Studio + +### Native Android App +- Open the `nativeAndroidApp` directory in Android Studio and run the app + +### Native iOS App +- Open the `nativeiosApp/nativeiosApp.xcodeproj` in Xcode and run the app diff --git a/benchmarks/showcases/LazyGridImageView/build.gradle.kts b/benchmarks/showcases/LazyGridImageView/build.gradle.kts new file mode 100644 index 00000000000..cf780d5a609 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/build.gradle.kts @@ -0,0 +1,9 @@ +plugins { + // this is necessary to avoid the plugins to be loaded multiple times + // in each subproject's classloader + alias(libs.plugins.androidApplication) apply false + alias(libs.plugins.androidLibrary) apply false + alias(libs.plugins.composeMultiplatform) apply false + alias(libs.plugins.composeCompiler) apply false + alias(libs.plugins.kotlinMultiplatform) apply false +} \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/build.gradle.kts b/benchmarks/showcases/LazyGridImageView/composeApp/build.gradle.kts new file mode 100644 index 00000000000..a1ea3bb95c0 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/build.gradle.kts @@ -0,0 +1,95 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.androidApplication) + alias(libs.plugins.composeMultiplatform) + alias(libs.plugins.composeCompiler) +} + +kotlin { + androidTarget { + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } + } + + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { iosTarget -> + iosTarget.binaries.framework { + baseName = "ComposeApp" + isStatic = true + } + } + + jvm("desktop") + + sourceSets { + val desktopMain by getting + + androidMain.dependencies { + implementation(compose.preview) + implementation(libs.androidx.activity.compose) + } + commonMain.dependencies { + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material3) + implementation(compose.ui) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + implementation(libs.androidx.lifecycle.viewmodel) + implementation(libs.androidx.lifecycle.runtime.compose) + + implementation(libs.coil.compose) + } + desktopMain.dependencies { + implementation(compose.desktop.currentOs) + implementation(libs.kotlinx.coroutines.swing) + } + } +} + +android { + namespace = "org.jetbrains.lazygridimage" + compileSdk = libs.versions.android.compileSdk.get().toInt() + + defaultConfig { + applicationId = "org.jetbrains.lazygridimage" + minSdk = libs.versions.android.minSdk.get().toInt() + targetSdk = libs.versions.android.targetSdk.get().toInt() + versionCode = 1 + versionName = "1.0" + } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + buildTypes { + getByName("release") { + isMinifyEnabled = false + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +compose.desktop { + application { + mainClass = "org.jetbrains.lazygridimage.MainKt" + } +} + +dependencies { + debugImplementation(compose.uiTooling) +} + diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/AndroidManifest.xml b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/AndroidManifest.xml new file mode 100644 index 00000000000..c5db0b15f2d --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/kotlin/org/jetbrains/lazygridimage/MainActivity.kt b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/kotlin/org/jetbrains/lazygridimage/MainActivity.kt new file mode 100644 index 00000000000..a64093c64e3 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/kotlin/org/jetbrains/lazygridimage/MainActivity.kt @@ -0,0 +1,23 @@ +package org.jetbrains.lazygridimage + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + App() + } + } +} + +@Preview +@Composable +fun AppAndroidPreview() { + App() +} \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000000..e93e11adef9 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png rename to benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/values/strings.xml b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/values/strings.xml new file mode 100644 index 00000000000..f970244e4c5 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/androidMain/res/values/strings.xml @@ -0,0 +1,3 @@ + + Hello CMP + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/commonMain/composeResources/files/downloaded_image001.jpg b/benchmarks/showcases/LazyGridImageView/composeApp/src/commonMain/composeResources/files/downloaded_image001.jpg new file mode 100644 index 00000000000..d3b9f1e9dac Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/composeApp/src/commonMain/composeResources/files/downloaded_image001.jpg differ diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/commonMain/kotlin/org/jetbrains/lazygridimage/App.kt b/benchmarks/showcases/LazyGridImageView/composeApp/src/commonMain/kotlin/org/jetbrains/lazygridimage/App.kt new file mode 100644 index 00000000000..25eddb45279 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/commonMain/kotlin/org/jetbrains/lazygridimage/App.kt @@ -0,0 +1,143 @@ +package org.jetbrains.lazygridimage + +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.Checkbox +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text + +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.unit.dp +import coil3.compose.AsyncImage +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import lazygridimage.composeapp.generated.resources.Res +import org.jetbrains.compose.resources.ExperimentalResourceApi +import org.jetbrains.compose.ui.tooling.preview.Preview + +@OptIn(ExperimentalResourceApi::class) +@Composable +@Preview +fun App() { + val gridState = rememberLazyGridState() + val coroutineScope = rememberCoroutineScope() + + // State for auto-scrolling + var autoScroll by remember { mutableStateOf(false) } + var scrollingDown by remember { mutableStateOf(true) } + var currentIndex by remember { mutableStateOf(0) } + + val uris = remember { + val availableResources: MutableList = mutableListOf() + for (index in 1..999) { + try { + val resUri = Res.getUri("files/downloaded_image${index.toString().padStart(3, '0')}.jpg") + availableResources.add(resUri) + } catch (e: Exception) { + //ignore + } + } + List(999) { index -> + availableResources[index % availableResources.size] + } + } + + val numOfColumns = 3 + + // Auto-scrolling effect + LaunchedEffect(autoScroll) { + if (autoScroll) { + while (true) { + delay(100) + + if (scrollingDown) { + if (currentIndex < uris.size - numOfColumns - 1) { + currentIndex += numOfColumns + } else { + scrollingDown = false + } + } else { + if (currentIndex > 0) { + currentIndex -= numOfColumns + } else { + scrollingDown = true + } + } + + coroutineScope.launch { + gridState.animateScrollToItem( + index = currentIndex, + ) + } + } + } + } + + MaterialTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + Column( + modifier = Modifier.fillMaxSize(), + horizontalAlignment = Alignment.CenterHorizontally + ) { + // Checkbox for auto-scrolling + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.padding(8.dp) + ) { + Checkbox( + checked = autoScroll, + onCheckedChange = { autoScroll = it } + ) + Spacer(modifier = Modifier.width(8.dp)) + Text("Auto Scroll") + } + + LazyVerticalGrid( + columns = GridCells.Fixed(numOfColumns), + contentPadding = PaddingValues(4.dp), + modifier = Modifier.fillMaxSize(), + state = gridState + ) { + items(uris) { uri -> + ImageCard( + uri, + modifier = Modifier.padding(4.dp) + ) + } + } + } + } + } +} + +@Composable +fun ImageCard( + uri: String, + modifier: Modifier = Modifier +) { + Card( + modifier = modifier + .aspectRatio(1f) // Square aspect ratio + .fillMaxWidth(), + elevation = CardDefaults.cardElevation(defaultElevation = 4.dp) + ) { + AsyncImage( + model = uri, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize() + ) + } +} diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/desktopMain/kotlin/org/jetbrains/lazygridimage/main.kt b/benchmarks/showcases/LazyGridImageView/composeApp/src/desktopMain/kotlin/org/jetbrains/lazygridimage/main.kt new file mode 100644 index 00000000000..91eb2f13d8a --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/desktopMain/kotlin/org/jetbrains/lazygridimage/main.kt @@ -0,0 +1,13 @@ +package org.jetbrains.lazygridimage + +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application + +fun main() = application { + Window( + onCloseRequest = ::exitApplication, + title = "LazyGridImage", + ) { + App() + } +} \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/composeApp/src/iosMain/kotlin/org/jetbrains/lazygridimage/MainViewController.kt b/benchmarks/showcases/LazyGridImageView/composeApp/src/iosMain/kotlin/org/jetbrains/lazygridimage/MainViewController.kt new file mode 100644 index 00000000000..b2d0bd72fbe --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/composeApp/src/iosMain/kotlin/org/jetbrains/lazygridimage/MainViewController.kt @@ -0,0 +1,5 @@ +package org.jetbrains.lazygridimage + +import androidx.compose.ui.window.ComposeUIViewController + +fun MainViewController() = ComposeUIViewController { App() } \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/download_images.sh b/benchmarks/showcases/LazyGridImageView/download_images.sh new file mode 100755 index 00000000000..841eb4a49f9 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/download_images.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +TARGET_DIR="composeApp/src/commonMain/composeResources/files" +TARGET_DIR_IOS="nativeiosApp/nativeiosApp/downloaded_images" +TARGET_DIR_ANDROID="nativeAndroidApp/app/src/main/assets/downloaded_images" + +mkdir -p "$TARGET_DIR" +mkdir -p "$TARGET_DIR_IOS" +mkdir -p "$TARGET_DIR_ANDROID" + +echo "Downloading 999 images from picsum.photos..." + +# Download 999 images +for i in $(seq 1 999); do + imagename="downloaded_image$(printf "%03d" $i)" + filename="${imagename}.jpg" + filepath="$TARGET_DIR/$filename" + + echo "Downloading image $i/999: $filename" + + # Download the image with specific ID, size 512x512, in JPG format + curl -f -s -L -o "$filepath" "https://picsum.photos/id/$i/512/512.jpg" + + # Check if download was successful + if [ -s "$filepath" ]; then + echo " Success: Downloaded $filename" + else + echo " Error: Failed to download $filename, trying random image instead" + # If specific ID fails, try a random image + curl -s -L -o "$filepath" "https://picsum.photos/512/512.jpg" + + if [ -s "$filepath" ]; then + echo " Success: Downloaded random image as $filename" + else + echo " Error: Failed to download random image as $filename" + fi + fi + + if [ -s "$filepath" ]; then + cp $filepath $TARGET_DIR_IOS + echo "Image $filename copied to $TARGET_DIR_IOS" + + cp $filepath $TARGET_DIR_ANDROID + echo "Image $filename copied to $TARGET_DIR_ANDROID" + fi + + sleep 0.1 +done + +echo "Download complete. Successfully downloaded images are in $TARGET_DIR, $TARGET_DIR_IOS, $TARGET_DIR_ANDROID" diff --git a/benchmarks/showcases/LazyGridImageView/gradle.properties b/benchmarks/showcases/LazyGridImageView/gradle.properties new file mode 100644 index 00000000000..964007c5a24 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/gradle.properties @@ -0,0 +1,10 @@ +#Kotlin +kotlin.code.style=official +kotlin.daemon.jvmargs=-Xmx2048M + +#Gradle +org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 + +#Android +android.nonTransitiveRClass=true +android.useAndroidX=true \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/gradle/libs.versions.toml b/benchmarks/showcases/LazyGridImageView/gradle/libs.versions.toml new file mode 100644 index 00000000000..5170782a077 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/gradle/libs.versions.toml @@ -0,0 +1,41 @@ +[versions] +agp = "8.9.0" +android-compileSdk = "35" +android-minSdk = "24" +android-targetSdk = "35" +androidx-activityCompose = "1.10.1" +androidx-appcompat = "1.7.0" +androidx-constraintlayout = "2.2.1" +androidx-core-ktx = "1.15.0" +androidx-espresso-core = "3.6.1" +androidx-lifecycle = "2.9.2" +androidx-material = "1.12.0" +androidx-test-junit = "1.2.1" +coilCompose = "3.1.0" +compose-multiplatform = "1.9.0-rc01" +junit = "4.13.2" +kotlin = "2.2.10" +kotlinx-coroutines = "1.10.1" + +[libraries] +coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coilCompose" } +kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } +kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core-ktx" } +androidx-test-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-junit" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidx-espresso-core" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } +androidx-material = { group = "com.google.android.material", name = "material", version.ref = "androidx-material" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" } +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" } +androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" } +androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } +kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" } + +[plugins] +androidApplication = { id = "com.android.application", version.ref = "agp" } +androidLibrary = { id = "com.android.library", version.ref = "agp" } +composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } +composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/gradle/wrapper/gradle-wrapper.jar b/benchmarks/showcases/LazyGridImageView/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000000..2c3521197d7 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/gradle/wrapper/gradle-wrapper.jar differ diff --git a/benchmarks/showcases/LazyGridImageView/gradle/wrapper/gradle-wrapper.properties b/benchmarks/showcases/LazyGridImageView/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..37f853b1c84 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/benchmarks/showcases/LazyGridImageView/gradlew b/benchmarks/showcases/LazyGridImageView/gradlew new file mode 100755 index 00000000000..f5feea6d6b1 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/benchmarks/showcases/LazyGridImageView/gradlew.bat b/benchmarks/showcases/LazyGridImageView/gradlew.bat new file mode 100644 index 00000000000..9d21a21834d --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/benchmarks/showcases/LazyGridImageView/iosApp/Configuration/Config.xcconfig b/benchmarks/showcases/LazyGridImageView/iosApp/Configuration/Config.xcconfig new file mode 100644 index 00000000000..4e0baaddde4 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/iosApp/Configuration/Config.xcconfig @@ -0,0 +1,3 @@ +TEAM_ID= +BUNDLE_ID=org.jetbrains.lazygridimage.LazyGridImageCMPImpl +APP_NAME=LazyGridImageCMPImpl \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/iosApp/iosApp.xcodeproj/project.pbxproj b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..53f0117d7d2 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp.xcodeproj/project.pbxproj @@ -0,0 +1,395 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; + 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; + 7555FF7B242A565900829871 /* iosApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iosApp.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B92378962B6B1156000C7307 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 058557D7273AAEEB004C7B11 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 42799AB246E5F90AF97AA0EF /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 7555FF72242A565900829871 = { + isa = PBXGroup; + children = ( + AB1DB47929225F7C00F7AF9C /* Configuration */, + 7555FF7D242A565900829871 /* iosApp */, + 7555FF7C242A565900829871 /* Products */, + 42799AB246E5F90AF97AA0EF /* Frameworks */, + ); + sourceTree = ""; + }; + 7555FF7C242A565900829871 /* Products */ = { + isa = PBXGroup; + children = ( + 7555FF7B242A565900829871 /* iosApp.app */, + ); + name = Products; + sourceTree = ""; + }; + 7555FF7D242A565900829871 /* iosApp */ = { + isa = PBXGroup; + children = ( + 058557BA273AAA24004C7B11 /* Assets.xcassets */, + 7555FF82242A565900829871 /* ContentView.swift */, + 7555FF8C242A565B00829871 /* Info.plist */, + 2152FB032600AC8F00CF470E /* iOSApp.swift */, + 058557D7273AAEEB004C7B11 /* Preview Content */, + ); + path = iosApp; + sourceTree = ""; + }; + AB1DB47929225F7C00F7AF9C /* Configuration */ = { + isa = PBXGroup; + children = ( + AB3632DC29227652001CCB65 /* Config.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7555FF7A242A565900829871 /* iosApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; + buildPhases = ( + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, + 7555FF77242A565900829871 /* Sources */, + B92378962B6B1156000C7307 /* Frameworks */, + 7555FF79242A565900829871 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iosApp; + packageProductDependencies = ( + ); + productName = iosApp; + productReference = 7555FF7B242A565900829871 /* iosApp.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7555FF73242A565900829871 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1540; + ORGANIZATIONNAME = orgName; + TargetAttributes = { + 7555FF7A242A565900829871 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7555FF72242A565900829871; + packageReferences = ( + ); + productRefGroup = 7555FF7C242A565900829871 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7555FF7A242A565900829871 /* iosApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7555FF79242A565900829871 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Compile Kotlin Framework"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :composeApp:embedAndSignAppleFrameworkForXcode\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7555FF77242A565900829871 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, + 7555FF83242A565900829871 /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7555FFA3242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7555FFA4242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7555FFA6242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); + INFOPLIST_FILE = iosApp/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LazyGridImageCMPImpl; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7555FFA7242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); + INFOPLIST_FILE = iosApp/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LazyGridImageCMPImpl; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA3242A565B00829871 /* Debug */, + 7555FFA4242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA6242A565B00829871 /* Debug */, + 7555FFA7242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7555FF73242A565900829871 /* Project object */; +} diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json rename to benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json rename to benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png similarity index 100% rename from benchmarks/ios/animation-from-template/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png rename to benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/Contents.json b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/Contents.json similarity index 100% rename from benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Assets.xcassets/Contents.json rename to benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Assets.xcassets/Contents.json diff --git a/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/ContentView.swift b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/ContentView.swift new file mode 100644 index 00000000000..36804823229 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/ContentView.swift @@ -0,0 +1,22 @@ +import UIKit +import SwiftUI +import ComposeApp + +struct ComposeView: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> UIViewController { + MainViewControllerKt.MainViewController() + } + + func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} +} + +struct ContentView: View { + var body: some View { + ComposeView() + .ignoresSafeArea(.keyboard) // Compose has own keyboard handler + .ignoresSafeArea(edges: .bottom) + } +} + + + diff --git a/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Info.plist b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Info.plist new file mode 100644 index 00000000000..412e3781280 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from benchmarks/ios/scroll-lazy-grid/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json rename to benchmarks/showcases/LazyGridImageView/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/iOSApp.swift b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/iOSApp.swift new file mode 100644 index 00000000000..d83dca6113a --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/iosApp/iosApp/iOSApp.swift @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct iOSApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/.gitignore b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/.gitignore new file mode 100644 index 00000000000..b55b7faa4a1 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/.gitignore @@ -0,0 +1,6 @@ +.gradle +.idea +.kotlin +.DS_Store +/build +local.properties diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/.gitignore b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/.gitignore new file mode 100644 index 00000000000..42afabfd2ab --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/build.gradle.kts b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/build.gradle.kts new file mode 100644 index 00000000000..86ef204a6f2 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/build.gradle.kts @@ -0,0 +1,57 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) +} + +android { + namespace = "org.jetbrains.lazygridimage" + compileSdk = 35 + + defaultConfig { + applicationId = "org.jetbrains.lazygridimage" + minSdk = 24 + targetSdk = 35 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.ui) + implementation(libs.androidx.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(libs.androidx.ui.test.junit4) + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) + implementation(libs.coil.compose) +} diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/proguard-rules.pro b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/proguard-rules.pro new file mode 100644 index 00000000000..481bb434814 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/AndroidManifest.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000000..6268b5a0eb9 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/assets/downloaded_images/downloaded_image001.jpg b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/assets/downloaded_images/downloaded_image001.jpg new file mode 100644 index 00000000000..d3b9f1e9dac Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/assets/downloaded_images/downloaded_image001.jpg differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/java/org/jetbrains/lazygridimage/MainActivity.kt b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/java/org/jetbrains/lazygridimage/MainActivity.kt new file mode 100644 index 00000000000..83234533dea --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/java/org/jetbrains/lazygridimage/MainActivity.kt @@ -0,0 +1,160 @@ +package org.jetbrains.lazygridimage + +import android.annotation.SuppressLint +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.lazy.grid.rememberLazyGridState +import androidx.compose.material3.Checkbox +import androidx.compose.material3.Text +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.getValue +import androidx.compose.runtime.setValue +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.rememberCoroutineScope +import coil3.compose.AsyncImage +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + App() + } + } +} + +@SuppressLint("DefaultLocale", "DiscouragedApi") +@Composable +fun App() { + val context = LocalContext.current + val gridState = rememberLazyGridState() + val coroutineScope = rememberCoroutineScope() + + // State for auto-scrolling + var autoScroll by remember { mutableStateOf(false) } + var scrollingDown by remember { mutableStateOf(true) } + var currentIndex by remember { mutableStateOf(0) } + + val uris = remember { + val imagesFolder = "downloaded_images/" + val availableResources = context.assets.list(imagesFolder) + + List(999) { index -> + "file:///android_asset/" + imagesFolder + availableResources!![index % availableResources.size] + } + } + + val numOfColumns = 3 + + // Auto-scrolling effect + LaunchedEffect(autoScroll) { + if (autoScroll) { + while (true) { + delay(100) + + if (scrollingDown) { + if (currentIndex < uris.size - numOfColumns - 1) { + currentIndex += numOfColumns + } else { + scrollingDown = false + } + } else { + if (currentIndex > 0) { + currentIndex -= numOfColumns + } else { + scrollingDown = true + } + } + + coroutineScope.launch { + gridState.animateScrollToItem( + index = currentIndex, + ) + } + } + } + } + + MaterialTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + Column( + modifier = Modifier.fillMaxSize(), + horizontalAlignment = Alignment.CenterHorizontally + ) { + // Checkbox for auto-scrolling + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.padding(8.dp) + ) { + Checkbox( + checked = autoScroll, + onCheckedChange = { autoScroll = it } + ) + Spacer(modifier = Modifier.width(8.dp)) + Text("Auto Scroll") + } + + LazyVerticalGrid( + columns = GridCells.Fixed(numOfColumns), + contentPadding = PaddingValues(4.dp), + modifier = Modifier.fillMaxSize(), + state = gridState + ) { + items(uris) { uri -> + ImageCard( + uri, + modifier = Modifier.padding(4.dp) + ) + } + } + } + } + } +} + +@Composable +fun ImageCard( + uri: String, + modifier: Modifier = Modifier +) { + Card( + modifier = modifier + .aspectRatio(1f) // Square aspect ratio + .fillMaxWidth(), + elevation = CardDefaults.cardElevation(defaultElevation = 4.dp) + ) { + AsyncImage( + model = uri, + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize() + ) + } +} + +@Preview(showBackground = true) +@Composable +fun DefaultPreview() { + App() +} diff --git a/benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from benchmarks/ios/animation-from-template/androidApp/src/androidMain/res/drawable/ic_launcher_background.xml rename to benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/drawable/ic_launcher_background.xml diff --git a/benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from benchmarks/ios/scroll-lazy-grid/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml rename to benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000000..6f3b755bf50 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000000..6f3b755bf50 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 00000000000..c209e78ecd3 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 00000000000..b2dfe3d1ba5 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 00000000000..4f0f1d64e58 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 00000000000..62b611da081 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 00000000000..948a3070fe3 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 00000000000..1b9a6956b3a Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 00000000000..28d4b77f9f0 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 00000000000..9287f508362 Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 00000000000..aa7d6427e6f Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 00000000000..9126ae37cbc Binary files /dev/null and b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/colors.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/colors.xml new file mode 100644 index 00000000000..f8c6127d327 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/strings.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/strings.xml new file mode 100644 index 00000000000..eeb85528cdd --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + LazyGridImage + \ No newline at end of file diff --git a/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/themes.xml b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/themes.xml new file mode 100644 index 00000000000..6975b41d952 --- /dev/null +++ b/benchmarks/showcases/LazyGridImageView/nativeAndroidApp/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + - +
diff --git a/examples/imageviewer/webApp/src/wasmJsMain/kotlin/Main.wasm.kt b/examples/imageviewer/webApp/src/wasmJsMain/kotlin/Main.wasm.kt index 7e690636f1e..15f7cc3e419 100644 --- a/examples/imageviewer/webApp/src/wasmJsMain/kotlin/Main.wasm.kt +++ b/examples/imageviewer/webApp/src/wasmJsMain/kotlin/Main.wasm.kt @@ -1,5 +1,5 @@ import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.window.CanvasBasedWindow +import androidx.compose.ui.window.ComposeViewport import org.jetbrains.compose.resources.ExperimentalResourceApi import org.jetbrains.compose.resources.configureWebResources @@ -8,7 +8,7 @@ fun main() { configureWebResources { resourcePathMapping { path -> "./$path" } } - CanvasBasedWindow("ImageViewer") { + ComposeViewport("composeApp") { ImageViewerWeb() } } diff --git a/examples/imageviewer/webApp/src/wasmJsMain/resources/index.html b/examples/imageviewer/webApp/src/wasmJsMain/resources/index.html index ed55d4b71b5..74e6648d573 100644 --- a/examples/imageviewer/webApp/src/wasmJsMain/resources/index.html +++ b/examples/imageviewer/webApp/src/wasmJsMain/resources/index.html @@ -53,10 +53,15 @@ right: 10px; cursor: pointer; } + + #composeApp { + width: 100%; + height: 100%; + } - +
⚠️ Please make sure that your runtime environment supports the latest version of Wasm GC and Exception-Handling proposals. diff --git a/examples/imageviewer/webApp/src/jsWasmMain/kotlin/Common.kt b/examples/imageviewer/webApp/src/webMain/kotlin/Common.kt similarity index 100% rename from examples/imageviewer/webApp/src/jsWasmMain/kotlin/Common.kt rename to examples/imageviewer/webApp/src/webMain/kotlin/Common.kt diff --git a/examples/intellij-plugin/.gitignore b/examples/intellij-plugin/.gitignore deleted file mode 100644 index a32b16597bf..00000000000 --- a/examples/intellij-plugin/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx diff --git a/examples/intellij-plugin/.run/runIde.run.xml b/examples/intellij-plugin/.run/runIde.run.xml deleted file mode 100644 index 52aca017c27..00000000000 --- a/examples/intellij-plugin/.run/runIde.run.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/examples/intellij-plugin/README.md b/examples/intellij-plugin/README.md deleted file mode 100644 index c78000edee4..00000000000 --- a/examples/intellij-plugin/README.md +++ /dev/null @@ -1,13 +0,0 @@ -## Example CFD based plugin for IntelliJ Idea. - -To run the example: - -1. from directory `compose-jb/examples/intellij-plugin`: - * Run command in terminal `./gradlew runIde`. - * Or choose **runIde** configuration in IDE and run it. - ![ide-run-configuration.png](screenshots/ide-run-configuration.png) -2. create project or open any existing -3. from menu `Tools` select `Show Compose Demo...` - -![screen1](screenshots/toolsshow.png) -![screen2](screenshots/screenshot.png) diff --git a/examples/intellij-plugin/build.gradle.kts b/examples/intellij-plugin/build.gradle.kts deleted file mode 100644 index 5ea7342ac99..00000000000 --- a/examples/intellij-plugin/build.gradle.kts +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id("org.jetbrains.intellij") version "1.17.2" - java - kotlin("jvm") - kotlin("plugin.compose") - id("org.jetbrains.compose") - id("idea") -} - -group = "org.example" -version = "1.0-SNAPSHOT" - -repositories { - mavenCentral() - google() - maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } -} - -dependencies { - implementation(compose.desktop.currentOs) - testImplementation("junit", "junit", "4.12") -} - -// See https://github.com/JetBrains/gradle-intellij-plugin/ -intellij { - version.set("2021.3") -} - -kotlin { - jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - } -} diff --git a/examples/intellij-plugin/gradle.properties b/examples/intellij-plugin/gradle.properties deleted file mode 100644 index 5a1e304d818..00000000000 --- a/examples/intellij-plugin/gradle.properties +++ /dev/null @@ -1,5 +0,0 @@ -kotlin.code.style=official -kotlin.version=2.0.0 -compose.version=1.6.10 -org.gradle.configuration-cache=true -org.gradle.caching=true diff --git a/examples/intellij-plugin/gradle/wrapper/gradle-wrapper.jar b/examples/intellij-plugin/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/examples/intellij-plugin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/intellij-plugin/gradle/wrapper/gradle-wrapper.properties b/examples/intellij-plugin/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 17655d0ef2b..00000000000 --- a/examples/intellij-plugin/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/intellij-plugin/gradlew b/examples/intellij-plugin/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/examples/intellij-plugin/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/examples/intellij-plugin/gradlew.bat b/examples/intellij-plugin/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/examples/intellij-plugin/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/intellij-plugin/screenshots/ide-run-configuration.png b/examples/intellij-plugin/screenshots/ide-run-configuration.png deleted file mode 100644 index 9dc9453a387..00000000000 Binary files a/examples/intellij-plugin/screenshots/ide-run-configuration.png and /dev/null differ diff --git a/examples/intellij-plugin/screenshots/screenshot.png b/examples/intellij-plugin/screenshots/screenshot.png deleted file mode 100644 index 41f6c55c68e..00000000000 Binary files a/examples/intellij-plugin/screenshots/screenshot.png and /dev/null differ diff --git a/examples/intellij-plugin/screenshots/toolsshow.png b/examples/intellij-plugin/screenshots/toolsshow.png deleted file mode 100644 index 1edf058c55e..00000000000 Binary files a/examples/intellij-plugin/screenshots/toolsshow.png and /dev/null differ diff --git a/examples/intellij-plugin/settings.gradle.kts b/examples/intellij-plugin/settings.gradle.kts deleted file mode 100644 index 33e1be002bf..00000000000 --- a/examples/intellij-plugin/settings.gradle.kts +++ /dev/null @@ -1,9 +0,0 @@ -rootProject.name = "ComposeDemoPlugin" - -pluginManagement { - plugins { - kotlin("jvm").version(extra["kotlin.version"] as String) - kotlin("plugin.compose").version(extra["kotlin.version"] as String) - id("org.jetbrains.compose").version(extra["compose.version"] as String) - } -} diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/ComposeDemoAction.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/ComposeDemoAction.kt deleted file mode 100755 index dbe8091af07..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/ComposeDemoAction.kt +++ /dev/null @@ -1,65 +0,0 @@ -package com.jetbrains.compose - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Surface -import androidx.compose.ui.Modifier -import androidx.compose.ui.awt.ComposePanel -import com.intellij.openapi.actionSystem.AnActionEvent -import com.intellij.openapi.project.DumbAwareAction -import com.intellij.openapi.project.Project -import com.intellij.openapi.ui.DialogWrapper -import com.jetbrains.compose.theme.WidgetTheme -import com.jetbrains.compose.widgets.Buttons -import com.jetbrains.compose.widgets.LazyScrollable -import com.jetbrains.compose.widgets.Loaders -import com.jetbrains.compose.widgets.TextInputs -import com.jetbrains.compose.widgets.Toggles -import javax.swing.JComponent - - -/** - * @author Konstantin Bulenkov - */ -class ComposeDemoAction : DumbAwareAction() { - override fun actionPerformed(e: AnActionEvent) { - DemoDialog(e.project).show() - } - - class DemoDialog(project: Project?) : DialogWrapper(project) { - init { - title = "Demo" - init() - } - - override fun createCenterPanel(): JComponent { - return ComposePanel().apply { - setBounds(0, 0, 800, 600) - setContent { - WidgetTheme(darkTheme = true) { - Surface(modifier = Modifier.fillMaxSize()) { - Row { - Column( - modifier = Modifier.fillMaxHeight().weight(1f) - ) { - Buttons() - Loaders() - TextInputs() - Toggles() - } - Box( - modifier = Modifier.fillMaxHeight().weight(1f) - ) { - LazyScrollable() - } - } - } - } - } - } - } - } -} diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Color.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Color.kt deleted file mode 100644 index 9ed4581b850..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Color.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.ui.graphics.Color - -val green200 = Color(0xffa5d6a7) -val green500 = Color(0xff4caf50) -val green700 = Color(0xff388e3c) - -val teal200 = Color(0xff80deea) diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Shape.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Shape.kt deleted file mode 100644 index 3ac8795fc70..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Shape.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Shapes -import androidx.compose.ui.unit.dp - -val shapes = Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(4.dp), - large = RoundedCornerShape(0.dp) -) \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Theme.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Theme.kt deleted file mode 100644 index 78a3ec5181f..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Theme.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.material.MaterialTheme -import androidx.compose.material.darkColors -import androidx.compose.material.lightColors -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color -import com.jetbrains.compose.theme.intellij.SwingColor - -private val DarkGreenColorPalette = darkColors( - primary = green200, - primaryVariant = green700, - secondary = teal200, - onPrimary = Color.Black, - onSecondary = Color.White, - error = Color.Red, -) - -private val LightGreenColorPalette = lightColors( - primary = green500, - primaryVariant = green700, - secondary = teal200, - onPrimary = Color.White, - onSurface = Color.Black -) - -@Composable -fun WidgetTheme( - darkTheme: Boolean = false, - content: @Composable() () -> Unit, -) { - val colors = if (darkTheme) DarkGreenColorPalette else LightGreenColorPalette - val swingColor = SwingColor() - - MaterialTheme( - colors = colors.copy( - background = swingColor.background, - onBackground = swingColor.onBackground, - surface = swingColor.background, - onSurface = swingColor.onBackground, - ), - typography = typography, - shapes = shapes, - content = content - ) -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Type.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Type.kt deleted file mode 100644 index 4bc429afa8f..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/Type.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.material.Typography -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp - -val typography = Typography( - body1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ), - body2 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 14.sp - ), - button = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.W500, - fontSize = 14.sp - ), - caption = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 12.sp, - ), - subtitle1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - color = Color.Gray - ), - subtitle2 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 14.sp, - color = Color.Gray - ), -) \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/intellij/SwingColor.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/intellij/SwingColor.kt deleted file mode 100644 index 0aac1aaf505..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/intellij/SwingColor.kt +++ /dev/null @@ -1,61 +0,0 @@ -package com.jetbrains.compose.theme.intellij - -import androidx.compose.runtime.* -import androidx.compose.ui.graphics.Color -import com.intellij.ide.ui.LafManagerListener -import com.intellij.openapi.application.ApplicationManager -import javax.swing.UIManager -import java.awt.Color as AWTColor - -interface SwingColor { - val background: Color - val onBackground: Color -} - -@Composable -fun SwingColor(): SwingColor { - val swingColor = remember { SwingColorImpl() } - - val messageBus = remember { - ApplicationManager.getApplication().messageBus.connect() - } - - remember(messageBus) { - messageBus.subscribe( - LafManagerListener.TOPIC, - ThemeChangeListener(swingColor::updateCurrentColors) - ) - } - - DisposableEffect(messageBus) { - onDispose { - messageBus.disconnect() - } - } - - return swingColor -} - -private class SwingColorImpl : SwingColor { - private val _backgroundState: MutableState = mutableStateOf(getBackgroundColor) - private val _onBackgroundState: MutableState = mutableStateOf(getOnBackgroundColor) - - override val background: Color get() = _backgroundState.value - override val onBackground: Color get() = _onBackgroundState.value - - private val getBackgroundColor get() = getColor(BACKGROUND_KEY) - private val getOnBackgroundColor get() = getColor(ON_BACKGROUND_KEY) - - fun updateCurrentColors() { - _backgroundState.value = getBackgroundColor - _onBackgroundState.value = getOnBackgroundColor - } - - private val AWTColor.asComposeColor: Color get() = Color(red, green, blue, alpha) - private fun getColor(key: String): Color = UIManager.getColor(key).asComposeColor - - companion object { - private const val BACKGROUND_KEY = "Panel.background" - private const val ON_BACKGROUND_KEY = "Panel.foreground" - } -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/intellij/ThemeChangeListener.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/intellij/ThemeChangeListener.kt deleted file mode 100644 index 95a83241141..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/theme/intellij/ThemeChangeListener.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.jetbrains.compose.theme.intellij - -import com.intellij.ide.ui.LafManager -import com.intellij.ide.ui.LafManagerListener - -internal class ThemeChangeListener( - val updateColors: () -> Unit -) : LafManagerListener { - override fun lookAndFeelChanged(source: LafManager) { - updateColors() - } -} - diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Buttons.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Buttons.kt deleted file mode 100755 index 89fc8c2c112..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Buttons.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.TextButton -import androidx.compose.material.OutlinedButton -import androidx.compose.material.Text -import androidx.compose.material.Icon -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.FavoriteBorder -import androidx.compose.material.icons.filled.Refresh -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun Buttons() { - Row { - val btnEnabled = remember { mutableStateOf(true) } - Button( - onClick = { btnEnabled.value = !btnEnabled.value}, - modifier = Modifier.padding(8.dp), - enabled = btnEnabled.value - ) { - Icon( - imageVector = Icons.Default.FavoriteBorder, - contentDescription = "FavoriteBorder", - modifier = Modifier.padding(end = 4.dp) - ) - Text(text = "Button") - } - val btnTextEnabled = remember { mutableStateOf(true) } - TextButton( - onClick = { btnTextEnabled.value = !btnTextEnabled.value }, - modifier = Modifier.padding(8.dp), - enabled = btnTextEnabled.value - ) { - Text(text = "Text Button") - } - OutlinedButton( - onClick = { - btnEnabled.value = true - btnTextEnabled.value = true - }, - modifier = Modifier.padding(8.dp) - ) { - Icon( - imageVector = Icons.Default.Refresh, - contentDescription = "Refresh", - modifier = Modifier.padding(0.dp) - ) - } - } -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/LazyScrollable.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/LazyScrollable.kt deleted file mode 100755 index c898fa0804f..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/LazyScrollable.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.background -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.VerticalScrollbar -import androidx.compose.material.Text -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun LazyScrollable() { - MaterialTheme { - Box( - modifier = Modifier.fillMaxSize() - .padding(10.dp) - ) { - - val state = rememberLazyListState() - val itemCount = 100 - - LazyColumn(Modifier.fillMaxSize().padding(end = 12.dp), state) { - items(itemCount) { x -> - TextBox("Item in ScrollableColumn #$x") - Spacer(modifier = Modifier.height(5.dp)) - } - } - VerticalScrollbar( - modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(), - adapter = rememberScrollbarAdapter( - scrollState = state - ) - ) - } - } -} - -@Composable -private fun TextBox(text: String = "Item") { - Surface( - color = Color(135, 135, 135, 40), - shape = RoundedCornerShape(4.dp) - ) { - Box( - modifier = Modifier.height(32.dp) - .fillMaxWidth() - .padding(start = 10.dp), - contentAlignment = Alignment.CenterStart - ) { - Text(text = text) - } - } -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Loaders.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Loaders.kt deleted file mode 100755 index a18252459b2..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Loaders.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.size -import androidx.compose.material.CircularProgressIndicator -import androidx.compose.material.LinearProgressIndicator -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun Loaders() { - Row( - modifier = Modifier.fillMaxWidth().padding(16.dp) - ) { - Box( - modifier = Modifier.height(30.dp), - contentAlignment = Alignment.Center - ) { - CircularProgressIndicator( - modifier = Modifier.size(20.dp, 20.dp), - strokeWidth = 4.dp - ) - } - Box( - modifier = Modifier - .height(30.dp) - .padding(start = 8.dp), - contentAlignment = Alignment.Center - ) { - LinearProgressIndicator(modifier = Modifier.fillMaxWidth()) - } - } -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/TextInputs.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/TextInputs.kt deleted file mode 100755 index 5ca7a9aad67..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/TextInputs.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.material.OutlinedTextField -import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.text.input.TextFieldValue -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.unit.dp - -@Composable -fun TextInputs() { - Column( - modifier = Modifier.fillMaxWidth().padding(16.dp) - ) { - var name by remember { mutableStateOf(TextFieldValue("")) } - var password by remember { mutableStateOf(TextFieldValue("")) } - - TextField( - value = name, - onValueChange = { newValue -> name = newValue }, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - textStyle = TextStyle(fontFamily = FontFamily.SansSerif), - label = { Text("Account:") }, - placeholder = { Text("account name") } - ) - - OutlinedTextField( - value = password, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - label = { Text(text = "Password:") }, - placeholder = { Text(text = "your password") }, - textStyle = TextStyle(fontFamily = FontFamily.SansSerif), - visualTransformation = PasswordVisualTransformation(), - onValueChange = { - password = it - }, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password) - ) - } -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Toggles.kt b/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Toggles.kt deleted file mode 100755 index b4a7febac20..00000000000 --- a/examples/intellij-plugin/src/main/kotlin/com/jetbrains/compose/widgets/Toggles.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Checkbox -import androidx.compose.material.MaterialTheme -import androidx.compose.material.RadioButton -import androidx.compose.material.Slider -import androidx.compose.material.Switch -import androidx.compose.material.SwitchDefaults -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun Toggles() { - Column { - Row { - Column( - modifier = Modifier.padding(16.dp) - ) { - var checked by remember { mutableStateOf(true) } - Checkbox( - checked = checked, - modifier = Modifier.padding(8.dp), - onCheckedChange = { checked = !checked } - ) - var switched by remember { mutableStateOf(true) } - Switch( - checked = switched, - colors = SwitchDefaults.colors(checkedThumbColor = MaterialTheme.colors.primary), - modifier = Modifier.padding(8.dp), - onCheckedChange = { switched = it } - ) - } - Column( - modifier = Modifier.padding(16.dp) - ) { - var selected by remember { mutableStateOf("Kotlin") } - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == "Kotlin", onClick = { selected = "Kotlin" }) - Text( - text = "Kotlin", - modifier = Modifier.clickable(onClick = { selected = "Kotlin" }).padding(start = 4.dp) - ) - } - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == "Java", onClick = { selected = "Java" }) - Text( - text = "Java", - modifier = Modifier.clickable(onClick = { selected = "Java" }).padding(start = 4.dp) - ) - } - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == "Swift", onClick = { selected = "Swift" }) - Text( - text = "Swift", - modifier = Modifier.clickable(onClick = { selected = "Swift" }).padding(start = 4.dp) - ) - } - } - } - - var sliderState by remember { mutableStateOf(0f) } - Slider(value = sliderState, modifier = Modifier.fillMaxWidth().padding(8.dp), - onValueChange = { newValue -> - sliderState = newValue - } - ) - - var sliderState2 by remember { mutableStateOf(20f) } - Slider(value = sliderState2, modifier = Modifier.fillMaxWidth().padding(8.dp), - valueRange = 0f..100f, - steps = 5, - onValueChange = { newValue -> - sliderState2 = newValue - } - ) - } -} \ No newline at end of file diff --git a/examples/intellij-plugin/src/main/resources/META-INF/plugin.xml b/examples/intellij-plugin/src/main/resources/META-INF/plugin.xml deleted file mode 100644 index 51e365b369b..00000000000 --- a/examples/intellij-plugin/src/main/resources/META-INF/plugin.xml +++ /dev/null @@ -1,25 +0,0 @@ - - com.jetbrains.ComposeDemoPlugin - Jetpack Compose for Desktop Demo - JetBrains - - - - - com.intellij.modules.platform - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/interop/ios-compose-in-swiftui/gradle.properties b/examples/interop/ios-compose-in-swiftui/gradle.properties index b400da58050..922b9f8e4b6 100644 --- a/examples/interop/ios-compose-in-swiftui/gradle.properties +++ b/examples/interop/ios-compose-in-swiftui/gradle.properties @@ -1,5 +1,5 @@ kotlin.code.style=official xcodeproj=./iosApp org.gradle.jvmargs=-Xmx3g -kotlin.version=2.0.0 -compose.version=1.6.10 +kotlin.version=2.2.20 +compose.version=1.9.1 diff --git a/examples/interop/ios-compose-in-swiftui/gradle/wrapper/gradle-wrapper.properties b/examples/interop/ios-compose-in-swiftui/gradle/wrapper/gradle-wrapper.properties index 17655d0ef2b..37f853b1c84 100644 --- a/examples/interop/ios-compose-in-swiftui/gradle/wrapper/gradle-wrapper.properties +++ b/examples/interop/ios-compose-in-swiftui/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/interop/ios-compose-in-uikit/gradle.properties b/examples/interop/ios-compose-in-uikit/gradle.properties index 49003a0583e..c90e9dd52f2 100644 --- a/examples/interop/ios-compose-in-uikit/gradle.properties +++ b/examples/interop/ios-compose-in-uikit/gradle.properties @@ -3,5 +3,5 @@ xcodeproj=./iosApp org.gradle.jvmargs=-Xmx3g # Enable kotlin/native experimental memory model kotlin.native.binary.memoryModel=experimental -kotlin.version=2.0.0 -compose.version=1.6.10 +kotlin.version=2.2.20 +compose.version=1.9.1 diff --git a/examples/interop/ios-compose-in-uikit/gradle/wrapper/gradle-wrapper.properties b/examples/interop/ios-compose-in-uikit/gradle/wrapper/gradle-wrapper.properties index 17655d0ef2b..37f853b1c84 100644 --- a/examples/interop/ios-compose-in-uikit/gradle/wrapper/gradle-wrapper.properties +++ b/examples/interop/ios-compose-in-uikit/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/interop/ios-swiftui-in-compose/gradle.properties b/examples/interop/ios-swiftui-in-compose/gradle.properties index 49003a0583e..c90e9dd52f2 100644 --- a/examples/interop/ios-swiftui-in-compose/gradle.properties +++ b/examples/interop/ios-swiftui-in-compose/gradle.properties @@ -3,5 +3,5 @@ xcodeproj=./iosApp org.gradle.jvmargs=-Xmx3g # Enable kotlin/native experimental memory model kotlin.native.binary.memoryModel=experimental -kotlin.version=2.0.0 -compose.version=1.6.10 +kotlin.version=2.2.20 +compose.version=1.9.1 diff --git a/examples/interop/ios-swiftui-in-compose/gradle/wrapper/gradle-wrapper.properties b/examples/interop/ios-swiftui-in-compose/gradle/wrapper/gradle-wrapper.properties index 17655d0ef2b..37f853b1c84 100644 --- a/examples/interop/ios-swiftui-in-compose/gradle/wrapper/gradle-wrapper.properties +++ b/examples/interop/ios-swiftui-in-compose/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/interop/ios-uikit-in-compose/gradle.properties b/examples/interop/ios-uikit-in-compose/gradle.properties index 49003a0583e..c90e9dd52f2 100644 --- a/examples/interop/ios-uikit-in-compose/gradle.properties +++ b/examples/interop/ios-uikit-in-compose/gradle.properties @@ -3,5 +3,5 @@ xcodeproj=./iosApp org.gradle.jvmargs=-Xmx3g # Enable kotlin/native experimental memory model kotlin.native.binary.memoryModel=experimental -kotlin.version=2.0.0 -compose.version=1.6.10 +kotlin.version=2.2.20 +compose.version=1.9.1 diff --git a/examples/interop/ios-uikit-in-compose/gradle/wrapper/gradle-wrapper.properties b/examples/interop/ios-uikit-in-compose/gradle/wrapper/gradle-wrapper.properties index 17655d0ef2b..37f853b1c84 100644 --- a/examples/interop/ios-uikit-in-compose/gradle/wrapper/gradle-wrapper.properties +++ b/examples/interop/ios-uikit-in-compose/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/issues/android/build.gradle.kts b/examples/issues/android/build.gradle.kts index 156819f33b9..2baa1b784b9 100644 --- a/examples/issues/android/build.gradle.kts +++ b/examples/issues/android/build.gradle.kts @@ -6,12 +6,12 @@ plugins { } android { - compileSdk = 34 + compileSdk = 35 namespace = "com.example.myapplication" defaultConfig { minSdk = 26 - targetSdk = 34 + targetSdk = 35 applicationId = "org.jetbrains.Issues" versionCode = 1 versionName = "1.0" diff --git a/examples/issues/common/build.gradle.kts b/examples/issues/common/build.gradle.kts index ebc6eef1b40..a5e049f845e 100644 --- a/examples/issues/common/build.gradle.kts +++ b/examples/issues/common/build.gradle.kts @@ -7,7 +7,7 @@ plugins { } kotlin { - android() + androidTarget() jvm("desktop") sourceSets { @@ -16,6 +16,7 @@ kotlin { api(compose.runtime) api(compose.foundation) api(compose.material) + implementation("org.jetbrains.compose.material:material-icons-core:1.6.11") implementation("com.apollographql.apollo:apollo-runtime:2.3.0") implementation("org.ocpsoft.prettytime:prettytime:4.0.4.Final") } @@ -40,7 +41,7 @@ apollo { } android { - compileSdk = 34 + compileSdk = 35 namespace = "com.example.myapplication.common" defaultConfig { diff --git a/examples/issues/desktop/compose-desktop.pro b/examples/issues/desktop/compose-desktop.pro index 6ab65259612..3d8f4ccf252 100644 --- a/examples/issues/desktop/compose-desktop.pro +++ b/examples/issues/desktop/compose-desktop.pro @@ -13,4 +13,7 @@ -dontwarn org.bouncycastle.** -dontwarn org.openjsse.** --keep class org.ocpsoft.prettytime.i18n** \ No newline at end of file +-keep class org.ocpsoft.prettytime.i18n** + +-dontnote okhttp3.** +-keep class okio.Okio__JvmOkioKt { *; } diff --git a/examples/issues/gradle.properties b/examples/issues/gradle.properties index b4646bb591e..4b7bf7085fc 100644 --- a/examples/issues/gradle.properties +++ b/examples/issues/gradle.properties @@ -19,6 +19,6 @@ kotlin.code.style=official android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true -kotlin.version=2.0.0 -agp.version=8.0.2 -compose.version=1.6.10 +kotlin.version=2.2.20 +agp.version=8.9.0 +compose.version=1.9.1 diff --git a/examples/issues/gradle/wrapper/gradle-wrapper.properties b/examples/issues/gradle/wrapper/gradle-wrapper.properties index 17655d0ef2b..37f853b1c84 100644 --- a/examples/issues/gradle/wrapper/gradle-wrapper.properties +++ b/examples/issues/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/jetsnack/.gitignore b/examples/jetsnack/.gitignore index 88f2e2fcc68..a4b97da665f 100644 --- a/examples/jetsnack/.gitignore +++ b/examples/jetsnack/.gitignore @@ -1,4 +1,5 @@ .gradle +.kotlin build/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ @@ -41,3 +42,9 @@ bin/ ### Mac OS ### .DS_Store /local.properties + +iosApp/Podfile.lock +iosApp/Pods/* +iosApp/iosApp.xcworkspace/* +iosApp/iosApp.xcodeproj/* +!iosApp/iosApp.xcodeproj/project.pbxproj diff --git a/examples/jetsnack/android/build.gradle.kts b/examples/jetsnack/android/build.gradle.kts index 7bb2524512f..b8904fd7ece 100644 --- a/examples/jetsnack/android/build.gradle.kts +++ b/examples/jetsnack/android/build.gradle.kts @@ -18,12 +18,12 @@ dependencies { } android { - compileSdk = 34 - namespace = "com.example.android" + compileSdk = 35 + namespace = "example.jetsnack" defaultConfig { - applicationId = "com.example.android" + applicationId = "org.jetbrains.Jetsnack" minSdk = 24 - targetSdk = 33 + targetSdk = 35 versionCode = 1 versionName = "1.0-SNAPSHOT" } diff --git a/examples/jetsnack/android/src/main/AndroidManifest.xml b/examples/jetsnack/android/src/main/AndroidManifest.xml index d456c02f9d8..bc60a6ee288 100644 --- a/examples/jetsnack/android/src/main/AndroidManifest.xml +++ b/examples/jetsnack/android/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ android:allowBackup="false" android:supportsRtl="true" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> - + diff --git a/examples/jetsnack/common/build.gradle.kts b/examples/jetsnack/common/build.gradle.kts index 53e38380ee9..717db5b3130 100644 --- a/examples/jetsnack/common/build.gradle.kts +++ b/examples/jetsnack/common/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.compose.compose +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { kotlin("multiplatform") @@ -12,11 +13,16 @@ version = "1.0-SNAPSHOT" kotlin { androidTarget() + @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() } jvm("desktop") { compilations.all { - kotlinOptions.jvmTarget = "17" + compileTaskProvider.configure { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + } + } } } @@ -39,6 +45,8 @@ kotlin { api(compose.runtime) api(compose.foundation) api(compose.material) + implementation("org.jetbrains.compose.material:material-icons-core:1.6.11") + implementation(compose.components.resources) implementation(libs.kotlinx.coroutines) } } @@ -94,12 +102,12 @@ kotlin { android { - compileSdk = 34 + compileSdk = 35 namespace = "com.example.jetsnack" sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { minSdk = 24 - targetSdk = 33 + targetSdk = 35 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 diff --git a/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt b/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt index fe715cb6527..bfd48c50787 100644 --- a/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt +++ b/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt @@ -1,25 +1,69 @@ package com.example.jetsnack.ui.components -import androidx.compose.foundation.layout.fillMaxSize +import android.annotation.SuppressLint +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.TweenSpec +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.with +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource -import coil.compose.AsyncImage -import coil.request.ImageRequest -import com.example.jetsnack.R +import com.example.common.generated.resources.Res +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import org.jetbrains.compose.resources.ExperimentalResourceApi +private val imagesCache = mutableMapOf() + +@SuppressLint("UnusedContentLambdaTargetStateParameter") +@OptIn(ExperimentalAnimationApi::class, ExperimentalResourceApi::class) @Composable actual fun SnackAsyncImage(imageUrl: String, contentDescription: String?, modifier: Modifier) { - AsyncImage( - model = ImageRequest.Builder(LocalContext.current) - .data(imageUrl) - .crossfade(true) - .build(), - contentDescription = contentDescription, - placeholder = painterResource(R.drawable.placeholder), - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop, - ) + var img: ImageBitmap? by remember(imageUrl) { mutableStateOf(null) } + + + AnimatedContent(img, transitionSpec = { + fadeIn(TweenSpec()) with fadeOut(TweenSpec()) + }) { + if (img != null) { + Image(img!!, contentDescription = contentDescription, modifier = modifier, contentScale = ContentScale.Crop) + } else { + Box(modifier = modifier) + } + } + + LaunchedEffect(imageUrl) { + if (imagesCache.contains(imageUrl)) { + img = imagesCache[imageUrl] + } else { + withContext(Dispatchers.IO) { + img = try { + Res.readBytes(imageUrl).toAndroidBitmap().asImageBitmap().also { + imagesCache[imageUrl] = it + img = it + } + } catch (e: Throwable) { + e.printStackTrace() + null + } + } + } + } +} + +fun ByteArray.toAndroidBitmap(): Bitmap { + return BitmapFactory.decodeByteArray(this, 0, size) } \ No newline at end of file diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/almonds.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/almonds.jpg new file mode 100644 index 00000000000..0f1eef57e38 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/almonds.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/apple_chips.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_chips.jpg new file mode 100644 index 00000000000..37c805d169d Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_chips.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/apple_juice.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_juice.jpg new file mode 100644 index 00000000000..d519dbcd460 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_juice.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/apple_pie.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_pie.jpg new file mode 100644 index 00000000000..41096b22161 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_pie.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/apple_sauce.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_sauce.jpg new file mode 100644 index 00000000000..7f5331ee245 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/apple_sauce.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/apples.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/apples.jpg new file mode 100644 index 00000000000..cc729f1646f Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/apples.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/cheese.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/cheese.jpg new file mode 100644 index 00000000000..c5c6dce61ce Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/cheese.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/chips.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/chips.jpg new file mode 100644 index 00000000000..04d5fe2cd39 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/chips.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/cupcake.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/cupcake.jpg new file mode 100644 index 00000000000..42e766d8439 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/cupcake.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/desserts.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/desserts.jpg new file mode 100644 index 00000000000..6d449907656 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/desserts.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/donut.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/donut.jpg new file mode 100644 index 00000000000..076896a812c Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/donut.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/eclair.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/eclair.jpg new file mode 100644 index 00000000000..56017803457 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/eclair.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/froyo.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/froyo.jpg new file mode 100644 index 00000000000..e1bb068cc99 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/froyo.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/fruit.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/fruit.jpg new file mode 100644 index 00000000000..41224731846 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/fruit.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/gingerbread.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/gingerbread.jpg new file mode 100644 index 00000000000..ac069de1037 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/gingerbread.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/gluten_free.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/gluten_free.jpg new file mode 100644 index 00000000000..0745457a36b Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/gluten_free.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/grapes.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/grapes.jpg new file mode 100644 index 00000000000..3b573787cf0 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/grapes.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/honeycomb.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/honeycomb.jpg new file mode 100644 index 00000000000..ea632bd25d9 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/honeycomb.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/ice_cream_sandwich.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/ice_cream_sandwich.jpg new file mode 100644 index 00000000000..fd77631e9aa Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/ice_cream_sandwich.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/jelly_bean.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/jelly_bean.jpg new file mode 100644 index 00000000000..84a10208c9b Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/jelly_bean.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/kitkat.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/kitkat.jpg new file mode 100644 index 00000000000..75b2e44abb9 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/kitkat.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/kiwi.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/kiwi.jpg new file mode 100644 index 00000000000..2197fbd48f7 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/kiwi.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/lollipop.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/lollipop.jpg new file mode 100644 index 00000000000..98d1db7d2fd Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/lollipop.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/mango.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/mango.jpg new file mode 100644 index 00000000000..717773d7b5c Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/mango.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/marshmallow.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/marshmallow.jpg new file mode 100644 index 00000000000..cdc11592262 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/marshmallow.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/nougat.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/nougat.jpg new file mode 100644 index 00000000000..1a844d9b9f1 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/nougat.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/nuts.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/nuts.jpg new file mode 100644 index 00000000000..03556767ec0 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/nuts.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/oreo.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/oreo.jpg new file mode 100644 index 00000000000..cf2c3e534c9 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/oreo.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/organic.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/organic.jpg new file mode 100644 index 00000000000..2847abf4f07 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/organic.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/paleo.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/paleo.jpg new file mode 100644 index 00000000000..750fcd58e74 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/paleo.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/pie.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/pie.jpg new file mode 100644 index 00000000000..439c18cfbbd Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/pie.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/placeholder.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/placeholder.jpg new file mode 100644 index 00000000000..31e05faacbe Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/placeholder.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/popcorn.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/popcorn.jpg new file mode 100644 index 00000000000..02713ffdbfe Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/popcorn.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/pretzels.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/pretzels.jpg new file mode 100644 index 00000000000..d31d4aa4eba Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/pretzels.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/smoothies.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/smoothies.jpg new file mode 100644 index 00000000000..f2eaa31bf1d Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/smoothies.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/composeResources/files/vegan.jpg b/examples/jetsnack/common/src/commonMain/composeResources/files/vegan.jpg new file mode 100644 index 00000000000..29276a68b70 Binary files /dev/null and b/examples/jetsnack/common/src/commonMain/composeResources/files/vegan.jpg differ diff --git a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Search.kt b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Search.kt index d22a41edb47..cc949b01502 100644 --- a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Search.kt +++ b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Search.kt @@ -65,19 +65,19 @@ private val searchCategoryCollections = listOf( categories = listOf( SearchCategory( name = "Chips & crackers", - imageUrl = "https://source.unsplash.com/UsSdMZ78Q3E" + imageUrl = "files/chips.jpg" ), SearchCategory( name = "Fruit snacks", - imageUrl = "https://source.unsplash.com/SfP1PtM9Qa8" + imageUrl = "files/fruit.jpg" ), SearchCategory( name = "Desserts", - imageUrl = "https://source.unsplash.com/_jk8KIyN_uA" + imageUrl = "files/desserts.jpg" ), SearchCategory( name = "Nuts ", - imageUrl = "https://source.unsplash.com/UsSdMZ78Q3E" + imageUrl = "files/nuts.jpg" ) ) ), @@ -87,27 +87,27 @@ private val searchCategoryCollections = listOf( categories = listOf( SearchCategory( name = "Organic", - imageUrl = "https://source.unsplash.com/7meCnGCJ5Ms" + imageUrl = "files/organic.jpg" ), SearchCategory( name = "Gluten Free", - imageUrl = "https://source.unsplash.com/m741tj4Cz7M" + imageUrl = "files/gluten_free.jpg" ), SearchCategory( name = "Paleo", - imageUrl = "https://source.unsplash.com/dt5-8tThZKg" + imageUrl = "files/paleo.jpg" ), SearchCategory( name = "Vegan", - imageUrl = "https://source.unsplash.com/ReXxkS1m1H0" + imageUrl = "files/vegan.jpg" ), SearchCategory( name = "Vegitarian", - imageUrl = "https://source.unsplash.com/IGfIGP5ONV0" + imageUrl = "files/grapes.jpg" ), SearchCategory( name = "Whole30", - imageUrl = "https://source.unsplash.com/9MzCd76xLGk" + imageUrl = "files/popcorn.jpg" ) ) ) diff --git a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Snack.kt b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Snack.kt index ae2ddb00cc8..a01ced20837 100644 --- a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Snack.kt +++ b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/model/Snack.kt @@ -17,6 +17,7 @@ package com.example.jetsnack.model import androidx.compose.runtime.Immutable +import com.example.common.generated.resources.Res @Immutable data class Snack( @@ -37,190 +38,190 @@ val snacks = listOf( id = 1L, name = "Cupcake", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/pGM4sjt_BdQ", + imageUrl = "files/cupcake.jpg", price = 299 ), Snack( id = 2L, name = "Donut", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/Yc5sL-ejk6U", + imageUrl = "files/donut.jpg", price = 290 ), Snack( id = 3L, name = "Eclair", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/-LojFX9NfPY", + imageUrl = "files/eclair.jpg", price = 289 ), Snack( id = 4L, name = "Froyo", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/3U2V5WqK1PQ", + imageUrl = "files/froyo.jpg", price = 288 ), Snack( id = 5L, name = "Gingerbread", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/Y4YR9OjdIMk", + imageUrl = "files/gingerbread.jpg", price = 499 ), Snack( id = 6L, name = "Honeycomb", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/bELvIg_KZGU", + imageUrl = "files/honeycomb.jpg", price = 309 ), Snack( id = 7L, name = "Ice Cream Sandwich", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/YgYJsFDd4AU", + imageUrl = "files/ice_cream_sandwich.jpg", price = 1299 ), Snack( id = 8L, name = "Jellybean", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/0u_vbeOkMpk", + imageUrl = "files/jelly_bean.jpg", price = 109 ), Snack( id = 9L, name = "KitKat", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/yb16pT5F_jE", + imageUrl = "files/kitkat.jpg", price = 549 ), Snack( id = 10L, name = "Lollipop", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/AHF_ZktTL6Q", + imageUrl = "files/lollipop.jpg", price = 209 ), Snack( id = 11L, name = "Marshmallow", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/rqFm0IgMVYY", + imageUrl = "files/marshmallow.jpg", price = 219 ), Snack( id = 12L, name = "Nougat", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/qRE_OpbVPR8", + imageUrl = "files/nougat.jpg", price = 309 ), Snack( id = 13L, name = "Oreo", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/33fWPnyN6tU", + imageUrl = "files/oreo.jpg", price = 339 ), Snack( id = 14L, name = "Pie", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/aX_ljOOyWJY", + imageUrl = "files/pie.jpg", price = 249 ), Snack( id = 15L, name = "Chips", - imageUrl = "https://source.unsplash.com/UsSdMZ78Q3E", + imageUrl = "files/chips.jpg", price = 277 ), Snack( id = 16L, name = "Pretzels", - imageUrl = "https://source.unsplash.com/7meCnGCJ5Ms", + imageUrl = "files/pretzels.jpg", price = 154 ), Snack( id = 17L, name = "Smoothies", - imageUrl = "https://source.unsplash.com/m741tj4Cz7M", + imageUrl = "files/smoothies.jpg", price = 257 ), Snack( id = 18L, name = "Popcorn", - imageUrl = "https://source.unsplash.com/iuwMdNq0-s4", + imageUrl = "files/popcorn.jpg", price = 167 ), Snack( id = 19L, name = "Almonds", - imageUrl = "https://source.unsplash.com/qgWWQU1SzqM", + imageUrl = "files/almonds.jpg", price = 123 ), Snack( id = 20L, name = "Cheese", - imageUrl = "https://source.unsplash.com/9MzCd76xLGk", + imageUrl = "files/cheese.jpg", price = 231 ), Snack( id = 21L, name = "Apples", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/1d9xXWMtQzQ", + imageUrl = "files/apples.jpg", price = 221 ), Snack( id = 22L, name = "Apple sauce", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/wZxpOw84QTU", + imageUrl = "files/apple_sauce.jpg", price = 222 ), Snack( id = 23L, name = "Apple chips", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/okzeRxm_GPo", + imageUrl = "files/apple_chips.jpg", price = 231 ), Snack( id = 24L, name = "Apple juice", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/l7imGdupuhU", + imageUrl = "files/apple_juice.jpg", price = 241 ), Snack( id = 25L, name = "Apple pie", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/bkXzABDt08Q", + imageUrl = "files/apple_pie.jpg", price = 225 ), Snack( id = 26L, name = "Grapes", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/y2MeW00BdBo", + imageUrl = "files/grapes.jpg", price = 266 ), Snack( id = 27L, name = "Kiwi", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/1oMGgHn-M8k", + imageUrl = "files/kiwi.jpg", price = 127 ), Snack( id = 28L, name = "Mango", tagline = "A tag line", - imageUrl = "https://source.unsplash.com/TIGDsyy0TK4", + imageUrl = "files/mango.jpg", price = 128 ) ) diff --git a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/components/Button.kt b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/components/Button.kt index dd1889e39ea..73fa507eea4 100644 --- a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/components/Button.kt +++ b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/components/Button.kt @@ -86,11 +86,14 @@ fun JetsnackButton( value = MaterialTheme.typography.button ) { Row( + @Suppress("DEPRECATION_ERROR") Modifier .defaultMinSize( minWidth = ButtonDefaults.MinWidth, minHeight = ButtonDefaults.MinHeight ) + // TODO This should be replaced by non-deprecated alternative after the original example migrates to Jetpack Compose 1.7: + // https://github.com/android/compose-samples/blob/3bc6b7d7c74571ea74776ec5b15518b40de4d31b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/components/Button.kt#L95 .indication(interactionSource, rememberRipple()) .padding(contentPadding), horizontalArrangement = Arrangement.Center, diff --git a/examples/jetsnack/common/src/desktopMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt b/examples/jetsnack/common/src/desktopMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt index 2aa7db91473..cb465b829a8 100644 --- a/examples/jetsnack/common/src/desktopMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt +++ b/examples/jetsnack/common/src/desktopMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt @@ -9,15 +9,17 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.toComposeImageBitmap import androidx.compose.ui.layout.ContentScale +import com.example.common.generated.resources.Res import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import org.jetbrains.compose.resources.ExperimentalResourceApi import java.net.URL import javax.imageio.ImageIO private val imagesCache = mutableMapOf() -@OptIn(ExperimentalAnimationApi::class) +@OptIn(ExperimentalAnimationApi::class, ExperimentalResourceApi::class) @Composable actual fun SnackAsyncImage(imageUrl: String, contentDescription: String?, modifier: Modifier) { var img: ImageBitmap? by remember(imageUrl) { mutableStateOf(null) } @@ -39,7 +41,7 @@ actual fun SnackAsyncImage(imageUrl: String, contentDescription: String?, modifi } else { withContext(Dispatchers.IO) { img = try { - ImageIO.read(URL(imageUrl)).toComposeImageBitmap().also { + org.jetbrains.skia.Image.makeFromEncoded(Res.readBytes(imageUrl)).toComposeImageBitmap().also { imagesCache[imageUrl] = it img = it } diff --git a/examples/jetsnack/common/src/iosMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.ios.kt b/examples/jetsnack/common/src/iosMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.ios.kt index 1e8bdc408d6..fe33db7749d 100644 --- a/examples/jetsnack/common/src/iosMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.ios.kt +++ b/examples/jetsnack/common/src/iosMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.ios.kt @@ -9,10 +9,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.toComposeImageBitmap import androidx.compose.ui.layout.ContentScale +import com.example.common.generated.resources.Res import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.addressOf import kotlinx.cinterop.usePinned import kotlinx.coroutines.* +import org.jetbrains.compose.resources.ExperimentalResourceApi import org.jetbrains.skia.Image import platform.Foundation.* import platform.posix.memcpy @@ -21,7 +23,7 @@ import kotlin.coroutines.resumeWithException private val imagesCache = mutableMapOf() -@OptIn(ExperimentalAnimationApi::class) +@OptIn(ExperimentalAnimationApi::class, ExperimentalResourceApi::class) @Composable actual fun SnackAsyncImage(imageUrl: String, contentDescription: String?, modifier: Modifier) { var img: ImageBitmap? by remember(imageUrl) { mutableStateOf(null) } @@ -43,7 +45,7 @@ actual fun SnackAsyncImage(imageUrl: String, contentDescription: String?, modifi } else { withContext(Dispatchers.IO) { img = try { - loadImage(imageUrl).also { + Image.makeFromEncoded(Res.readBytes(imageUrl)).toComposeImageBitmap().also { imagesCache[imageUrl] = it img = it } @@ -54,33 +56,4 @@ actual fun SnackAsyncImage(imageUrl: String, contentDescription: String?, modifi } } } -} - -@OptIn(ExperimentalForeignApi::class) -suspend fun loadImage(url: String): ImageBitmap = suspendCancellableCoroutine { continuation -> - val nsUrl = NSURL(string = url) - val task = NSURLSession.sharedSession.dataTaskWithURL(nsUrl) { data, response, error -> - if (data != null) { - val byteArray = ByteArray(data.length.toInt()).apply { - usePinned { - memcpy( - it.addressOf(0), - data.bytes, - data.length - ) - } - } - - continuation.resume(Image.makeFromEncoded(byteArray).toComposeImageBitmap()) - } else { - error?.let { - continuation.resumeWithException(Exception(it.localizedDescription)) - } - } - } - - task.resume() - continuation.invokeOnCancellation { - task.cancel() - } } \ No newline at end of file diff --git a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/MppJetsnackAppState.kt b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/MppJetsnackAppState.kt index ea75f3ab793..bb14aab5952 100644 --- a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/MppJetsnackAppState.kt +++ b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/MppJetsnackAppState.kt @@ -6,11 +6,8 @@ import androidx.compose.runtime.* import com.example.jetsnack.model.SnackbarManager import com.example.jetsnack.ui.home.HomeSections import kotlinx.coroutines.CoroutineScope -import kotlin.native.HiddenFromObjC @Stable -@OptIn(kotlin.experimental.ExperimentalObjCRefinement::class) -@HiddenFromObjC // Remove after the bug is fixed: https://github.com/JetBrains/compose-multiplatform/issues/4848 actual class MppJetsnackAppState( actual val scaffoldState: ScaffoldState, actual val snackbarManager: SnackbarManager, diff --git a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/cart/CartViewModel.nonAndroid.kt b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/cart/CartViewModel.nonAndroid.kt index 8866dba8377..780471f0781 100644 --- a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/cart/CartViewModel.nonAndroid.kt +++ b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/cart/CartViewModel.nonAndroid.kt @@ -5,10 +5,7 @@ import androidx.compose.runtime.State import androidx.compose.runtime.collectAsState import com.example.jetsnack.model.OrderLine import kotlinx.coroutines.flow.StateFlow -import kotlin.native.HiddenFromObjC -@OptIn(kotlin.experimental.ExperimentalObjCRefinement::class) -@HiddenFromObjC // Remove after the bug is fixed: https://github.com/JetBrains/compose-multiplatform/issues/4848 actual abstract class JetSnackCartViewModel actual constructor() { @Composable diff --git a/examples/jetsnack/common/src/wasmJsMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt b/examples/jetsnack/common/src/wasmJsMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt index c06206cae75..4204802ced2 100644 --- a/examples/jetsnack/common/src/wasmJsMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt +++ b/examples/jetsnack/common/src/wasmJsMain/kotlin/com/example/jetsnack/ui/components/SnackAsyncImage.kt @@ -6,11 +6,14 @@ import androidx.compose.foundation.Image import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.toComposeImageBitmap import androidx.compose.ui.layout.ContentScale +import com.example.common.generated.resources.Res import kotlinx.coroutines.* import com.example.jetsnack.model.snacks +import org.jetbrains.compose.resources.ExperimentalResourceApi val imagesCache = mutableMapOf() +@OptIn(ExperimentalResourceApi::class) @Composable actual fun SnackAsyncImage( imageUrl: String, @@ -28,21 +31,22 @@ actual fun SnackAsyncImage( if (imagesCache.contains(imageUrl)) { bitmap = imagesCache[imageUrl]!! } else { - val arrayBuffer = loadImage(imageUrl) - val skiaImg = org.jetbrains.skia.Image.makeFromEncoded(arrayBuffer.toByteArray()) - imagesCache[imageUrl] = skiaImg.toComposeImageBitmap() + imagesCache[imageUrl] = org.jetbrains.skia.Image.makeFromEncoded( + Res.readBytes(imageUrl) + ).toComposeImageBitmap() bitmap = imagesCache[imageUrl] } } } +@OptIn(ExperimentalResourceApi::class) suspend fun CoroutineScope.prepareImagesCache() { val jobs = mutableListOf() // We have not many images, so we can prepare and cache them upfront snacks.forEach { val j = launch { - val arrayBuffer = loadImage(it.imageUrl) - val skiaImg = org.jetbrains.skia.Image.makeFromEncoded(arrayBuffer.toByteArray()) - imagesCache[it.imageUrl] = skiaImg.toComposeImageBitmap() + imagesCache[it.imageUrl] = org.jetbrains.skia.Image.makeFromEncoded( + Res.readBytes(it.imageUrl) + ).toComposeImageBitmap() } jobs.add(j) } diff --git a/examples/jetsnack/desktop/build.gradle.kts b/examples/jetsnack/desktop/build.gradle.kts index 4b23069ade5..b07dd4a4ee1 100644 --- a/examples/jetsnack/desktop/build.gradle.kts +++ b/examples/jetsnack/desktop/build.gradle.kts @@ -1,5 +1,6 @@ import org.jetbrains.compose.compose import org.jetbrains.compose.desktop.application.dsl.TargetFormat +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -15,9 +16,12 @@ version = "1.0-SNAPSHOT" kotlin { jvm { compilations.all { - kotlinOptions.jvmTarget = "17" + compileTaskProvider.configure { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + } + } } - withJava() } sourceSets { val jvmMain by getting { diff --git a/examples/jetsnack/gradle.properties b/examples/jetsnack/gradle.properties index 5527a505a8b..f4169fc81d4 100644 --- a/examples/jetsnack/gradle.properties +++ b/examples/jetsnack/gradle.properties @@ -1,6 +1,6 @@ org.gradle.jvmargs=-Xmx8g kotlin.code.style=official android.useAndroidX=true -agp.version=8.0.2 -kotlin.version=2.0.0 -compose.version=1.6.10 +agp.version=8.9.0 +kotlin.version=2.2.20 +compose.version=1.9.1 diff --git a/examples/jetsnack/gradle/libs.versions.toml b/examples/jetsnack/gradle/libs.versions.toml index 3cddf4b8197..074f7fed3a8 100644 --- a/examples/jetsnack/gradle/libs.versions.toml +++ b/examples/jetsnack/gradle/libs.versions.toml @@ -41,7 +41,7 @@ ksp = "1.8.0-1.0.9" maps-compose = "2.5.3" material = "1.9.0-beta01" # @keep -minSdk = "21" +minSdk = "23" okhttp = "4.10.0" robolectric = "4.9.2" rome = "1.18.0" @@ -68,7 +68,6 @@ androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" } androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" } androidx-compose-material = { module = "androidx.compose.material:material" } -androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended" } androidx-compose-material3 = { module = "androidx.compose.material3:material3" } androidx-compose-materialWindow = { module = "androidx.compose.material3:material3-window-size-class" } androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } diff --git a/examples/jetsnack/gradle/wrapper/gradle-wrapper.properties b/examples/jetsnack/gradle/wrapper/gradle-wrapper.properties index 8838ba97ba0..37f853b1c84 100644 --- a/examples/jetsnack/gradle/wrapper/gradle-wrapper.properties +++ b/examples/jetsnack/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/examples/jetsnack/ios/Configuration/Config.xcconfig b/examples/jetsnack/ios/Configuration/Config.xcconfig index 6234dc9e5bf..165347a3e3f 100644 --- a/examples/jetsnack/ios/Configuration/Config.xcconfig +++ b/examples/jetsnack/ios/Configuration/Config.xcconfig @@ -1,3 +1,3 @@ TEAM_ID= -BUNDLE_ID=org.jetbrains.Imageviewer -APP_NAME=My Memories +BUNDLE_ID=org.jetbrains.Jetsnack +APP_NAME=Jetsnack diff --git a/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/Artem.Kobzar.xcuserdatad/UserInterfaceState.xcuserstate b/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/Artem.Kobzar.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 3a2cd48ad99..00000000000 Binary files a/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/Artem.Kobzar.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/xcschememanagement.plist b/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index ee3458dd767..00000000000 --- a/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/jetsnack/ios/iosApp.xcodeproj/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/iosApp.xcscheme b/examples/jetsnack/ios/iosApp.xcodeproj/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/iosApp.xcscheme deleted file mode 100644 index 8734c1fb9df..00000000000 --- a/examples/jetsnack/ios/iosApp.xcodeproj/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/iosApp.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/jetsnack/ios/iosApp.xcodeproj/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/xcschememanagement.plist b/examples/jetsnack/ios/iosApp.xcodeproj/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index fa59f97d5ef..00000000000 --- a/examples/jetsnack/ios/iosApp.xcodeproj/xcuserdata/Artem.Kobzar.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - iosApp.xcscheme - - orderHint - 0 - - - - diff --git a/examples/jetsnack/ios/iosApp/Info.plist b/examples/jetsnack/ios/iosApp/Info.plist index 5b28bf52196..85401501204 100644 --- a/examples/jetsnack/ios/iosApp/Info.plist +++ b/examples/jetsnack/ios/iosApp/Info.plist @@ -22,6 +22,8 @@ 1 LSRequiresIPhoneOS + CADisableMinimumFrameDurationOnPhone + NSCameraUsageDescription This app uses camera for capturing photos UIApplicationSceneManifest diff --git a/examples/jetsnack/kotlin-js-store/yarn.lock b/examples/jetsnack/kotlin-js-store/yarn.lock index e962c64c5ed..48e9ded634b 100644 --- a/examples/jetsnack/kotlin-js-store/yarn.lock +++ b/examples/jetsnack/kotlin-js-store/yarn.lock @@ -12,18 +12,6 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - "@jridgewell/gen-mapping@^0.3.0": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -82,36 +70,11 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@jsonjoy.com/base64@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" - integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== - -"@jsonjoy.com/json-pack@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.0.4.tgz#ab59c642a2e5368e8bcfd815d817143d4f3035d0" - integrity sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg== - dependencies: - "@jsonjoy.com/base64" "^1.1.1" - "@jsonjoy.com/util" "^1.1.2" - hyperdyperid "^1.2.0" - thingies "^1.20.0" - -"@jsonjoy.com/util@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.1.3.tgz#75b1c3cf21b70e665789d1ad3eabeff8b7fd1429" - integrity sha512-g//kkF4kOwUjemValCtOc/xiYzmwMRmWq3Bn+YnzOzuZLHq2PpMOxxIayN3cKbo7Ko2Np65t6D9H81IvXbXhqg== - "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -125,14 +88,14 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.13": +"@types/bonjour@^3.5.9": version "3.5.13" resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" -"@types/connect-history-api-fallback@^1.5.4": +"@types/connect-history-api-fallback@^1.3.5": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== @@ -159,27 +122,6 @@ dependencies: "@types/node" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" - integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" @@ -195,7 +137,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@^4.17.21": +"@types/express@*", "@types/express@^4.17.13": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -217,7 +159,7 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.8": +"@types/json-schema@^7.0.8": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -259,10 +201,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/send@*": version "0.17.4" @@ -272,7 +214,7 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.4": +"@types/serve-index@^1.9.1": version "1.9.4" resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== @@ -288,7 +230,7 @@ "@types/mime" "*" "@types/node" "*" -"@types/serve-static@^1.15.5": +"@types/serve-static@^1.13.10": version "1.15.7" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== @@ -297,17 +239,17 @@ "@types/node" "*" "@types/send" "*" -"@types/sockjs@^0.3.36": +"@types/sockjs@^0.3.33": version "0.3.36" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" -"@types/ws@^8.5.10": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== +"@types/ws@^8.5.5": + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== dependencies: "@types/node" "*" @@ -465,10 +407,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn@^8.7.1: version "8.8.2" @@ -519,10 +461,10 @@ ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-html-community@^0.0.8: version "0.0.8" @@ -534,11 +476,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -546,11 +483,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -607,10 +539,10 @@ body-parser@1.20.2, body-parser@^1.19.0: type-is "~1.6.18" unpipe "1.0.0" -bonjour-service@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" - integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== +bonjour-service@^1.0.11: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== dependencies: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -637,7 +569,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== @@ -657,13 +589,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -700,7 +625,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3, chokidar@^3.5.1: +chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -715,7 +640,7 @@ chokidar@3.5.3, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" -chokidar@^3.6.0: +chokidar@^3.5.3: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -860,7 +785,7 @@ cors@~2.8.5: object-assign "^4" vary "^1" -cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -886,31 +811,25 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - -default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" @@ -918,10 +837,10 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== depd@2.0.0: version "2.0.0" @@ -948,10 +867,10 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== dns-packet@^5.2.2: version "5.6.1" @@ -970,11 +889,6 @@ dom-serialize@^2.2.1: extend "^3.0.0" void-elements "^2.0.0" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -990,11 +904,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -1021,10 +930,10 @@ engine.io@~6.5.2: engine.io-parser "~5.2.1" ws "~8.11.0" -enhanced-resolve@^5.16.0: - version "5.16.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" - integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== +enhanced-resolve@^5.17.1: + version "5.18.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" + integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -1059,7 +968,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -1216,14 +1125,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1232,6 +1133,14 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -1247,14 +1156,6 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - format-util@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" @@ -1279,6 +1180,11 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1325,28 +1231,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@^10.3.7: - version "10.3.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.15.tgz#e72bc61bc3038c90605f5dd48543dc67aaf3b50d" - integrity sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.6" - minimatch "^9.0.1" - minipass "^7.0.4" - path-scurry "^1.11.0" - glob@^7.1.3, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -1359,6 +1243,17 @@ glob@^7.1.3, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" @@ -1386,7 +1281,7 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -he@1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -1401,7 +1296,7 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.4.0: +html-entities@^2.3.2: version "2.5.2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== @@ -1462,11 +1357,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1517,7 +1407,7 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.1.0: +ipaddr.js@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== @@ -1536,10 +1426,10 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" @@ -1558,18 +1448,6 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-network-error@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" - integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -1602,12 +1480,12 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - is-inside-container "^1.0.0" + is-docker "^2.0.0" isarray@~1.0.0: version "1.0.0" @@ -1629,15 +1507,6 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -jackspeak@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -1647,7 +1516,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -1706,10 +1575,10 @@ karma-webpack@5.0.1: minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.3.tgz#763e500f99597218bbb536de1a14acc4ceea7ce8" - integrity sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q== +karma@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1741,10 +1610,17 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -launch-editor@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" - integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== +kotlin-web-helpers@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" + integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== + dependencies: + format-util "^1.0.5" + +launch-editor@^2.6.0: + version "2.9.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" + integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== dependencies: picocolors "^1.0.0" shell-quote "^1.8.1" @@ -1773,7 +1649,7 @@ lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -1792,25 +1668,17 @@ log4js@^6.4.1: rfdc "^1.3.0" streamroller "^3.1.5" -lru-cache@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" - integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^4.6.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.9.2.tgz#42e7b48207268dad8c9c48ea5d4952c5d3840433" - integrity sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ== +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - "@jsonjoy.com/json-pack" "^1.0.3" - "@jsonjoy.com/util" "^1.1.2" - sonic-forest "^1.0.0" - tslib "^2.0.0" + fs-monkey "^1.0.4" merge-descriptors@1.0.1: version "1.0.1" @@ -1867,13 +1735,6 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1881,14 +1742,14 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: +minimatch@^5.0.1, minimatch@^5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1, minimatch@^9.0.3: +minimatch@^9.0.3: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -1900,11 +1761,6 @@ minimist@^1.2.3, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: - version "7.1.1" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.1.tgz#f7f85aff59aa22f110b20e27692465cf3bf89481" - integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA== - mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -1912,31 +1768,31 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "8.1.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" +mocha@10.7.3: + version "10.7.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" ms@2.0.0: version "2.0.0" @@ -1948,7 +1804,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -2008,7 +1864,7 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1, on-finished@^2.4.1: +on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -2041,15 +1897,14 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^10.0.3: - version "10.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" - integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== +open@^8.0.9: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^3.1.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" p-limit@^2.2.0: version "2.3.0" @@ -2079,13 +1934,12 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-retry@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.0.tgz#8d6df01af298750009691ce2f9b3ad2d5968f3bd" - integrity sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" + "@types/retry" "0.12.0" retry "^0.13.1" p-try@^2.0.0: @@ -2118,14 +1972,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.11.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -2294,18 +2140,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.5: - version "5.0.7" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.7.tgz#27bddf202e7d89cb2e0381656380d1734a854a74" - integrity sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg== - dependencies: - glob "^10.3.7" - -run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2339,7 +2173,7 @@ schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.2.0: +schema-utils@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== @@ -2354,7 +2188,7 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.4.1: +selfsigned@^2.1.1: version "2.4.1" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== @@ -2381,13 +2215,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" @@ -2395,6 +2222,13 @@ serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -2466,11 +2300,6 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - socket.io-adapter@~2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12" @@ -2508,13 +2337,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -sonic-forest@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sonic-forest/-/sonic-forest-1.0.3.tgz#81363af60017daba39b794fce24627dc412563cb" - integrity sha512-dtwajos6IWMEWXdEbW1IkEkyL2gztCAgDplRIX+OT5aRKnEd5e7r7YCxRgXZdhRP1FBdOBf8axeTPhzDv8T4wQ== - dependencies: - tree-dump "^1.0.0" - source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -2583,7 +2405,7 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2592,15 +2414,6 @@ streamroller@^3.1.5: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -2615,37 +2428,23 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -2653,6 +2452,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -2684,11 +2490,6 @@ terser@^5.26.0: commander "^2.20.0" source-map-support "~0.5.20" -thingies@^1.20.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" - integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== - thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -2713,16 +2514,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tree-dump@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.1.tgz#b448758da7495580e6b7830d6b7834fca4c45b96" - integrity sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA== - -tslib@^2.0.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -2731,10 +2522,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" - integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== +typescript@5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== ua-parser-js@^0.7.30: version "0.7.35" @@ -2825,53 +2616,52 @@ webpack-cli@5.1.4: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^7.1.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz#2af00538b6e4eda05f5afdd5d711dbebc05958f7" - integrity sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" - memfs "^4.6.0" + memfs "^3.4.3" mime-types "^2.1.31" - on-finished "^2.4.1" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz#cb6ea47ff796b9251ec49a94f24a425e12e3c9b8" - integrity sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA== - dependencies: - "@types/bonjour" "^3.5.13" - "@types/connect-history-api-fallback" "^1.5.4" - "@types/express" "^4.17.21" - "@types/serve-index" "^1.9.4" - "@types/serve-static" "^1.15.5" - "@types/sockjs" "^0.3.36" - "@types/ws" "^8.5.10" +webpack-dev-server@4.15.2: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" - bonjour-service "^1.2.1" - chokidar "^3.6.0" + bonjour-service "^1.0.11" + chokidar "^3.5.3" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^2.0.0" default-gateway "^6.0.3" express "^4.17.3" graceful-fs "^4.2.6" - html-entities "^2.4.0" + html-entities "^2.3.2" http-proxy-middleware "^2.0.3" - ipaddr.js "^2.1.0" - launch-editor "^2.6.1" - open "^10.0.3" - p-retry "^6.2.0" - rimraf "^5.0.5" - schema-utils "^4.2.0" - selfsigned "^2.4.1" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^7.1.0" - ws "^8.16.0" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" webpack-merge@^4.1.5: version "4.2.2" @@ -2893,21 +2683,20 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.91.0: - version "5.91.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" - integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== +webpack@5.94.0: + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-assertions "^1.9.0" + acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.16.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -2956,12 +2745,12 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -2970,24 +2759,15 @@ workerpool@6.2.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.16.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" - integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== +ws@^8.13.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== ws@~8.11.0: version "8.11.0" @@ -2999,17 +2779,12 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -3019,7 +2794,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.1.1: +yargs@^16.1.1, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/examples/jetsnack/web/build.gradle.kts b/examples/jetsnack/web/build.gradle.kts index 2df0021978a..ad59863271f 100644 --- a/examples/jetsnack/web/build.gradle.kts +++ b/examples/jetsnack/web/build.gradle.kts @@ -1,3 +1,4 @@ +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { @@ -10,9 +11,9 @@ group = "com.example" version = "1.0-SNAPSHOT" kotlin { - @OptIn(org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl::class) + @OptIn(ExperimentalWasmDsl::class) wasmJs { - moduleName = "jetsnackwasmapp" + outputModuleName = "jetsnackwasmapp" browser { commonWebpackConfig { outputFileName = "jetsnackwasmapp.js" diff --git a/examples/jetsnack/web/src/wasmJsMain/kotlin/Main.kt b/examples/jetsnack/web/src/wasmJsMain/kotlin/Main.kt index 38faff4ffdf..78ea0b7e492 100644 --- a/examples/jetsnack/web/src/wasmJsMain/kotlin/Main.kt +++ b/examples/jetsnack/web/src/wasmJsMain/kotlin/Main.kt @@ -7,12 +7,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.platform.Font -import androidx.compose.ui.window.CanvasBasedWindow +import androidx.compose.ui.window.ComposeViewport import com.example.jetsnack.JetSnackAppEntryPoint import com.example.jetsnack.ui.components.loadImage import com.example.jetsnack.ui.components.toByteArray import com.example.jetsnack.ui.theme.Karla import com.example.jetsnack.ui.theme.Montserrat +import kotlinx.coroutines.joinAll +import kotlinx.coroutines.launch import org.jetbrains.compose.resources.* @OptIn(ExperimentalComposeUiApi::class, ExperimentalResourceApi::class) @@ -21,7 +23,7 @@ fun main() { // same as default - this is not necessary to add here. It's here to show this feature resourcePathMapping { path -> "./$path" } } - CanvasBasedWindow("JetSnack", canvasElementId = "jetsnackCanvas") { + ComposeViewport("jetsnackApp") { var loading: Boolean by remember { mutableStateOf(true) } if (loading) { @@ -31,9 +33,16 @@ fun main() { } LaunchedEffect(Unit) { - loadMontserratFont() - loadKarlaFont() - prepareImagesCache() + val j1 = launch { + loadMontserratFont() + } + val j2 = launch { + loadKarlaFont() + } + val j3 = launch { + prepareImagesCache() + } + joinAll(j1, j2, j3) loading = false } } diff --git a/examples/jetsnack/web/src/wasmJsMain/resources/index.html b/examples/jetsnack/web/src/wasmJsMain/resources/index.html index bf652abbd69..08be283393d 100644 --- a/examples/jetsnack/web/src/wasmJsMain/resources/index.html +++ b/examples/jetsnack/web/src/wasmJsMain/resources/index.html @@ -56,7 +56,10 @@ - + +
+ +
⚠️ Please make sure that your runtime environment supports the latest version of Wasm GC and Exception-Handling proposals. diff --git a/examples/nav_cupcake/composeApp/build.gradle.kts b/examples/nav_cupcake/composeApp/build.gradle.kts index 66022174d4e..41dc4081218 100644 --- a/examples/nav_cupcake/composeApp/build.gradle.kts +++ b/examples/nav_cupcake/composeApp/build.gradle.kts @@ -1,5 +1,6 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat -import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { @@ -12,7 +13,7 @@ plugins { kotlin { @OptIn(ExperimentalWasmDsl::class) wasmJs { - moduleName = "composeApp" + outputModuleName = "composeApp" browser { commonWebpackConfig { outputFileName = "composeApp.js" @@ -29,8 +30,10 @@ kotlin { androidTarget { compilations.all { - kotlinOptions { - jvmTarget = "11" + compileTaskProvider.configure { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } } } } @@ -87,6 +90,7 @@ kotlin { implementation(compose.material3) implementation(compose.components.resources) implementation(compose.components.uiToolingPreview) + implementation("org.jetbrains.compose.material:material-icons-core:1.7.3") implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.lifecycle.viewmodel.compose) @@ -141,9 +145,9 @@ compose.desktop { packageName = "org.jetbrains.nav_cupcake" packageVersion = "1.0.0" } - } -} -compose.experimental { - web.application {} + buildTypes.release.proguard { + configurationFiles.from(project.file("rules.pro")) + } + } } diff --git a/examples/nav_cupcake/composeApp/rules.pro b/examples/nav_cupcake/composeApp/rules.pro new file mode 100644 index 00000000000..c3e63c934cd --- /dev/null +++ b/examples/nav_cupcake/composeApp/rules.pro @@ -0,0 +1 @@ +-keep enum org.jetbrains.nav_cupcake.** { *; } diff --git a/examples/nav_cupcake/composeApp/src/commonMain/kotlin/org/jetbrains/nav_cupcake/ui/OrderViewModel.kt b/examples/nav_cupcake/composeApp/src/commonMain/kotlin/org/jetbrains/nav_cupcake/ui/OrderViewModel.kt index 3827c17f552..af81908ba0a 100644 --- a/examples/nav_cupcake/composeApp/src/commonMain/kotlin/org/jetbrains/nav_cupcake/ui/OrderViewModel.kt +++ b/examples/nav_cupcake/composeApp/src/commonMain/kotlin/org/jetbrains/nav_cupcake/ui/OrderViewModel.kt @@ -21,7 +21,12 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update -import kotlinx.datetime.* +import kotlinx.datetime.DateTimeUnit +import kotlinx.datetime.TimeZone +import kotlinx.datetime.plus +import kotlinx.datetime.toLocalDateTime +import kotlin.time.Clock +import kotlin.time.ExperimentalTime /** Price for a single cupcake */ private const val PRICE_PER_CUPCAKE = 2.00 @@ -100,6 +105,7 @@ class OrderViewModel : ViewModel() { /** * Returns a list of date options starting with the current date and the following 3 dates. */ + @OptIn(ExperimentalTime::class) private fun pickupOptions(): List { val dateOptions = mutableListOf() val now = Clock.System.now() diff --git a/examples/nav_cupcake/composeApp/src/wasmJsMain/kotlin/main.kt b/examples/nav_cupcake/composeApp/src/wasmJsMain/kotlin/main.kt index b9c0f643930..793d41fab44 100644 --- a/examples/nav_cupcake/composeApp/src/wasmJsMain/kotlin/main.kt +++ b/examples/nav_cupcake/composeApp/src/wasmJsMain/kotlin/main.kt @@ -1,7 +1,7 @@ import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.window.CanvasBasedWindow +import androidx.compose.ui.window.ComposeViewport @OptIn(ExperimentalComposeUiApi::class) fun main() { - CanvasBasedWindow(canvasElementId = "ComposeTarget") { App() } -} \ No newline at end of file + ComposeViewport("composeApp") { App() } +} diff --git a/examples/nav_cupcake/composeApp/src/wasmJsMain/resources/index.html b/examples/nav_cupcake/composeApp/src/wasmJsMain/resources/index.html index 9ba000fead4..2e6c331552c 100644 --- a/examples/nav_cupcake/composeApp/src/wasmJsMain/resources/index.html +++ b/examples/nav_cupcake/composeApp/src/wasmJsMain/resources/index.html @@ -5,8 +5,23 @@ Compose App + - +
- \ No newline at end of file + diff --git a/examples/nav_cupcake/gradle/libs.versions.toml b/examples/nav_cupcake/gradle/libs.versions.toml index 8da5f656173..6dd1047e46d 100644 --- a/examples/nav_cupcake/gradle/libs.versions.toml +++ b/examples/nav_cupcake/gradle/libs.versions.toml @@ -1,16 +1,16 @@ [versions] -agp = "8.2.0" +agp = "8.9.0" android-compileSdk = "34" android-minSdk = "24" android-targetSdk = "34" androidx-activity = "1.8.2" -androidx-lifecycle = "2.8.0-rc03" -androidx-navigation = "2.7.0-alpha06" -compose-android = "1.6.7" -compose-multiplatform = "1.6.10" +androidx-lifecycle = "2.9.0" +androidx-navigation = "2.9.0-rc01" +compose-android = "1.9.0" +compose-multiplatform = "1.8.2" junit = "4.13.2" -kotlin = "2.0.0" -kotlinx-datetime = "0.6.0" +kotlin = "2.2.10" +kotlinx-datetime = "0.7.1" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } diff --git a/examples/nav_cupcake/gradle/wrapper/gradle-wrapper.properties b/examples/nav_cupcake/gradle/wrapper/gradle-wrapper.properties index 3fa8f862f75..37f853b1c84 100644 --- a/examples/nav_cupcake/gradle/wrapper/gradle-wrapper.properties +++ b/examples/nav_cupcake/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/examples/nav_cupcake/kotlin-js-store/yarn.lock b/examples/nav_cupcake/kotlin-js-store/yarn.lock index 27842f01805..433d1450467 100644 --- a/examples/nav_cupcake/kotlin-js-store/yarn.lock +++ b/examples/nav_cupcake/kotlin-js-store/yarn.lock @@ -12,18 +12,6 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" @@ -69,36 +57,11 @@ resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-3.2.0.tgz#3e61e21b7b2b8a6be746df1335cf91d70db2a273" integrity sha512-PMqgJ0sw5B7FKb2d5bWYIoxjri+QlW/Pys7+Rw82jSH0QN3rB05jZ/VrrsUdh1w4+i2kw9JOejXGq/KhDOX7Kg== -"@jsonjoy.com/base64@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.1.tgz#a717fd8840f7bad49c7fe66cc65db8bcfc4c4dc5" - integrity sha512-LnFjVChaGY8cZVMwAIMjvA1XwQjZ/zIXHyh28IyJkyNkzof4Dkm1+KN9UIm3lHhREH4vs7XwZ0NpkZKnwOtEfg== - -"@jsonjoy.com/json-pack@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.0.3.tgz#a68cbe3ccfd85d26cd763e4175fe90c9ee383d33" - integrity sha512-Q0SPAdmK6s5Fe3e1kcNvwNyk6e2+CxM8XZdGbf4abZG7nUO05KSie3/iX29loTBuY+75uVP6RixDSPVpotfzmQ== - dependencies: - "@jsonjoy.com/base64" "^1.1.1" - "@jsonjoy.com/util" "^1.1.2" - hyperdyperid "^1.2.0" - thingies "^1.20.0" - -"@jsonjoy.com/util@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.1.2.tgz#5072c27ecdb16d1ed7a2d125a1d0ed8aba01d652" - integrity sha512-HOGa9wtE6LEz2I5mMQ2pMSjth85PmD71kPbsecs02nEUq3/Kw0wRK3gmZn5BCEB8mFLXByqPxjHgApoMwIPMKQ== - "@leichtgewicht/ip-codec@^2.0.1": version "2.0.5" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@socket.io/component-emitter@~3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" @@ -112,14 +75,14 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.13": +"@types/bonjour@^3.5.9": version "3.5.13" resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" -"@types/connect-history-api-fallback@^1.5.4": +"@types/connect-history-api-fallback@^1.3.5": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== @@ -146,23 +109,7 @@ dependencies: "@types/node" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.56.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" - integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.5": +"@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -177,7 +124,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@^4.17.21": +"@types/express@*", "@types/express@^4.17.13": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -199,7 +146,7 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -233,10 +180,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/send@*": version "0.17.4" @@ -246,14 +193,14 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.4": +"@types/serve-index@^1.9.1": version "1.9.4" resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" -"@types/serve-static@*", "@types/serve-static@^1.15.5": +"@types/serve-static@*", "@types/serve-static@^1.13.10": version "1.15.7" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== @@ -262,17 +209,17 @@ "@types/node" "*" "@types/send" "*" -"@types/sockjs@^0.3.36": +"@types/sockjs@^0.3.33": version "0.3.36" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" -"@types/ws@^8.5.10": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== +"@types/ws@^8.5.5": + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== dependencies: "@types/node" "*" @@ -430,10 +377,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn@^8.7.1, acorn@^8.8.2: version "8.11.3" @@ -479,10 +426,10 @@ ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.4.1" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-html-community@^0.0.8: version "0.0.8" @@ -494,11 +441,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -506,11 +448,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -567,10 +504,10 @@ body-parser@1.20.2, body-parser@^1.19.0: type-is "~1.6.18" unpipe "1.0.0" -bonjour-service@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" - integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== +bonjour-service@^1.0.11: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== dependencies: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -597,7 +534,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== @@ -617,13 +554,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -663,22 +593,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^3.5.1, chokidar@^3.6.0: +chokidar@^3.5.1, chokidar@^3.5.3: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -823,7 +738,7 @@ cors@~2.8.5: object-assign "^4" vary "^1" -cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -849,31 +764,25 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: +debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - -default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" @@ -890,10 +799,10 @@ define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== depd@2.0.0: version "2.0.0" @@ -920,10 +829,10 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== dns-packet@^5.2.2: version "5.6.1" @@ -942,11 +851,6 @@ dom-serialize@^2.2.1: extend "^3.0.0" void-elements "^2.0.0" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -962,11 +866,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -993,10 +892,10 @@ engine.io@~6.5.2: engine.io-parser "~5.2.1" ws "~8.11.0" -enhanced-resolve@^5.16.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" - integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== +enhanced-resolve@^5.17.1: + version "5.18.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" + integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -1038,7 +937,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -1195,14 +1094,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1211,6 +1102,14 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -1226,14 +1125,6 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - format-util@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" @@ -1258,6 +1149,11 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1306,28 +1202,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@^10.3.7: - version "10.3.12" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" - integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.6" - minimatch "^9.0.1" - minipass "^7.0.4" - path-scurry "^1.10.2" - glob@^7.1.3, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -1340,6 +1214,17 @@ glob@^7.1.3, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -1386,7 +1271,7 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" -he@1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -1401,7 +1286,7 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.4.0: +html-entities@^2.3.2: version "2.5.2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== @@ -1462,11 +1347,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1517,7 +1397,7 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.1.0: +ipaddr.js@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== @@ -1536,10 +1416,10 @@ is-core-module@^2.13.0: dependencies: hasown "^2.0.0" -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" @@ -1558,18 +1438,6 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-network-error@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" - integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -1602,12 +1470,12 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - is-inside-container "^1.0.0" + is-docker "^2.0.0" isarray@~1.0.0: version "1.0.0" @@ -1629,15 +1497,6 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -jackspeak@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -1647,7 +1506,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -1706,10 +1565,10 @@ karma-webpack@5.0.1: minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.3.tgz#763e500f99597218bbb536de1a14acc4ceea7ce8" - integrity sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q== +karma@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1741,10 +1600,17 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -launch-editor@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" - integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== +kotlin-web-helpers@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" + integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== + dependencies: + format-util "^1.0.5" + +launch-editor@^2.6.0: + version "2.9.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" + integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== dependencies: picocolors "^1.0.0" shell-quote "^1.8.1" @@ -1773,7 +1639,7 @@ lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -1792,25 +1658,17 @@ log4js@^6.4.1: rfdc "^1.3.0" streamroller "^3.1.5" -lru-cache@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" - integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^4.6.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.9.2.tgz#42e7b48207268dad8c9c48ea5d4952c5d3840433" - integrity sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ== +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - "@jsonjoy.com/json-pack" "^1.0.3" - "@jsonjoy.com/util" "^1.1.2" - sonic-forest "^1.0.0" - tslib "^2.0.0" + fs-monkey "^1.0.4" merge-descriptors@1.0.1: version "1.0.1" @@ -1867,13 +1725,6 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1881,14 +1732,14 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: +minimatch@^5.0.1, minimatch@^5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1, minimatch@^9.0.3: +minimatch@^9.0.3: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -1900,11 +1751,6 @@ minimist@^1.2.3, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: - version "7.1.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.0.tgz#b545f84af94e567386770159302ca113469c80b8" - integrity sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig== - mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -1912,31 +1758,31 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "8.1.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" +mocha@10.7.3: + version "10.7.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" ms@2.0.0: version "2.0.0" @@ -1948,7 +1794,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -2008,7 +1854,7 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1, on-finished@^2.4.1: +on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -2041,15 +1887,14 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^10.0.3: - version "10.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" - integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== +open@^8.0.9: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^3.1.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" p-limit@^2.2.0: version "2.3.0" @@ -2079,13 +1924,12 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-retry@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.0.tgz#8d6df01af298750009691ce2f9b3ad2d5968f3bd" - integrity sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" + "@types/retry" "0.12.0" retry "^0.13.1" p-try@^2.0.0: @@ -2118,14 +1962,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" - integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -2289,18 +2125,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== - dependencies: - glob "^10.3.7" - -run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2325,7 +2149,7 @@ schema-utils@^3.1.1, schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.2.0: +schema-utils@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== @@ -2340,7 +2164,7 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.4.1: +selfsigned@^2.1.1: version "2.4.1" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== @@ -2367,14 +2191,7 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.1: +serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== @@ -2465,11 +2282,6 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - socket.io-adapter@~2.5.2: version "2.5.4" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz#4fdb1358667f6d68f25343353bd99bd11ee41006" @@ -2508,13 +2320,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -sonic-forest@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/sonic-forest/-/sonic-forest-1.0.2.tgz#d80aa621d1cffe75a606ca44789ccff30f5b9ce6" - integrity sha512-2rICdwIJi5kVlehMUVtJeHn3ohh5YZV4pDv0P0c1M11cRz/gXNViItpM94HQwfvnXuzybpqK0LZJgTa3lEwtAw== - dependencies: - tree-dump "^1.0.0" - source-map-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" @@ -2583,7 +2388,7 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2592,15 +2397,6 @@ streamroller@^3.1.5: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -2615,37 +2411,23 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -2653,6 +2435,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -2684,11 +2473,6 @@ terser@^5.26.0: commander "^2.20.0" source-map-support "~0.5.20" -thingies@^1.20.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" - integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== - thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -2711,16 +2495,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tree-dump@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.1.tgz#b448758da7495580e6b7830d6b7834fca4c45b96" - integrity sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA== - -tslib@^2.0.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -2729,10 +2503,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" - integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== +typescript@5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== ua-parser-js@^0.7.30: version "0.7.37" @@ -2828,53 +2602,52 @@ webpack-cli@5.1.4: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^7.1.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz#2af00538b6e4eda05f5afdd5d711dbebc05958f7" - integrity sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" - memfs "^4.6.0" + memfs "^3.4.3" mime-types "^2.1.31" - on-finished "^2.4.1" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz#cb6ea47ff796b9251ec49a94f24a425e12e3c9b8" - integrity sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA== - dependencies: - "@types/bonjour" "^3.5.13" - "@types/connect-history-api-fallback" "^1.5.4" - "@types/express" "^4.17.21" - "@types/serve-index" "^1.9.4" - "@types/serve-static" "^1.15.5" - "@types/sockjs" "^0.3.36" - "@types/ws" "^8.5.10" +webpack-dev-server@4.15.2: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" - bonjour-service "^1.2.1" - chokidar "^3.6.0" + bonjour-service "^1.0.11" + chokidar "^3.5.3" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^2.0.0" default-gateway "^6.0.3" express "^4.17.3" graceful-fs "^4.2.6" - html-entities "^2.4.0" + html-entities "^2.3.2" http-proxy-middleware "^2.0.3" - ipaddr.js "^2.1.0" - launch-editor "^2.6.1" - open "^10.0.3" - p-retry "^6.2.0" - rimraf "^5.0.5" - schema-utils "^4.2.0" - selfsigned "^2.4.1" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^7.1.0" - ws "^8.16.0" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" webpack-merge@^4.1.5: version "4.2.2" @@ -2897,21 +2670,20 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.91.0: - version "5.91.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" - integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== +webpack@5.94.0: + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-assertions "^1.9.0" + acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.16.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -2960,12 +2732,12 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -2974,24 +2746,15 @@ workerpool@6.2.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.16.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" - integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== +ws@^8.13.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== ws@~8.11.0: version "8.11.0" @@ -3003,17 +2766,12 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -3023,7 +2781,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.1.1: +yargs@^16.1.1, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/examples/notepad/.gitignore b/examples/notepad/.gitignore deleted file mode 100644 index ba8435b9c5c..00000000000 --- a/examples/notepad/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx \ No newline at end of file diff --git a/examples/notepad/.run/desktop.run.xml b/examples/notepad/.run/desktop.run.xml deleted file mode 100644 index 4f432247113..00000000000 --- a/examples/notepad/.run/desktop.run.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - true - - - \ No newline at end of file diff --git a/examples/notepad/README.md b/examples/notepad/README.md deleted file mode 100644 index 15b106a9f58..00000000000 --- a/examples/notepad/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Notepad example for desktop written in Compose for Desktop library, using Composable Window API - -### Running desktop application -* To run, launch command: `./gradlew run` -* Or choose **desktop** configuration in IDE and run it. - ![desktop-run-configuration.png](screenshots/desktop-run-configuration.png) - -### Building native desktop distribution -``` -./gradlew packageDistributionForCurrentOS -# outputs are written to build/compose/binaries -``` -![Desktop](screenshots/notepad.gif) \ No newline at end of file diff --git a/examples/notepad/build.gradle.kts b/examples/notepad/build.gradle.kts deleted file mode 100644 index 258ba6c619e..00000000000 --- a/examples/notepad/build.gradle.kts +++ /dev/null @@ -1,37 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("jvm") - kotlin("plugin.compose") - id("org.jetbrains.compose") -} - -repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") -} - -dependencies { - implementation(compose.desktop.currentOs) - implementation(compose.materialIconsExtended) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.8.0") -} - -compose.desktop { - application { - mainClass = "MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "Notepad" - packageVersion = "1.0.0" - - windows { - menu = true - // see https://wixtoolset.org/documentation/manual/v3/howtos/general/generate_guids.html - upgradeUuid = "61DAB35E-17CB-43B0-81D5-B30E1C0830FA" - } - } - } -} diff --git a/examples/notepad/gradle.properties b/examples/notepad/gradle.properties deleted file mode 100644 index cb0d8e12b8a..00000000000 --- a/examples/notepad/gradle.properties +++ /dev/null @@ -1,6 +0,0 @@ -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -kotlin.code.style=official -kotlin.version=2.0.0 -compose.version=1.6.10 -org.gradle.configuration-cache=true -org.gradle.caching=true diff --git a/examples/notepad/gradle/wrapper/gradle-wrapper.jar b/examples/notepad/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/examples/notepad/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/notepad/gradle/wrapper/gradle-wrapper.properties b/examples/notepad/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 17655d0ef2b..00000000000 --- a/examples/notepad/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/notepad/gradlew b/examples/notepad/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/examples/notepad/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/examples/notepad/gradlew.bat b/examples/notepad/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/examples/notepad/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/notepad/screenshots/desktop-run-configuration.png b/examples/notepad/screenshots/desktop-run-configuration.png deleted file mode 100644 index 3688407c6f7..00000000000 Binary files a/examples/notepad/screenshots/desktop-run-configuration.png and /dev/null differ diff --git a/examples/notepad/screenshots/notepad.gif b/examples/notepad/screenshots/notepad.gif deleted file mode 100644 index f289318857a..00000000000 Binary files a/examples/notepad/screenshots/notepad.gif and /dev/null differ diff --git a/examples/notepad/settings.gradle.kts b/examples/notepad/settings.gradle.kts deleted file mode 100644 index 377c453a535..00000000000 --- a/examples/notepad/settings.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } - - plugins { - kotlin("jvm").version(extra["kotlin.version"] as String) - kotlin("plugin.compose").version(extra["kotlin.version"] as String) - id("org.jetbrains.compose").version(extra["compose.version"] as String) - } -} diff --git a/examples/notepad/src/main/kotlin/NotepadApplication.kt b/examples/notepad/src/main/kotlin/NotepadApplication.kt deleted file mode 100644 index 1d29567ff38..00000000000 --- a/examples/notepad/src/main/kotlin/NotepadApplication.kt +++ /dev/null @@ -1,42 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.key -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.window.ApplicationScope -import androidx.compose.ui.window.MenuScope -import androidx.compose.ui.window.Tray -import common.LocalAppResources -import kotlinx.coroutines.launch -import window.NotepadWindow - -@Composable -fun ApplicationScope.NotepadApplication(state: NotepadApplicationState) { - if (state.settings.isTrayEnabled && state.windows.isNotEmpty()) { - ApplicationTray(state) - } - - for (window in state.windows) { - key(window) { - NotepadWindow(window) - } - } -} - -@Composable -private fun ApplicationScope.ApplicationTray(state: NotepadApplicationState) { - Tray( - LocalAppResources.current.icon, - state = state.tray, - tooltip = "Notepad", - menu = { ApplicationMenu(state) } - ) -} - -@Composable -private fun MenuScope.ApplicationMenu(state: NotepadApplicationState) { - val scope = rememberCoroutineScope() - fun exit() = scope.launch { state.exit() } - - Item("New", onClick = state::newWindow) - Separator() - Item("Exit", onClick = { exit() }) -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/NotepadApplicationState.kt b/examples/notepad/src/main/kotlin/NotepadApplicationState.kt deleted file mode 100644 index b8a1c29d345..00000000000 --- a/examples/notepad/src/main/kotlin/NotepadApplicationState.kt +++ /dev/null @@ -1,45 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateListOf -import androidx.compose.runtime.remember -import androidx.compose.ui.window.Notification -import androidx.compose.ui.window.TrayState -import common.Settings -import window.NotepadWindowState - -@Composable -fun rememberApplicationState() = remember { - NotepadApplicationState().apply { - newWindow() - } -} - -class NotepadApplicationState { - val settings = Settings() - val tray = TrayState() - - private val _windows = mutableStateListOf() - val windows: List get() = _windows - - fun newWindow() { - _windows.add( - NotepadWindowState( - application = this, - path = null, - exit = _windows::remove - ) - ) - } - - fun sendNotification(notification: Notification) { - tray.sendNotification(notification) - } - - suspend fun exit() { - val windowsCopy = windows.reversed() - for (window in windowsCopy) { - if (!window.exit()) { - break - } - } - } -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/common/AppResources.kt b/examples/notepad/src/main/kotlin/common/AppResources.kt deleted file mode 100644 index 865e53e0403..00000000000 --- a/examples/notepad/src/main/kotlin/common/AppResources.kt +++ /dev/null @@ -1,39 +0,0 @@ -package common - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Description -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.runtime.staticCompositionLocalOf -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.graphics.vector.RenderVectorGroup -import androidx.compose.ui.graphics.vector.VectorPainter -import androidx.compose.ui.graphics.vector.rememberVectorPainter - -val LocalAppResources = staticCompositionLocalOf { - error("LocalNotepadResources isn't provided") -} - -@Composable -fun rememberAppResources(): AppResources { - val icon = rememberVectorPainter(Icons.Default.Description, tintColor = Color(0xFF2CA4E1)) - return remember { AppResources(icon) } -} - -class AppResources(val icon: VectorPainter) - -@Composable -fun rememberVectorPainter(image: ImageVector, tintColor: Color) = - rememberVectorPainter( - defaultWidth = image.defaultWidth, - defaultHeight = image.defaultHeight, - viewportWidth = image.viewportWidth, - viewportHeight = image.viewportHeight, - name = image.name, - tintColor = tintColor, - tintBlendMode = image.tintBlendMode, - autoMirror = false, - content = { _, _ -> RenderVectorGroup(group = image.root) } - ) diff --git a/examples/notepad/src/main/kotlin/common/Settings.kt b/examples/notepad/src/main/kotlin/common/Settings.kt deleted file mode 100644 index 4576f060d11..00000000000 --- a/examples/notepad/src/main/kotlin/common/Settings.kt +++ /dev/null @@ -1,14 +0,0 @@ -package common - -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue - -class Settings { - var isTrayEnabled by mutableStateOf(true) - private set - - fun toggleTray() { - isTrayEnabled = !isTrayEnabled - } -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/main.kt b/examples/notepad/src/main/kotlin/main.kt deleted file mode 100644 index c39a9258b0d..00000000000 --- a/examples/notepad/src/main/kotlin/main.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.window.application -import common.LocalAppResources -import common.rememberAppResources - -fun main() = application { - CompositionLocalProvider(LocalAppResources provides rememberAppResources()) { - NotepadApplication(rememberApplicationState()) - } -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/util/Compose.kt b/examples/notepad/src/main/kotlin/util/Compose.kt deleted file mode 100644 index 61eda384546..00000000000 --- a/examples/notepad/src/main/kotlin/util/Compose.kt +++ /dev/null @@ -1,59 +0,0 @@ -package util - -import androidx.compose.runtime.Applier -import androidx.compose.runtime.Composable -import androidx.compose.runtime.Composition -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.MonotonicFrameClock -import androidx.compose.runtime.withRunningRecomposer -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.platform.LocalLayoutDirection -import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.LayoutDirection -import kotlinx.coroutines.withContext -import kotlinx.coroutines.yield - -/** - * Helper function that allows to use Composable functions that return value in non-composable scope - */ -@Suppress("UNCHECKED_CAST") -suspend fun compose(content: @Composable () -> T): T { - var result: Any? = Unit - withContext(YieldFrameClock) { - withRunningRecomposer { recomposer -> - val composition = Composition(UnitApplier(), recomposer) - composition.setContent { - val density = Density(1f) - val layoutDirection = LayoutDirection.Ltr - CompositionLocalProvider( - LocalDensity provides density, - LocalLayoutDirection provides layoutDirection, - ) { - result = content() - } - } - } - } - return result as T -} - -private object YieldFrameClock : MonotonicFrameClock { - override suspend fun withFrameNanos( - onFrame: (frameTimeNanos: Long) -> R - ): R { - yield() - return onFrame(System.nanoTime()) - } -} - -private class UnitApplier : Applier { - override val current: Unit = Unit - override fun down(node: Unit) = Unit - override fun up() = Unit - override fun insertTopDown(index: Int, instance: Unit) = Unit - override fun insertBottomUp(index: Int, instance: Unit) = Unit - override fun remove(index: Int, count: Int) = Unit - override fun move(from: Int, to: Int, count: Int) = Unit - override fun clear() = Unit - override fun onEndChanges() = Unit -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/util/Dialogs.kt b/examples/notepad/src/main/kotlin/util/Dialogs.kt deleted file mode 100644 index 884556c54fe..00000000000 --- a/examples/notepad/src/main/kotlin/util/Dialogs.kt +++ /dev/null @@ -1,72 +0,0 @@ -package util - -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.window.AwtWindow -import androidx.compose.ui.window.FrameWindowScope -import androidx.compose.ui.window.WindowScope -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.swing.Swing -import java.awt.FileDialog -import java.io.File -import java.nio.file.Path -import javax.swing.JOptionPane - -@Composable -fun FrameWindowScope.FileDialog( - title: String, - isLoad: Boolean, - onResult: (result: Path?) -> Unit -) = AwtWindow( - create = { - object : FileDialog(window, "Choose a file", if (isLoad) LOAD else SAVE) { - override fun setVisible(value: Boolean) { - super.setVisible(value) - if (value) { - if (file != null) { - onResult(File(directory).resolve(file).toPath()) - } else { - onResult(null) - } - } - } - }.apply { - this.title = title - } - }, - dispose = FileDialog::dispose -) - -@OptIn(DelicateCoroutinesApi::class) -@Composable -fun WindowScope.YesNoCancelDialog( - title: String, - message: String, - onResult: (result: AlertDialogResult) -> Unit -) { - DisposableEffect(Unit) { - val job = GlobalScope.launch(Dispatchers.Swing) { - val resultInt = JOptionPane.showConfirmDialog( - window, message, title, JOptionPane.YES_NO_CANCEL_OPTION - ) - val result = when (resultInt) { - JOptionPane.YES_OPTION -> AlertDialogResult.Yes - JOptionPane.NO_OPTION -> AlertDialogResult.No - else -> AlertDialogResult.Cancel - } - onResult(result) - } - - onDispose { - job.cancel() - } - } -} - -enum class AlertDialogResult { - Yes, No, Cancel -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/window/NotepadWindow.kt b/examples/notepad/src/main/kotlin/window/NotepadWindow.kt deleted file mode 100644 index e600ec24b6b..00000000000 --- a/examples/notepad/src/main/kotlin/window/NotepadWindow.kt +++ /dev/null @@ -1,121 +0,0 @@ -package window - -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.text.BasicTextField -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.window.* -import common.LocalAppResources -import kotlinx.coroutines.flow.collect -import kotlinx.coroutines.launch -import util.FileDialog -import util.YesNoCancelDialog - -@Composable -fun NotepadWindow(state: NotepadWindowState) { - val scope = rememberCoroutineScope() - - fun exit() = scope.launch { state.exit() } - - Window( - state = state.window, - title = titleOf(state), - icon = LocalAppResources.current.icon, - onCloseRequest = { exit() } - ) { - LaunchedEffect(Unit) { state.run() } - - WindowNotifications(state) - WindowMenuBar(state) - - // TextField isn't efficient for big text files, we use it for simplicity - BasicTextField( - state.text, - state::text::set, - enabled = state.isInit, - modifier = Modifier.fillMaxSize() - ) - - if (state.openDialog.isAwaiting) { - FileDialog( - title = "Notepad", - isLoad = true, - onResult = { - state.openDialog.onResult(it) - } - ) - } - - if (state.saveDialog.isAwaiting) { - FileDialog( - title = "Notepad", - isLoad = false, - onResult = { state.saveDialog.onResult(it) } - ) - } - - if (state.exitDialog.isAwaiting) { - YesNoCancelDialog( - title = "Notepad", - message = "Save changes?", - onResult = { state.exitDialog.onResult(it) } - ) - } - } -} - -private fun titleOf(state: NotepadWindowState): String { - val changeMark = if (state.isChanged) "*" else "" - val filePath = state.path ?: "Untitled" - return "$changeMark$filePath - Notepad" -} - -@Composable -private fun WindowNotifications(state: NotepadWindowState) { - // Usually we take into account something like LocalLocale.current here - fun NotepadWindowNotification.format() = when (this) { - is NotepadWindowNotification.SaveSuccess -> Notification( - "File is saved", path.toString(), Notification.Type.Info - ) - is NotepadWindowNotification.SaveError -> Notification( - "File isn't saved", path.toString(), Notification.Type.Error - ) - } - - LaunchedEffect(Unit) { - state.notifications.collect { - state.sendNotification(it.format()) - } - } -} - -@Composable -private fun FrameWindowScope.WindowMenuBar(state: NotepadWindowState) = MenuBar { - val scope = rememberCoroutineScope() - - fun save() = scope.launch { state.save() } - fun open() = scope.launch { state.open() } - fun exit() = scope.launch { state.exit() } - - Menu("File") { - Item("New window", onClick = state::newWindow) - Item("Open...", onClick = { open() }) - Item("Save", onClick = { save() }, enabled = state.isChanged || state.path == null) - Separator() - Item("Exit", onClick = { exit() }) - } - - Menu("Settings") { - Item( - if (state.settings.isTrayEnabled) "Hide tray" else "Show tray", - onClick = state.settings::toggleTray - ) - Item( - if (state.window.placement == WindowPlacement.Fullscreen) "Exit fullscreen" else "Enter fullscreen", - onClick = state::toggleFullscreen - ) - } -} \ No newline at end of file diff --git a/examples/notepad/src/main/kotlin/window/NotepadWindowState.kt b/examples/notepad/src/main/kotlin/window/NotepadWindowState.kt deleted file mode 100644 index 74f7f725e81..00000000000 --- a/examples/notepad/src/main/kotlin/window/NotepadWindowState.kt +++ /dev/null @@ -1,200 +0,0 @@ -package window - -import NotepadApplicationState -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue -import androidx.compose.ui.window.Notification -import androidx.compose.ui.window.WindowPlacement -import androidx.compose.ui.window.WindowState -import common.Settings -import kotlinx.coroutines.* -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.receiveAsFlow -import util.AlertDialogResult -import java.nio.file.Path - -class NotepadWindowState( - private val application: NotepadApplicationState, - path: Path?, - private val exit: (NotepadWindowState) -> Unit -) { - val settings: Settings get() = application.settings - - val window = WindowState() - - var path by mutableStateOf(path) - private set - - var isChanged by mutableStateOf(false) - private set - - val openDialog = DialogState() - val saveDialog = DialogState() - val exitDialog = DialogState() - - private var _notifications = Channel(0) - val notifications: Flow get() = _notifications.receiveAsFlow() - - private var _text by mutableStateOf("") - - var text: String - get() = _text - set(value) { - check(isInit) - _text = value - isChanged = true - } - - var isInit by mutableStateOf(false) - private set - - fun toggleFullscreen() { - window.placement = if (window.placement == WindowPlacement.Fullscreen) { - WindowPlacement.Floating - } else { - WindowPlacement.Fullscreen - } - } - - suspend fun run() { - if (path != null) { - open(path!!) - } else { - initNew() - } - } - - private suspend fun open(path: Path) { - isInit = false - isChanged = false - this.path = path - try { - _text = path.readTextAsync() - isInit = true - } catch (e: Exception) { - e.printStackTrace() - text = "Cannot read $path" - } - } - - private fun initNew() { - _text = "" - isInit = true - isChanged = false - } - - fun newWindow() { - application.newWindow() - } - - suspend fun open() { - if (askToSave()) { - val path = openDialog.awaitResult() - if (path != null) { - open(path) - } - } - } - - suspend fun save(): Boolean { - check(isInit) - if (path == null) { - val path = saveDialog.awaitResult() - if (path != null) { - save(path) - return true - } - } else { - save(path!!) - return true - } - return false - } - - private var saveJob: Job? = null - - private suspend fun save(path: Path) { - isChanged = false - this.path = path - - saveJob?.cancel() - saveJob = path.launchSaving(text) - - try { - saveJob?.join() - _notifications.trySend(NotepadWindowNotification.SaveSuccess(path)) - } catch (e: Exception) { - isChanged = true - e.printStackTrace() - _notifications.trySend(NotepadWindowNotification.SaveError(path)) - } - } - - suspend fun exit(): Boolean { - return if (askToSave()) { - exit(this) - true - } else { - false - } - } - - private suspend fun askToSave(): Boolean { - if (isChanged) { - when (exitDialog.awaitResult()) { - AlertDialogResult.Yes -> { - if (save()) { - return true - } - } - AlertDialogResult.No -> { - return true - } - AlertDialogResult.Cancel -> return false - } - } else { - return true - } - - return false - } - - fun sendNotification(notification: Notification) { - application.sendNotification(notification) - } -} - -@OptIn(DelicateCoroutinesApi::class) -private fun Path.launchSaving(text: String) = GlobalScope.launch { - writeTextAsync(text) -} - -private suspend fun Path.writeTextAsync(text: String) = withContext(Dispatchers.IO) { - toFile().writeText(text) -} - -private suspend fun Path.readTextAsync() = withContext(Dispatchers.IO) { - toFile().readText() -} - -sealed class NotepadWindowNotification { - class SaveSuccess(val path: Path) : NotepadWindowNotification() - class SaveError(val path: Path) : NotepadWindowNotification() -} - -class DialogState { - private var onResult: CompletableDeferred? by mutableStateOf(null) - - val isAwaiting get() = onResult != null - - suspend fun awaitResult(): T { - onResult = CompletableDeferred() - val result = onResult!!.await() - onResult = null - return result - } - - fun onResult(result: T) = onResult!!.complete(result) -} \ No newline at end of file diff --git a/examples/todoapp-lite/.gitignore b/examples/todoapp-lite/.gitignore deleted file mode 100644 index e6c9b613849..00000000000 --- a/examples/todoapp-lite/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/ -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx -iosApp/Podfile.lock -iosApp/Pods/* -iosApp/iosApp.xcworkspace/* -iosApp/iosApp.xcodeproj/* -!iosApp/iosApp.xcodeproj/project.pbxproj -shared/shared.podspec \ No newline at end of file diff --git a/examples/todoapp-lite/.run/desktopApp.run.xml b/examples/todoapp-lite/.run/desktopApp.run.xml deleted file mode 100644 index 2d56d7f072a..00000000000 --- a/examples/todoapp-lite/.run/desktopApp.run.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/examples/todoapp-lite/README.md b/examples/todoapp-lite/README.md deleted file mode 100755 index 4ba856f59af..00000000000 --- a/examples/todoapp-lite/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# TodoApp (lite version) - -A simplified version of the [TodoApp example](https://github.com/JetBrains/compose-jb/tree/master/examples/todoapp), fully based on Jetpack Compose and without using any third-party libraries. - -Supported targets: Android, Desktop and iOS. - -## Setting up your development environment - -To setup the environment, please consult these [instructions](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-setup.html). - -## How to run - -Choose a run configuration for an appropriate target in Android Studio and run it. - -![run-configurations.png](run-configurations.png) - -## Run on desktop via Gradle - -`./gradlew desktopApp:run` - -## Building native desktop distribution -``` -./gradlew :desktopApp:packageDistributionForCurrentOS -# outputs are written to desktopApp/build/compose/binaries -``` -![Desktop](screenshots/todoapplite.png) diff --git a/examples/todoapp-lite/androidApp/build.gradle.kts b/examples/todoapp-lite/androidApp/build.gradle.kts deleted file mode 100755 index a132898a208..00000000000 --- a/examples/todoapp-lite/androidApp/build.gradle.kts +++ /dev/null @@ -1,37 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("plugin.compose") - id("com.android.application") - id("org.jetbrains.compose") -} - -kotlin { - androidTarget() - sourceSets { - val androidMain by getting { - dependencies { - implementation(project(":shared")) - implementation(compose.material) - } - } - } -} - -android { - compileSdk = 34 - namespace = "example.todoapp.lite" - defaultConfig { - applicationId = "org.jetbrains.TodoAppLite" - minSdk = 26 - targetSdk = 34 - versionCode = 1 - versionName = "1.0" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - kotlin { - jvmToolchain(17) - } -} diff --git a/examples/todoapp-lite/androidApp/src/androidMain/AndroidManifest.xml b/examples/todoapp-lite/androidApp/src/androidMain/AndroidManifest.xml deleted file mode 100755 index 841b439a0d2..00000000000 --- a/examples/todoapp-lite/androidApp/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - diff --git a/examples/todoapp-lite/androidApp/src/androidMain/kotlin/example/todoapp/lite/MainActivity.kt b/examples/todoapp-lite/androidApp/src/androidMain/kotlin/example/todoapp/lite/MainActivity.kt deleted file mode 100755 index 85423083912..00000000000 --- a/examples/todoapp-lite/androidApp/src/androidMain/kotlin/example/todoapp/lite/MainActivity.kt +++ /dev/null @@ -1,24 +0,0 @@ -package example.todoapp.lite - -import MainView -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface - -class MainActivity : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - setContent { - MaterialTheme { - Surface(color = MaterialTheme.colors.background) { - MainView() - } - } - } - } -} - diff --git a/examples/todoapp-lite/build.gradle.kts b/examples/todoapp-lite/build.gradle.kts deleted file mode 100755 index 07a155af144..00000000000 --- a/examples/todoapp-lite/build.gradle.kts +++ /dev/null @@ -1,19 +0,0 @@ -plugins { - // this is necessary to avoid the plugins to be loaded multiple times - // in each subproject's classloader - kotlin("jvm") apply false - kotlin("multiplatform") apply false - kotlin("plugin.compose") apply false - kotlin("android") apply false - id("com.android.application") apply false - id("com.android.library") apply false - id("org.jetbrains.compose") apply false -} - -allprojects { - repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } -} diff --git a/examples/todoapp-lite/desktopApp/build.gradle.kts b/examples/todoapp-lite/desktopApp/build.gradle.kts deleted file mode 100755 index d0348565210..00000000000 --- a/examples/todoapp-lite/desktopApp/build.gradle.kts +++ /dev/null @@ -1,38 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("multiplatform") - kotlin("plugin.compose") - id("org.jetbrains.compose") -} - -kotlin { - jvm {} - sourceSets { - val jvmMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":shared")) - } - } - } -} - -compose.desktop { - application { - mainClass = "example.todoapp.lite.MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "TodoApp Lite" - packageVersion = "1.0.0" - - windows { - menuGroup = "Compose Examples" - // see https://wixtoolset.org/documentation/manual/v3/howtos/general/generate_guids.html - upgradeUuid = "5ac63736-d8c7-4a65-a66b-6870df88ddfe" - } - } - } -} - diff --git a/examples/todoapp-lite/desktopApp/src/jvmMain/kotlin/example/todoapp/lite/Main.kt b/examples/todoapp-lite/desktopApp/src/jvmMain/kotlin/example/todoapp/lite/Main.kt deleted file mode 100644 index 56c902e7479..00000000000 --- a/examples/todoapp-lite/desktopApp/src/jvmMain/kotlin/example/todoapp/lite/Main.kt +++ /dev/null @@ -1,26 +0,0 @@ -package example.todoapp.lite - -import MainView -import androidx.compose.material.MaterialTheme -import androidx.compose.ui.Alignment -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.WindowPosition -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberWindowState - - -fun main() { - application { - Window( - onCloseRequest = ::exitApplication, - title = "TodoApp Lite", - state = rememberWindowState( - position = WindowPosition(alignment = Alignment.Center), - ), - ) { - MaterialTheme { - MainView() - } - } - } -} diff --git a/examples/todoapp-lite/gradle.properties b/examples/todoapp-lite/gradle.properties deleted file mode 100755 index e7adc121496..00000000000 --- a/examples/todoapp-lite/gradle.properties +++ /dev/null @@ -1,15 +0,0 @@ -kotlin.code.style=official -xcodeproj=./iosApp -android.useAndroidX=true -org.gradle.jvmargs=-Xmx8g -org.gradle.configuration-cache=true -org.gradle.caching=true -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.macos.enabled=true -kotlin.native.useEmbeddableCompilerJar=true -kotlin.mpp.androidSourceSetLayoutVersion=2 -# Enable kotlin/native experimental memory model -kotlin.native.binary.memoryModel=experimental -kotlin.version=2.0.0 -agp.version=8.0.2 -compose.version=1.6.10 diff --git a/examples/todoapp-lite/gradle/wrapper/gradle-wrapper.jar b/examples/todoapp-lite/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/examples/todoapp-lite/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/todoapp-lite/gradle/wrapper/gradle-wrapper.properties b/examples/todoapp-lite/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 17655d0ef2b..00000000000 --- a/examples/todoapp-lite/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/todoapp-lite/gradlew b/examples/todoapp-lite/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/examples/todoapp-lite/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/examples/todoapp-lite/gradlew.bat b/examples/todoapp-lite/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/examples/todoapp-lite/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/todoapp-lite/iosApp/Configuration/Config.xcconfig b/examples/todoapp-lite/iosApp/Configuration/Config.xcconfig deleted file mode 100644 index 169ad39e928..00000000000 --- a/examples/todoapp-lite/iosApp/Configuration/Config.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -TEAM_ID= -BUNDLE_ID=org.jetbrains.TodoAppLite -APP_NAME=TodoAppLite diff --git a/examples/todoapp-lite/iosApp/iosApp.xcodeproj/project.pbxproj b/examples/todoapp-lite/iosApp/iosApp.xcodeproj/project.pbxproj deleted file mode 100644 index 45e9cdad0c7..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,382 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 3251B1422AA8DC67001521C0 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3251B1412AA8DC67001521C0 /* ContentView.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 3251B1412AA8DC67001521C0 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 7555FF7B242A565900829871 /* TodoAppLite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TodoAppLite.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F85CB1118929364A9C6EFABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 058557D7273AAEEB004C7B11 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 7555FF72242A565900829871 = { - isa = PBXGroup; - children = ( - AB1DB47929225F7C00F7AF9C /* Configuration */, - 7555FF7D242A565900829871 /* iosApp */, - 7555FF7C242A565900829871 /* Products */, - ); - sourceTree = ""; - }; - 7555FF7C242A565900829871 /* Products */ = { - isa = PBXGroup; - children = ( - 7555FF7B242A565900829871 /* TodoAppLite.app */, - ); - name = Products; - sourceTree = ""; - }; - 7555FF7D242A565900829871 /* iosApp */ = { - isa = PBXGroup; - children = ( - 058557BA273AAA24004C7B11 /* Assets.xcassets */, - 7555FF8C242A565B00829871 /* Info.plist */, - 2152FB032600AC8F00CF470E /* iOSApp.swift */, - 058557D7273AAEEB004C7B11 /* Preview Content */, - 3251B1412AA8DC67001521C0 /* ContentView.swift */, - ); - path = iosApp; - sourceTree = ""; - }; - AB1DB47929225F7C00F7AF9C /* Configuration */ = { - isa = PBXGroup; - children = ( - AB3632DC29227652001CCB65 /* Config.xcconfig */, - ); - path = Configuration; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7555FF7A242A565900829871 /* iosApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; - buildPhases = ( - 0548D1B92A8FD622002E7F63 /* Compile Kotlin */, - 7555FF77242A565900829871 /* Sources */, - 7555FF79242A565900829871 /* Resources */, - F85CB1118929364A9C6EFABC /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iosApp; - productName = iosApp; - productReference = 7555FF7B242A565900829871 /* TodoAppLite.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7555FF73242A565900829871 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = orgName; - TargetAttributes = { - 7555FF7A242A565900829871 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7555FF72242A565900829871; - productRefGroup = 7555FF7C242A565900829871 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7555FF7A242A565900829871 /* iosApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7555FF79242A565900829871 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 0548D1B92A8FD622002E7F63 /* Compile Kotlin */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Compile Kotlin"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd \"$SRCROOT/..\"\n./gradlew :shared:embedAndSignAppleFrameworkForXcode\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7555FF77242A565900829871 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3251B1422AA8DC67001521C0 /* ContentView.swift in Sources */, - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7555FFA3242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7555FFA4242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7555FFA6242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n"; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - "shared\n", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7555FFA7242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n"; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - "shared\n", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA3242A565B00829871 /* Debug */, - 7555FFA4242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA6242A565B00829871 /* Debug */, - 7555FFA7242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7555FF73242A565900829871 /* Project object */; -} diff --git a/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index ee7e3ca03f8..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index fb88a396bf3..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/Contents.json b/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/todoapp-lite/iosApp/iosApp/ContentView.swift b/examples/todoapp-lite/iosApp/iosApp/ContentView.swift deleted file mode 100644 index 9a63fa8f246..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/ContentView.swift +++ /dev/null @@ -1,20 +0,0 @@ -import UIKit -import SwiftUI -import shared - - -struct ContentView: View { - var body: some View { - ComposeView() - .ignoresSafeArea(.keyboard) // Compose has own keyboard handler - } -} - -struct ComposeView: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UIViewController { - Main_iosKt.MainViewController() - } - - func updateUIViewController(_ uiViewController: UIViewController, context: Context) { - } -} diff --git a/examples/todoapp-lite/iosApp/iosApp/Info.plist b/examples/todoapp-lite/iosApp/iosApp/Info.plist deleted file mode 100644 index 9a269f5eaac..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/examples/todoapp-lite/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/examples/todoapp-lite/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/todoapp-lite/iosApp/iosApp/iOSApp.swift b/examples/todoapp-lite/iosApp/iosApp/iOSApp.swift deleted file mode 100644 index 927e0b97b8d..00000000000 --- a/examples/todoapp-lite/iosApp/iosApp/iOSApp.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -@main -struct iOSApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} diff --git a/examples/todoapp-lite/run-configurations.png b/examples/todoapp-lite/run-configurations.png deleted file mode 100644 index d859ff0870f..00000000000 Binary files a/examples/todoapp-lite/run-configurations.png and /dev/null differ diff --git a/examples/todoapp-lite/screenshots/todoapplite.png b/examples/todoapp-lite/screenshots/todoapplite.png deleted file mode 100644 index 39702b6b873..00000000000 Binary files a/examples/todoapp-lite/screenshots/todoapplite.png and /dev/null differ diff --git a/examples/todoapp-lite/settings.gradle.kts b/examples/todoapp-lite/settings.gradle.kts deleted file mode 100755 index 2578b7db209..00000000000 --- a/examples/todoapp-lite/settings.gradle.kts +++ /dev/null @@ -1,31 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - val agpVersion = extra["agp.version"] as String - val composeVersion = extra["compose.version"] as String - - kotlin("jvm").version(kotlinVersion) - kotlin("multiplatform").version(kotlinVersion) - kotlin("plugin.compose").version(kotlinVersion) - kotlin("android").version(kotlinVersion) - id("com.android.application").version(agpVersion) - id("com.android.library").version(agpVersion) - id("org.jetbrains.compose").version(composeVersion) - } -} - -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version("0.4.0") -} - -rootProject.name = "todoapp-lite" - -include(":androidApp") -include(":shared") -include(":desktopApp") diff --git a/examples/todoapp-lite/shared/build.gradle.kts b/examples/todoapp-lite/shared/build.gradle.kts deleted file mode 100755 index 0208a8b7229..00000000000 --- a/examples/todoapp-lite/shared/build.gradle.kts +++ /dev/null @@ -1,79 +0,0 @@ -@file:Suppress("OPT_IN_IS_NOT_ENABLED") - -plugins { - kotlin("multiplatform") - kotlin("plugin.compose") - id("com.android.library") - id("org.jetbrains.compose") -} - -version = "1.0-SNAPSHOT" - -kotlin { - androidTarget() - - jvm("desktop") - - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64() - ).forEach { iosTarget -> - iosTarget.binaries.framework { - baseName = "shared" - isStatic = true - } - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - } - } - val androidMain by getting { - dependencies { - api("androidx.activity:activity-compose:1.7.2") - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.core:core-ktx:1.10.1") - } - } - val iosMain by creating { - dependsOn(commonMain) - } - val iosX64Main by getting { - dependsOn(iosMain) - } - val iosArm64Main by getting { - dependsOn(iosMain) - } - val iosSimulatorArm64Main by getting { - dependsOn(iosMain) - } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.common) - } - } - } -} - -android { - compileSdk = 34 - namespace = "example.todoapp.lite.common" - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - sourceSets["main"].res.srcDirs("src/androidMain/res") - - defaultConfig { - minSdk = 26 - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - kotlin { - jvmToolchain(17) - } -} diff --git a/examples/todoapp-lite/shared/src/androidMain/AndroidManifest.xml b/examples/todoapp-lite/shared/src/androidMain/AndroidManifest.xml deleted file mode 100755 index 8072ee00dbf..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/examples/todoapp-lite/shared/src/androidMain/kotlin/example/todoapp/lite/common/Utils.kt b/examples/todoapp-lite/shared/src/androidMain/kotlin/example/todoapp/lite/common/Utils.kt deleted file mode 100644 index 8523977d26a..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/kotlin/example/todoapp/lite/common/Utils.kt +++ /dev/null @@ -1,26 +0,0 @@ -@file:JvmName("Utils") - -package example.todoapp.lite.common - -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp - -internal actual val MARGIN_SCROLLBAR: Dp = 0.dp - -internal actual interface ScrollbarAdapter - -@Composable -internal actual fun rememberScrollbarAdapter(scrollState: LazyListState): ScrollbarAdapter = - object : ScrollbarAdapter {} - -@Composable -internal actual fun VerticalScrollbar( - modifier: Modifier, - adapter: ScrollbarAdapter -) { - // no-op -} - diff --git a/examples/todoapp-lite/shared/src/androidMain/kotlin/main.android.kt b/examples/todoapp-lite/shared/src/androidMain/kotlin/main.android.kt deleted file mode 100644 index 59855e58166..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/kotlin/main.android.kt +++ /dev/null @@ -1,6 +0,0 @@ -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import example.todoapp.lite.common.RootContent - -@Composable fun MainView() = RootContent(Modifier.fillMaxSize()) \ No newline at end of file diff --git a/examples/todoapp-lite/shared/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/examples/todoapp-lite/shared/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 1f6bb290603..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/examples/todoapp-lite/shared/src/androidMain/res/drawable/ic_launcher_background.xml b/examples/todoapp-lite/shared/src/androidMain/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 0d025f9bf6b..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 6b78462d615..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index 6b78462d615..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 898f3ed59ac..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index dffca3601eb..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 64ba76f75e9..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index dae5e082342..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index e5ed46597ea..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 14ed0af3502..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index b0907cac3bf..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index d8ae0315497..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 2c18de9e661..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index beed3cdd2c3..00000000000 Binary files a/examples/todoapp-lite/shared/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/todoapp-lite/shared/src/androidMain/res/values/strings.xml b/examples/todoapp-lite/shared/src/androidMain/res/values/strings.xml deleted file mode 100644 index 5dee5cbdd0a..00000000000 --- a/examples/todoapp-lite/shared/src/androidMain/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - TodoApp Lite - diff --git a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/EditDialog.kt b/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/EditDialog.kt deleted file mode 100644 index c5f39e8d327..00000000000 --- a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/EditDialog.kt +++ /dev/null @@ -1,92 +0,0 @@ -package example.todoapp.lite.common - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.IntrinsicSize -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.sizeIn -import androidx.compose.material.Button -import androidx.compose.material.Card -import androidx.compose.material.Checkbox -import androidx.compose.material.MaterialTheme -import androidx.compose.material.ProvideTextStyle -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Dialog - -@Composable -internal fun EditDialog( - item: TodoItem, - onCloseClicked: () -> Unit, - onTextChanged: (String) -> Unit, - onDoneChanged: (Boolean) -> Unit, -) { - EditDialog( - onCloseRequest = onCloseClicked, - ) { - Column(horizontalAlignment = Alignment.CenterHorizontally) { - TextField( - value = item.text, - modifier = Modifier.weight(1F).fillMaxWidth().sizeIn(minHeight = 192.dp), - label = { Text("Todo text") }, - onValueChange = onTextChanged, - ) - - Spacer(modifier = Modifier.height(8.dp)) - - Row { - Text(text = "Completed", Modifier.padding(15.dp)) - - Checkbox( - checked = item.isDone, - onCheckedChange = onDoneChanged, - ) - } - } - } -} - -@Composable -private fun EditDialog( - onCloseRequest: () -> Unit, - content: @Composable () -> Unit -) { - Dialog( - onDismissRequest = onCloseRequest, - ) { - Card(elevation = 8.dp) { - Column( - modifier = Modifier - .padding(8.dp) - .height(IntrinsicSize.Min) - ) { - ProvideTextStyle(MaterialTheme.typography.subtitle1) { - Text(text = "Edit todo") - } - - Spacer(modifier = Modifier.height(8.dp)) - - Box(modifier = Modifier.weight(1F)) { - content() - } - - Spacer(modifier = Modifier.height(8.dp)) - - Button( - onClick = onCloseRequest, - modifier = Modifier.align(Alignment.End) - ) { - Text(text = "Done") - } - } - } - } -} diff --git a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/MainContent.kt b/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/MainContent.kt deleted file mode 100644 index 7d8c390bdf3..00000000000 --- a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/MainContent.kt +++ /dev/null @@ -1,158 +0,0 @@ -package example.todoapp.lite.common - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.Checkbox -import androidx.compose.material.Divider -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Add -import androidx.compose.material.icons.filled.Delete -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.key.Key -import androidx.compose.ui.text.AnnotatedString -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp - -@Composable -internal fun MainContent( - modifier: Modifier = Modifier, - items: List, - inputText: String, - onItemClicked: (id: Long) -> Unit, - onItemDoneChanged: (id: Long, isDone: Boolean) -> Unit, - onItemDeleteClicked: (id: Long) -> Unit, - onAddItemClicked: () -> Unit, - onInputTextChanged: (String) -> Unit, -) { - Column(modifier) { - TopAppBar(title = { Text(text = "Todo List") }) - - Box(Modifier.weight(1F)) { - ListContent( - items = items, - onItemClicked = onItemClicked, - onItemDoneChanged = onItemDoneChanged, - onItemDeleteClicked = onItemDeleteClicked - ) - } - - Input( - text = inputText, - onAddClicked = onAddItemClicked, - onTextChanged = onInputTextChanged - ) - } -} - -@Composable -private fun ListContent( - items: List, - onItemClicked: (id: Long) -> Unit, - onItemDoneChanged: (id: Long, isDone: Boolean) -> Unit, - onItemDeleteClicked: (id: Long) -> Unit, -) { - Box { - val listState = rememberLazyListState() - - LazyColumn(state = listState) { - items(items) { item -> - Item( - item = item, - onClicked = { onItemClicked(item.id) }, - onDoneChanged = { onItemDoneChanged(item.id, it) }, - onDeleteClicked = { onItemDeleteClicked(item.id) } - ) - - Divider() - } - } - - VerticalScrollbar( - modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(), - adapter = rememberScrollbarAdapter(scrollState = listState) - ) - } -} - -@Composable -private fun Item( - item: TodoItem, - onClicked: () -> Unit, - onDoneChanged: (Boolean) -> Unit, - onDeleteClicked: () -> Unit -) { - Row(modifier = Modifier.clickable(onClick = onClicked)) { - Spacer(modifier = Modifier.width(8.dp)) - - Checkbox( - checked = item.isDone, - modifier = Modifier.align(Alignment.CenterVertically), - onCheckedChange = onDoneChanged, - ) - - Spacer(modifier = Modifier.width(8.dp)) - - Text( - text = AnnotatedString(item.text), - modifier = Modifier.weight(1F).align(Alignment.CenterVertically), - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - - Spacer(modifier = Modifier.width(8.dp)) - - IconButton(onClick = onDeleteClicked) { - Icon( - imageVector = Icons.Default.Delete, - contentDescription = null - ) - } - - Spacer(modifier = Modifier.width(MARGIN_SCROLLBAR)) - } -} - -@OptIn(ExperimentalComposeUiApi::class) -@Composable -private fun Input( - text: String, - onTextChanged: (String) -> Unit, - onAddClicked: () -> Unit -) { - Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.padding(8.dp)) { - OutlinedTextField( - value = text, - modifier = Modifier - .weight(weight = 1F) - .onKeyUp(key = Key.Enter, action = onAddClicked), - onValueChange = onTextChanged, - label = { Text(text = "Add a todo") } - ) - - Spacer(modifier = Modifier.width(8.dp)) - - IconButton(onClick = onAddClicked) { - Icon( - imageVector = Icons.Default.Add, - contentDescription = null - ) - } - } -} diff --git a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/RootContent.kt b/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/RootContent.kt deleted file mode 100644 index ecc75e5ce9f..00000000000 --- a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/RootContent.kt +++ /dev/null @@ -1,40 +0,0 @@ -package example.todoapp.lite.common - -import androidx.compose.foundation.background -import androidx.compose.material.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import example.todoapp.lite.common.RootStore.RootState - -@Composable -fun RootContent(modifier: Modifier = Modifier) { - val model = remember { RootStore() } - val state = model.state - - MainContent( - modifier = modifier.background(MaterialTheme.colors.background), - items = state.items, - inputText = state.inputText, - onItemClicked = model::onItemClicked, - onItemDoneChanged = model::onItemDoneChanged, - onItemDeleteClicked = model::onItemDeleteClicked, - onAddItemClicked = model::onAddItemClicked, - onInputTextChanged = model::onInputTextChanged, - ) - - state.editingItem?.also { item -> - EditDialog( - item = item, - onCloseClicked = model::onEditorCloseClicked, - onTextChanged = model::onEditorTextChanged, - onDoneChanged = model::onEditorDoneChanged, - ) - } -} - -private val RootState.editingItem: TodoItem? - get() = editingItemId?.let(items::firstById) - -private fun List.firstById(id: Long): TodoItem? = - firstOrNull { it.id == id } diff --git a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/RootStore.kt b/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/RootStore.kt deleted file mode 100644 index 91dfe7df5be..00000000000 --- a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/RootStore.kt +++ /dev/null @@ -1,80 +0,0 @@ -package example.todoapp.lite.common - -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue - -internal class RootStore { - - var state: RootState by mutableStateOf(initialState()) - private set - - fun onItemClicked(id: Long) { - setState { copy(editingItemId = id) } - } - - fun onItemDoneChanged(id: Long, isDone: Boolean) { - setState { - updateItem(id = id) { it.copy(isDone = isDone) } - } - } - - fun onItemDeleteClicked(id: Long) { - setState { copy(items = items.filterNot { it.id == id }) } - } - - fun onAddItemClicked() { - setState { - val newItem = - TodoItem( - id = items.maxOfOrNull(TodoItem::id)?.plus(1L) ?: 1L, - text = inputText, - ) - - copy(items = items + newItem, inputText = "") - } - } - - fun onInputTextChanged(text: String) { - setState { copy(inputText = text) } - } - - fun onEditorCloseClicked() { - setState { copy(editingItemId = null) } - } - - fun onEditorTextChanged(text: String) { - setState { - updateItem(id = requireNotNull(editingItemId)) { it.copy(text = text) } - } - } - - fun onEditorDoneChanged(isDone: Boolean) { - setState { - updateItem(id = requireNotNull(editingItemId)) { it.copy(isDone = isDone) } - } - } - - private fun RootState.updateItem(id: Long, transformer: (TodoItem) -> TodoItem): RootState = - copy(items = items.updateItem(id = id, transformer = transformer)) - - private fun List.updateItem(id: Long, transformer: (TodoItem) -> TodoItem): List = - map { item -> if (item.id == id) transformer(item) else item } - - private fun initialState(): RootState = - RootState( - items = (1L..5L).map { id -> - TodoItem(id = id, text = "Some text $id") - } - ) - - private inline fun setState(update: RootState.() -> RootState) { - state = state.update() - } - - data class RootState( - val items: List = emptyList(), - val inputText: String = "", - val editingItemId: Long? = null, - ) -} diff --git a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/TodoItem.kt b/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/TodoItem.kt deleted file mode 100644 index 94da3f28345..00000000000 --- a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/TodoItem.kt +++ /dev/null @@ -1,7 +0,0 @@ -package example.todoapp.lite.common - -internal data class TodoItem( - val id: Long = 0L, - val text: String = "", - val isDone: Boolean = false -) diff --git a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/Utils.kt b/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/Utils.kt deleted file mode 100644 index 5f03d27870e..00000000000 --- a/examples/todoapp-lite/shared/src/commonMain/kotlin/example/todoapp/lite/common/Utils.kt +++ /dev/null @@ -1,34 +0,0 @@ -package example.todoapp.lite.common - -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.key.Key -import androidx.compose.ui.input.key.KeyEventType -import androidx.compose.ui.input.key.key -import androidx.compose.ui.input.key.onKeyEvent -import androidx.compose.ui.input.key.type -import androidx.compose.ui.unit.Dp - -internal expect val MARGIN_SCROLLBAR: Dp - -internal expect interface ScrollbarAdapter - -@Composable -internal expect fun rememberScrollbarAdapter(scrollState: LazyListState): ScrollbarAdapter - -@Composable -internal expect fun VerticalScrollbar( - modifier: Modifier, - adapter: ScrollbarAdapter -) - -internal fun Modifier.onKeyUp(key: Key, action: () -> Unit): Modifier = - onKeyEvent { event -> - if ((event.type == KeyEventType.KeyUp) && (event.key == key)) { - action() - true - } else { - false - } - } diff --git a/examples/todoapp-lite/shared/src/desktopMain/kotlin/example/todoapp/lite/common/Utils.kt b/examples/todoapp-lite/shared/src/desktopMain/kotlin/example/todoapp/lite/common/Utils.kt deleted file mode 100644 index 96ce140c31f..00000000000 --- a/examples/todoapp-lite/shared/src/desktopMain/kotlin/example/todoapp/lite/common/Utils.kt +++ /dev/null @@ -1,29 +0,0 @@ -@file:JvmName("Utils") - -package example.todoapp.lite.common - -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp - -internal actual val MARGIN_SCROLLBAR: Dp = 8.dp - -@Suppress("ACTUAL_WITHOUT_EXPECT") // Workaround https://youtrack.jetbrains.com/issue/KT-37316 -internal actual typealias ScrollbarAdapter = androidx.compose.foundation.v2.ScrollbarAdapter - -@Composable -internal actual fun rememberScrollbarAdapter(scrollState: LazyListState): ScrollbarAdapter = - androidx.compose.foundation.rememberScrollbarAdapter(scrollState) - -@Composable -internal actual fun VerticalScrollbar( - modifier: Modifier, - adapter: ScrollbarAdapter -) { - androidx.compose.foundation.VerticalScrollbar( - modifier = modifier, - adapter = adapter - ) -} diff --git a/examples/todoapp-lite/shared/src/desktopMain/kotlin/main.desktop.kt b/examples/todoapp-lite/shared/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 59855e58166..00000000000 --- a/examples/todoapp-lite/shared/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,6 +0,0 @@ -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import example.todoapp.lite.common.RootContent - -@Composable fun MainView() = RootContent(Modifier.fillMaxSize()) \ No newline at end of file diff --git a/examples/todoapp-lite/shared/src/iosMain/kotlin/example/todoapp/lite/common/Utils.kt b/examples/todoapp-lite/shared/src/iosMain/kotlin/example/todoapp/lite/common/Utils.kt deleted file mode 100644 index cf75d126e52..00000000000 --- a/examples/todoapp-lite/shared/src/iosMain/kotlin/example/todoapp/lite/common/Utils.kt +++ /dev/null @@ -1,23 +0,0 @@ -package example.todoapp.lite.common - -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp - -internal actual val MARGIN_SCROLLBAR: Dp = 0.dp - -internal actual interface ScrollbarAdapter - -@Composable -internal actual fun rememberScrollbarAdapter(scrollState: LazyListState): ScrollbarAdapter = - object : ScrollbarAdapter {} - -@Composable -internal actual fun VerticalScrollbar( - modifier: Modifier, - adapter: ScrollbarAdapter -) { - // no-op -} diff --git a/examples/todoapp-lite/shared/src/iosMain/kotlin/main.ios.kt b/examples/todoapp-lite/shared/src/iosMain/kotlin/main.ios.kt deleted file mode 100644 index 3b531342781..00000000000 --- a/examples/todoapp-lite/shared/src/iosMain/kotlin/main.ios.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.ui.Modifier -import androidx.compose.ui.window.ComposeUIViewController -import example.todoapp.lite.common.RootContent -import platform.UIKit.UIViewController - -fun MainViewController() : UIViewController = ComposeUIViewController { - RootContent(modifier = Modifier.fillMaxSize()) -} \ No newline at end of file diff --git a/examples/validateExamples.sh b/examples/validateExamples.sh index 91c1dcdfeec..451fc86f6e5 100755 --- a/examples/validateExamples.sh +++ b/examples/validateExamples.sh @@ -23,8 +23,5 @@ runGradle chat packageDistributionForCurrentOS runGradle codeviewer packageDistributionForCurrentOS runGradle imageviewer packageDistributionForCurrentOS runGradle issues packageDistributionForCurrentOS -runGradle notepad packageDistributionForCurrentOS -runGradle todoapp-lite packageDistributionForCurrentOS runGradle graphics-2d packageDistributionForCurrentOS -runGradle widgets-gallery packageDistributionForCurrentOS runGradle jetsnack packageDistributionForCurrentOS diff --git a/examples/validateExamplesAndroid.sh b/examples/validateExamplesAndroid.sh old mode 100644 new mode 100755 index e40dd3caed9..a838ac77672 --- a/examples/validateExamplesAndroid.sh +++ b/examples/validateExamplesAndroid.sh @@ -25,7 +25,4 @@ runGradle codeviewer installDebug runGradle imageviewer installDebug runGradle issues installDebug runGradle graphics-2d installDebug -runGradle todoapp-lite installDebug -runGradle widgets-gallery installDebug -runGradle todoapp installDebug runGradle jetsnack installDebug diff --git a/examples/validateExamplesIos.sh b/examples/validateExamplesIos.sh index 8853bb7f63a..e3f13eff4f8 100755 --- a/examples/validateExamplesIos.sh +++ b/examples/validateExamplesIos.sh @@ -34,7 +34,5 @@ runGradle() { runGradle chat runGradle codeviewer runGradle imageviewer -runGradle todoapp-lite -runGradle widgets-gallery runGradle graphics-2d runGradle jetsnack diff --git a/examples/widgets-gallery/.gitignore b/examples/widgets-gallery/.gitignore deleted file mode 100644 index e6c9b613849..00000000000 --- a/examples/widgets-gallery/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/ -.DS_Store -build/ -/captures -.externalNativeBuild -.cxx -iosApp/Podfile.lock -iosApp/Pods/* -iosApp/iosApp.xcworkspace/* -iosApp/iosApp.xcodeproj/* -!iosApp/iosApp.xcodeproj/project.pbxproj -shared/shared.podspec \ No newline at end of file diff --git a/examples/widgets-gallery/.run/desktopApp.run.xml b/examples/widgets-gallery/.run/desktopApp.run.xml deleted file mode 100644 index 7af7e15f4b9..00000000000 --- a/examples/widgets-gallery/.run/desktopApp.run.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/examples/widgets-gallery/README.md b/examples/widgets-gallery/README.md deleted file mode 100644 index e16fe41717c..00000000000 --- a/examples/widgets-gallery/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Widgets gallery - -This example is derived from -[ComposeCookBook](https://github.com/Gurupreet/ComposeCookBook) project -by Gurupreet Singh ([@Gurupreet](https://github.com/Gurupreet)) -published under [MIT license](third_party/ComposeCookBook_LICENSE.txt). - -An example of Compose application for Desktop, Android and iOS platforms, -demonstrating how to use various Material widgets. - -## Setting up your development environment - -To setup the environment, please consult these [instructions](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-setup.html). - -## How to run - -Choose a run configuration for an appropriate target in Android Studio and run it. - -![run-configurations.png](run-configurations.png) - -## Run on desktop via Gradle - -`./gradlew desktopApp:run` - -### Building native desktop distribution -``` -./gradlew :desktop:packageDistributionForCurrentOS -# outputs are written to desktop/build/compose/binaries -``` diff --git a/examples/widgets-gallery/androidApp/build.gradle.kts b/examples/widgets-gallery/androidApp/build.gradle.kts deleted file mode 100644 index 1b91eecaa73..00000000000 --- a/examples/widgets-gallery/androidApp/build.gradle.kts +++ /dev/null @@ -1,36 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("plugin.compose") - id("com.android.application") - id("org.jetbrains.compose") -} - -kotlin { - androidTarget() - sourceSets { - val androidMain by getting { - dependencies { - implementation(project(":shared")) - } - } - } -} - -android { - compileSdk = 34 - namespace = "org.jetbrains.compose.demo.widgets" - defaultConfig { - applicationId = "org.jetbrains.WidgetsGallery" - minSdk = 26 - targetSdk = 34 - versionCode = 1 - versionName = "1.0" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - kotlin { - jvmToolchain(17) - } -} diff --git a/examples/widgets-gallery/androidApp/src/androidMain/AndroidManifest.xml b/examples/widgets-gallery/androidApp/src/androidMain/AndroidManifest.xml deleted file mode 100644 index bfd6fc6efa3..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/MainActivity.kt b/examples/widgets-gallery/androidApp/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/MainActivity.kt deleted file mode 100644 index 38f20fde9e9..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/MainActivity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jetbrains.compose.demo.widgets - -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity -import MainView - -class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - MainView() - } - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/drawable-v24/ic_launcher_background.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/drawable-v24/ic_launcher_background.xml deleted file mode 100644 index 07d5da9cbf1..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/drawable-v24/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d11462..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index eca70cfe52e..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cfe52e..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a571e60098c..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 61da551c559..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c41dd285319..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index db5080a7527..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 6dba46dab19..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index da31a871c8d..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 15ac681720f..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index b216f2d313c..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f25a4197447..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index e96783ccce8..00000000000 Binary files a/examples/widgets-gallery/androidApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/values-night/themes.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/values-night/themes.xml deleted file mode 100644 index 710bfabb305..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/values-night/themes.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/values/colors.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/values/colors.xml deleted file mode 100644 index 6040e1f218c..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/values/colors.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - #ffa5d6a7 - #ff4caf50 - #ff388e3c - #FF03DAC5 - #ff80deea - #FF833AB4 - #FF000000 - #FFFFFFFF - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/values/strings.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/values/strings.xml deleted file mode 100644 index 49dfce059f3..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - ComposeWidgets - \ No newline at end of file diff --git a/examples/widgets-gallery/androidApp/src/androidMain/res/values/themes.xml b/examples/widgets-gallery/androidApp/src/androidMain/res/values/themes.xml deleted file mode 100644 index 50dcf6d3d95..00000000000 --- a/examples/widgets-gallery/androidApp/src/androidMain/res/values/themes.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/widgets-gallery/build.gradle.kts b/examples/widgets-gallery/build.gradle.kts deleted file mode 100644 index 1d07fe4acc6..00000000000 --- a/examples/widgets-gallery/build.gradle.kts +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - // this is necessary to avoid the plugins to be loaded multiple times - // in each subproject's classloader - kotlin("jvm") apply false - kotlin("multiplatform") apply false - kotlin("plugin.compose") apply false - kotlin("android") apply false - id("com.android.application") apply false - id("com.android.library") apply false - id("org.jetbrains.compose") apply false -} - -allprojects { - repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - mavenLocal() - } -} diff --git a/examples/widgets-gallery/desktopApp/build.gradle.kts b/examples/widgets-gallery/desktopApp/build.gradle.kts deleted file mode 100644 index 0689b90448c..00000000000 --- a/examples/widgets-gallery/desktopApp/build.gradle.kts +++ /dev/null @@ -1,41 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("multiplatform") - kotlin("plugin.compose") - id("org.jetbrains.compose") -} - -kotlin { - jvm {} - sourceSets { - val jvmMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":shared")) - } - } - } -} - -compose.desktop { - application { - mainClass = "org.jetbrains.compose.demo.widgets.MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "ComposeWidgetsGallery" - packageVersion = "1.0.0" - - windows { - menu = true - // see https://wixtoolset.org/documentation/manual/v3/howtos/general/generate_guids.html - upgradeUuid = "a61b72be-1b0c-4de5-9607-791c17687428" - } - - macOS { - bundleID = "org.jetbrains.compose.demo.widgets" - } - } - } -} diff --git a/examples/widgets-gallery/desktopApp/src/jvmMain/kotlin/org/jetbrains/compose/demo/widgets/main.kt b/examples/widgets-gallery/desktopApp/src/jvmMain/kotlin/org/jetbrains/compose/demo/widgets/main.kt deleted file mode 100644 index 7d0d6ae801d..00000000000 --- a/examples/widgets-gallery/desktopApp/src/jvmMain/kotlin/org/jetbrains/compose/demo/widgets/main.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.jetbrains.compose.demo.widgets - -import androidx.compose.ui.unit.DpSize -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.WindowState -import androidx.compose.ui.window.singleWindowApplication -import MainView - -fun main() = singleWindowApplication( - title = "Widgets Gallery", state = WindowState(size = DpSize(800.dp, 800.dp)) -) { - MainView() -} \ No newline at end of file diff --git a/examples/widgets-gallery/gradle.properties b/examples/widgets-gallery/gradle.properties deleted file mode 100644 index 1b20c5e7a7b..00000000000 --- a/examples/widgets-gallery/gradle.properties +++ /dev/null @@ -1,16 +0,0 @@ -kotlin.code.style=official -xcodeproj=./iosApp -android.useAndroidX=true -org.gradle.jvmargs=-Xmx8g -org.gradle.configuration-cache=true -org.gradle.caching=true -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.macos.enabled=true -kotlin.native.useEmbeddableCompilerJar=true -kotlin.mpp.androidSourceSetLayoutVersion=2 -# Enable kotlin/native experimental memory model -kotlin.native.binary.memoryModel=experimental -kotlin.version=2.0.0 -agp.version=8.0.2 -# Replace this with release version when it comes out -compose.version=1.6.10 diff --git a/examples/widgets-gallery/gradle/wrapper/gradle-wrapper.jar b/examples/widgets-gallery/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f09..00000000000 Binary files a/examples/widgets-gallery/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/widgets-gallery/gradle/wrapper/gradle-wrapper.properties b/examples/widgets-gallery/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 17655d0ef2b..00000000000 --- a/examples/widgets-gallery/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/widgets-gallery/gradlew b/examples/widgets-gallery/gradlew deleted file mode 100755 index a69d9cb6c20..00000000000 --- a/examples/widgets-gallery/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/examples/widgets-gallery/gradlew.bat b/examples/widgets-gallery/gradlew.bat deleted file mode 100644 index f127cfd49d4..00000000000 --- a/examples/widgets-gallery/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/widgets-gallery/iosApp/Configuration/Config.xcconfig b/examples/widgets-gallery/iosApp/Configuration/Config.xcconfig deleted file mode 100644 index 341043a1b17..00000000000 --- a/examples/widgets-gallery/iosApp/Configuration/Config.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -TEAM_ID= -BUNDLE_ID=org.jetbrains.WidgetsGallery -APP_NAME=WidgetsGallery diff --git a/examples/widgets-gallery/iosApp/iosApp.xcodeproj/project.pbxproj b/examples/widgets-gallery/iosApp/iosApp.xcodeproj/project.pbxproj deleted file mode 100644 index 1d201e9a590..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,390 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 3251B1442AA8DCBF001521C0 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3251B1432AA8DCBF001521C0 /* ContentView.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 3251B1432AA8DCBF001521C0 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 7555FF7B242A565900829871 /* WidgetsGallery.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WidgetsGallery.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F85CB1118929364A9C6EFABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 058557D7273AAEEB004C7B11 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 7555FF72242A565900829871 = { - isa = PBXGroup; - children = ( - AB1DB47929225F7C00F7AF9C /* Configuration */, - 7555FF7D242A565900829871 /* iosApp */, - 7555FF7C242A565900829871 /* Products */, - FEFF387C0A8D172AA4D59CAE /* Pods */, - ); - sourceTree = ""; - }; - 7555FF7C242A565900829871 /* Products */ = { - isa = PBXGroup; - children = ( - 7555FF7B242A565900829871 /* WidgetsGallery.app */, - ); - name = Products; - sourceTree = ""; - }; - 7555FF7D242A565900829871 /* iosApp */ = { - isa = PBXGroup; - children = ( - 058557BA273AAA24004C7B11 /* Assets.xcassets */, - 7555FF8C242A565B00829871 /* Info.plist */, - 2152FB032600AC8F00CF470E /* iOSApp.swift */, - 058557D7273AAEEB004C7B11 /* Preview Content */, - 3251B1432AA8DCBF001521C0 /* ContentView.swift */, - ); - path = iosApp; - sourceTree = ""; - }; - AB1DB47929225F7C00F7AF9C /* Configuration */ = { - isa = PBXGroup; - children = ( - AB3632DC29227652001CCB65 /* Config.xcconfig */, - ); - path = Configuration; - sourceTree = ""; - }; - FEFF387C0A8D172AA4D59CAE /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7555FF7A242A565900829871 /* iosApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; - buildPhases = ( - 0548D1BB2A8FD7E6002E7F63 /* Compile Kotlin */, - 7555FF77242A565900829871 /* Sources */, - 7555FF79242A565900829871 /* Resources */, - F85CB1118929364A9C6EFABC /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iosApp; - productName = iosApp; - productReference = 7555FF7B242A565900829871 /* WidgetsGallery.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7555FF73242A565900829871 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = orgName; - TargetAttributes = { - 7555FF7A242A565900829871 = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7555FF72242A565900829871; - productRefGroup = 7555FF7C242A565900829871 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7555FF7A242A565900829871 /* iosApp */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7555FF79242A565900829871 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, - 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 0548D1BB2A8FD7E6002E7F63 /* Compile Kotlin */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Compile Kotlin"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd \"$SRCROOT/..\"\n./gradlew :shared:embedAndSignAppleFrameworkForXcode\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7555FF77242A565900829871 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3251B1442AA8DCBF001521C0 /* ContentView.swift in Sources */, - 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7555FFA3242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7555FFA4242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7555FFA6242A565B00829871 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n"; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - "shared\n", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7555FFA7242A565B00829871 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; - ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n"; - INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - "shared\n", - ); - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; - PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA3242A565B00829871 /* Debug */, - 7555FFA4242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7555FFA6242A565B00829871 /* Debug */, - 7555FFA7242A565B00829871 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7555FF73242A565900829871 /* Project object */; -} diff --git a/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index ee7e3ca03f8..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index fb88a396bf3..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/Contents.json b/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/iosApp/iosApp/ContentView.swift b/examples/widgets-gallery/iosApp/iosApp/ContentView.swift deleted file mode 100644 index 8ccaf13b1ce..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/ContentView.swift +++ /dev/null @@ -1,19 +0,0 @@ -import UIKit -import SwiftUI -import shared - -struct ContentView: View { - var body: some View { - ComposeView() - .ignoresSafeArea(.keyboard) // Compose has own keyboard handler - } -} - -struct ComposeView: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UIViewController { - Main_iosKt.MainViewController() - } - - func updateUIViewController(_ uiViewController: UIViewController, context: Context) { - } -} diff --git a/examples/widgets-gallery/iosApp/iosApp/Info.plist b/examples/widgets-gallery/iosApp/iosApp/Info.plist deleted file mode 100644 index 9a269f5eaac..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/examples/widgets-gallery/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/examples/widgets-gallery/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json deleted file mode 100644 index 4aa7c5350bf..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/iosApp/iosApp/iOSApp.swift b/examples/widgets-gallery/iosApp/iosApp/iOSApp.swift deleted file mode 100644 index 927e0b97b8d..00000000000 --- a/examples/widgets-gallery/iosApp/iosApp/iOSApp.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -@main -struct iOSApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} diff --git a/examples/widgets-gallery/run-configurations.png b/examples/widgets-gallery/run-configurations.png deleted file mode 100644 index d859ff0870f..00000000000 Binary files a/examples/widgets-gallery/run-configurations.png and /dev/null differ diff --git a/examples/widgets-gallery/settings.gradle.kts b/examples/widgets-gallery/settings.gradle.kts deleted file mode 100644 index 7943c26e519..00000000000 --- a/examples/widgets-gallery/settings.gradle.kts +++ /dev/null @@ -1,32 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - google() - } - - plugins { - val kotlinVersion = extra["kotlin.version"] as String - val agpVersion = extra["agp.version"] as String - val composeVersion = extra["compose.version"] as String - - kotlin("jvm").version(kotlinVersion) - kotlin("multiplatform").version(kotlinVersion) - kotlin("plugin.compose").version(kotlinVersion) - kotlin("android").version(kotlinVersion) - id("com.android.base").version(agpVersion) - id("com.android.application").version(agpVersion) - id("com.android.library").version(agpVersion) - id("org.jetbrains.compose").version(composeVersion) - } -} - -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version("0.4.0") -} - -rootProject.name = "widgets-gallery" - -include(":androidApp") -include(":shared") -include(":desktopApp") diff --git a/examples/widgets-gallery/shared/build.gradle.kts b/examples/widgets-gallery/shared/build.gradle.kts deleted file mode 100644 index 00b6b2dac57..00000000000 --- a/examples/widgets-gallery/shared/build.gradle.kts +++ /dev/null @@ -1,95 +0,0 @@ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree - -plugins { - kotlin("multiplatform") - kotlin("plugin.compose") - id("com.android.library") - id("org.jetbrains.compose") -} - -version = "1.0-SNAPSHOT" - -kotlin { - androidTarget { - @OptIn(ExperimentalKotlinGradlePluginApi::class) - instrumentedTestVariant { - sourceSetTree.set(KotlinSourceSetTree.test) - - dependencies { - // Remove the dependency on ui-test-junit4-android when 1.7.0 is released, - // as the needed classes in will have moved to ui-test - implementation("androidx.compose.ui:ui-test-junit4-android:1.6.0") - debugImplementation("androidx.compose.ui:ui-test-manifest") - } - } - } - - jvm("desktop") - - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64() - ).forEach { iosTarget -> - iosTarget.binaries.framework { - baseName = "shared" - isStatic = true - } - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.materialIconsExtended) - implementation(compose.components.resources) - } - } - val androidMain by getting { - dependencies { - api("androidx.activity:activity-compose:1.8.2") - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.core:core-ktx:1.12.0") - } - } - val desktopMain by getting { - dependencies { - implementation(compose.desktop.common) - } - } - val desktopTest by getting { - dependencies { - implementation(compose.desktop.currentOs) - } - } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) - implementation(compose.uiTest) - } - } - } -} - -android { - compileSdk = 34 - namespace = "org.jetbrains.compose.demo.widgets.platform" - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - kotlin { - jvmToolchain(17) - } -} diff --git a/examples/widgets-gallery/shared/src/androidMain/AndroidManifest.xml b/examples/widgets-gallery/shared/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 568741e54f2..00000000000 --- a/examples/widgets-gallery/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/androidMain/kotlin/main.android.kt b/examples/widgets-gallery/shared/src/androidMain/kotlin/main.android.kt deleted file mode 100644 index 370156e9fa4..00000000000 --- a/examples/widgets-gallery/shared/src/androidMain/kotlin/main.android.kt +++ /dev/null @@ -1,5 +0,0 @@ -import androidx.compose.runtime.Composable -import org.jetbrains.compose.demo.widgets.ui.MainView - -@Composable -fun MainView() = MainView() \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt b/examples/widgets-gallery/shared/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt deleted file mode 100644 index a49921fe640..00000000000 --- a/examples/widgets-gallery/shared/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset - -actual fun Modifier.cursorForHorizontalResize() = this \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt b/examples/widgets-gallery/shared/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt deleted file mode 100644 index 7ec4cd59c77..00000000000 --- a/examples/widgets-gallery/shared/src/androidMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp - -@Composable -actual fun VerticalScrollbar( - modifier: Modifier, - scrollState: ScrollState -) = Unit - -@Composable -actual fun VerticalScrollbar( - modifier: Modifier, - scrollState: LazyListState, - itemCount: Int, - averageItemSize: Dp -) = Unit \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_instagram.xml b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_instagram.xml deleted file mode 100644 index abd196bb92c..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_instagram.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_send.xml b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_send.xml deleted file mode 100644 index 6ec2e846e11..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_send.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_twitter.xml b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_twitter.xml deleted file mode 100644 index ed54306c20c..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/ic_twitter.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p1.jpeg b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p1.jpeg deleted file mode 100644 index 51e7bf4c7ca..00000000000 Binary files a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p1.jpeg and /dev/null differ diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p2.jpeg b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p2.jpeg deleted file mode 100644 index 6ac860ec0ca..00000000000 Binary files a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p2.jpeg and /dev/null differ diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p3.jpeg b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p3.jpeg deleted file mode 100644 index 24e4a480892..00000000000 Binary files a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p3.jpeg and /dev/null differ diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p6.jpeg b/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p6.jpeg deleted file mode 100644 index a8d79560ffd..00000000000 Binary files a/examples/widgets-gallery/shared/src/commonMain/composeResources/drawable/p6.jpeg and /dev/null differ diff --git a/examples/widgets-gallery/shared/src/commonMain/composeResources/values/strings.xml b/examples/widgets-gallery/shared/src/commonMain/composeResources/values/strings.xml deleted file mode 100644 index d1c2bf7c2a8..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/composeResources/values/strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - Home - Search - Your Library - diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/DemoDataProvider.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/DemoDataProvider.kt deleted file mode 100644 index 2dd98177315..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/DemoDataProvider.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.jetbrains.compose.demo.widgets.data - -import org.jetbrains.compose.demo.widgets.data.model.Item - -object DemoDataProvider { - val item = Item( - 1, - "Awesome List Item", - "Very awesome list item has very awesome subtitle. This is bit long", - ) -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/model/Item.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/model/Item.kt deleted file mode 100644 index 03b8aee24be..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/model/Item.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.jetbrains.compose.demo.widgets.data.model - -data class Item( - val id: Int, - val title: String, - val subtitle: String, - val source: String = "demo source" -) \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/model/Tweet.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/model/Tweet.kt deleted file mode 100644 index dd9df153185..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/data/model/Tweet.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jetbrains.compose.demo.widgets.data.model - -data class Tweet( - val id: Int, - val text: String, - val author: String, - val handle: String, - val time: String, - val authorImageId: String, - val likesCount: Int, - val commentsCount: Int, - val retweetCount: Int, - val source: String, - val tweetImageId: String? = null -) \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt deleted file mode 100644 index c6b3b3af402..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset - -expect fun Modifier.cursorForHorizontalResize(): Modifier \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt deleted file mode 100644 index d7adfa73494..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp - -@Composable -expect fun VerticalScrollbar( - modifier: Modifier, - scrollState: ScrollState -) - -@Composable -expect fun VerticalScrollbar( - modifier: Modifier, - scrollState: LazyListState, - itemCount: Int, - averageItemSize: Dp -) \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Color.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Color.kt deleted file mode 100644 index af32b07b1d2..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Color.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.jetbrains.compose.demo.widgets.theme - -import androidx.compose.ui.graphics.Color - -val green200 = Color(0xffa5d6a7) -val green500 = Color(0xff4caf50) -val green700 = Color(0xff388e3c) - -val blue500 = Color(0xFF3F51B5) -val blue200 = Color(0xFF9FA8DA) -val blue700 = Color(0xFF303F9F) - -val purple200 = Color(0xFFB39DDB) -val purple = Color(0xFF833AB4) -val purple700 = Color(0xFF512DA8) - -val orange200 = Color(0xFFff7961) -val orange500 = Color(0xFFf44336) -val orange700 = Color(0xFFba000d) - - -val teal200 = Color(0xff80deea) -val twitterColor = Color(0xFF1DA1F2) diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Shape.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Shape.kt deleted file mode 100644 index 764221a766b..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Shape.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.jetbrains.compose.demo.widgets.theme - -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Shapes -import androidx.compose.ui.unit.dp - -val shapes = Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(4.dp), - large = RoundedCornerShape(0.dp) -) \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Theme.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Theme.kt deleted file mode 100644 index 32302d11b1d..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Theme.kt +++ /dev/null @@ -1,136 +0,0 @@ -package org.jetbrains.compose.demo.widgets.theme - -import androidx.compose.material.MaterialTheme -import androidx.compose.material.darkColors -import androidx.compose.material.lightColors -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color -import androidx.compose.foundation.isSystemInDarkTheme -import org.jetbrains.compose.demo.widgets.theme.ColorPallet.* - -// dark palettes -private val DarkGreenColorPalette = darkColors( - primary = green200, - primaryVariant = green700, - secondary = teal200, - background = Color.Black, - surface = Color.Black, - onPrimary = Color.Black, - onSecondary = Color.White, - onBackground = Color.White, - onSurface = Color.White, - error = Color.Red, -) - -private val DarkPurpleColorPalette = darkColors( - primary = purple200, - primaryVariant = purple700, - secondary = teal200, - background = Color.Black, - surface = Color.Black, - onPrimary = Color.Black, - onSecondary = Color.White, - onBackground = Color.White, - onSurface = Color.White, - error = Color.Red, -) - -private val DarkBlueColorPalette = darkColors( - primary = blue200, - primaryVariant = blue700, - secondary = teal200, - background = Color.Black, - surface = Color.Black, - onPrimary = Color.Black, - onSecondary = Color.White, - onBackground = Color.White, - onSurface = Color.White, - error = Color.Red, -) - -private val DarkOrangeColorPalette = darkColors( - primary = orange200, - primaryVariant = orange700, - secondary = teal200, - background = Color.Black, - surface = Color.Black, - onPrimary = Color.Black, - onSecondary = Color.White, - onBackground = Color.White, - onSurface = Color.White, - error = Color.Red, -) - -// Light pallets -private val LightGreenColorPalette = lightColors( - primary = green500, - primaryVariant = green700, - secondary = teal200, - background = Color.White, - surface = Color.White, - onPrimary = Color.White, - onSecondary = Color.Black, - onBackground = Color.Black, - onSurface = Color.Black -) - -private val LightPurpleColorPalette = lightColors( - primary = purple, - primaryVariant = purple700, - secondary = teal200, - background = Color.White, - surface = Color.White, - onPrimary = Color.White, - onSecondary = Color.Black, - onBackground = Color.Black, - onSurface = Color.Black -) - -private val LightBlueColorPalette = lightColors( - primary = blue500, - primaryVariant = blue700, - secondary = teal200, - background = Color.White, - surface = Color.White, - onPrimary = Color.White, - onSecondary = Color.Black, - onBackground = Color.Black, - onSurface = Color.Black -) - -private val LightOrangeColorPalette = lightColors( - primary = orange500, - primaryVariant = orange700, - secondary = teal200, - background = Color.White, - surface = Color.White, - onPrimary = Color.White, - onSecondary = Color.Black, - onBackground = Color.Black, - onSurface = Color.Black -) - -enum class ColorPallet { - PURPLE, GREEN, ORANGE, BLUE -} - -@Composable -fun WidgetGalleryTheme( - darkTheme: Boolean = isSystemInDarkTheme(), - colorPallet: ColorPallet = GREEN, - content: @Composable() () -> Unit, -) { - val colors = when (colorPallet) { - GREEN -> if (darkTheme) DarkGreenColorPalette else LightGreenColorPalette - PURPLE -> if (darkTheme) DarkPurpleColorPalette else LightPurpleColorPalette - ORANGE -> if (darkTheme) DarkOrangeColorPalette else LightOrangeColorPalette - BLUE -> if (darkTheme) DarkBlueColorPalette else LightBlueColorPalette - } - - MaterialTheme( - colors = colors, - typography = typography, - shapes = shapes, - content = content - ) -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Type.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Type.kt deleted file mode 100644 index bda3b064fae..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/theme/Type.kt +++ /dev/null @@ -1,43 +0,0 @@ -package org.jetbrains.compose.demo.widgets.theme - -import androidx.compose.material.Typography -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp - -val typography = Typography( - body1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ), - body2 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 14.sp - ), - button = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.W500, - fontSize = 14.sp - ), - caption = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 12.sp, - ), - subtitle1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - color = Color.Gray - ), - subtitle2 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 14.sp, - color = Color.Gray - ), -) \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/MainView.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/MainView.kt deleted file mode 100644 index e008688db93..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/MainView.kt +++ /dev/null @@ -1,166 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui - -import androidx.compose.animation.core.Spring -import androidx.compose.animation.core.SpringSpec -import androidx.compose.animation.core.animateDpAsState -import androidx.compose.foundation.clickable -import androidx.compose.foundation.hoverable -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.interaction.collectIsHoveredAsState -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.LocalContentColor -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.runtime.* -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clipToBounds -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.semantics.Role -import androidx.compose.ui.semantics.SemanticsProperties -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.TextUnit -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import org.jetbrains.compose.demo.widgets.platform.VerticalScrollbar -import org.jetbrains.compose.demo.widgets.theme.WidgetGalleryTheme -import org.jetbrains.compose.demo.widgets.ui.utils.PanelState -import org.jetbrains.compose.demo.widgets.ui.utils.ResizablePanel -import org.jetbrains.compose.demo.widgets.ui.utils.VerticalSplittable -import org.jetbrains.compose.demo.widgets.ui.utils.withoutWidthConstraints - -@Composable -fun MainView() { - WidgetGalleryTheme { - Surface { - WidgetsPanel() - } - } -} - -@Composable -fun WidgetsPanel() { - val widgetsTypeState = rememberSaveable { mutableStateOf(WidgetsType.sortedValues.first()) } - val panelState = remember { PanelState() } - - val animatedSize = if (panelState.splitter.isResizing) { - if (panelState.isExpanded) panelState.expandedSize else panelState.collapsedSize - } else { - animateDpAsState( - if (panelState.isExpanded) panelState.expandedSize else panelState.collapsedSize, - SpringSpec(stiffness = Spring.StiffnessLow) - ).value - } - - VerticalSplittable( - Modifier.fillMaxSize(), - panelState.splitter, - onResize = { - panelState.expandedSize = - (panelState.expandedSize + it).coerceAtLeast(panelState.expandedSizeMin) - } - ) { - ResizablePanel( - Modifier.width(animatedSize).fillMaxHeight(), - title = "Widgets", - state = panelState - ) { - WidgetsListView(widgetsTypeState) - } - - Box { - Column { - WidgetsView( - widgetsTypeState, - modifier = Modifier.weight(1f) - ) - } - } - } -} - -@Composable -private fun WidgetsListView(widgetsTypeState: MutableState) { - Box { - with(LocalDensity.current) { - val scrollState = rememberLazyListState() - - val fontSize = 14.sp - val lineHeight = fontSize.toDp() * 1.5f - - val sortedItems = WidgetsType.sortedValues - LazyColumn( - modifier = Modifier.fillMaxSize().withoutWidthConstraints(), - state = scrollState - ) { - items(sortedItems) { - WidgetsListItemViewImpl(it, widgetsTypeState, fontSize, lineHeight) - } - } - - VerticalScrollbar( - Modifier.align(Alignment.CenterEnd), - scrollState, - sortedItems.size, - lineHeight - ) - } - } - -} - -val WidgetsType.listItemTestTag: String - get() = "${testTag}_list_item" - - -@Composable -private fun WidgetsListItemViewImpl( - widgetsType: WidgetsType, - widgetsTypeState: MutableState, - fontSize: TextUnit, - height: Dp -) { - val isCurrent = widgetsTypeState.value == widgetsType - - Row( - modifier = Modifier - .wrapContentHeight() - .clickable { widgetsTypeState.value = widgetsType } - .semantics { - set(SemanticsProperties.Role, Role.Button) - } - .height(height) - .padding(start = 16.dp) - .testTag(widgetsType.listItemTestTag) - ) { - val inFocusInteractionSource = remember { MutableInteractionSource() } - val inFocus by inFocusInteractionSource.collectIsHoveredAsState() - val textColor = LocalContentColor.current.let { - when { - isCurrent -> it - inFocus -> it.copy(alpha = 0.6f) - else -> it.copy(alpha = 0.4f) - } - } - - Text( - text = widgetsType.title, - color = textColor, - modifier = Modifier - .align(Alignment.CenterVertically) - .clipToBounds() - .hoverable(inFocusInteractionSource), - softWrap = true, - fontSize = fontSize, - overflow = TextOverflow.Ellipsis, - maxLines = 1 - ) - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/WidgetView.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/WidgetView.kt deleted file mode 100644 index 757552d48b1..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/WidgetView.kt +++ /dev/null @@ -1,54 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui - -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalFocusManager -import org.jetbrains.compose.demo.widgets.ui.screens.* - -@Composable -fun WidgetsView( - widgetsTypeState: MutableState, - modifier: Modifier -) { - ClearFocusBox { - Box(modifier = modifier.verticalScroll(state = rememberScrollState())) { - @Suppress("UNUSED_VARIABLE") - val exhaustive = when (widgetsTypeState.value) { - WidgetsType.APP_BARS -> AppBars() - WidgetsType.BUTTONS -> Buttons() - WidgetsType.CHIPS -> Chips() - WidgetsType.LOADERS -> Loaders() - WidgetsType.SNACK_BARS -> SnackBars() - WidgetsType.TEXT_VIEWS -> TextViews() - WidgetsType.TEXT_INPUTS -> TextInputs() - WidgetsType.TOGGLES -> Toggles() - WidgetsType.UI_CARDS -> UICards() - } - } - } -} - -/** - * This wrapper need to control focus behavior on iOS to hide the keyboard. - */ -@Composable -private fun ClearFocusBox(content: @Composable () -> Unit) { - val focusManager = LocalFocusManager.current - Box( - Modifier.fillMaxSize() - .pointerInput(Unit) { - detectTapGestures { - focusManager.clearFocus(force = true) - } - }, - ) { - content() - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/WidgetsType.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/WidgetsType.kt deleted file mode 100644 index 59d1d1e60d6..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/WidgetsType.kt +++ /dev/null @@ -1,35 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui - -enum class WidgetsType(private val customTitle: String? = null) { - APP_BARS, - BUTTONS, - CHIPS, - LOADERS, - SNACK_BARS, - TEXT_VIEWS, - TEXT_INPUTS, - TOGGLES, - UI_CARDS("UI Cards"); - - private val readableName: String by lazy { - name.split("_") - .map { it.lowercase() } - .mapIndexed { i, it -> - if (i == 0) it.replaceFirstChar { - if (it.isLowerCase()) it.titlecase() else it.toString() - } else it - }.joinToString(" ") - } - - val title: String - get() = customTitle ?: readableName - - val testTag: String - get() = name.lowercase() - - companion object { - val sortedValues: List by lazy { - entries.sortedBy { it.name } - } - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/AppBars.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/AppBars.kt deleted file mode 100644 index 787ec8f1569..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/AppBars.kt +++ /dev/null @@ -1,192 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredSize -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.BottomAppBar -import androidx.compose.material.BottomNavigation -import androidx.compose.material.BottomNavigationItem -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack -import androidx.compose.material.icons.automirrored.outlined.ReadMore -import androidx.compose.material.icons.filled.MoreHoriz -import androidx.compose.material.icons.filled.StarBorder -import androidx.compose.material.icons.outlined.CleanHands -import androidx.compose.material.icons.outlined.Home -import androidx.compose.material.icons.outlined.LibraryMusic -import androidx.compose.material.icons.outlined.Search -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.theme.twitterColor -import org.jetbrains.compose.demo.widgets.ui.WidgetsType -import org.jetbrains.compose.demo.widgets.ui.utils.SubtitleText -import org.jetbrains.compose.demo.widgets.ui.utils.TitleText -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource -import org.jetbrains.compose.resources.stringResource -import widgets_gallery.shared.generated.resources.Res -import widgets_gallery.shared.generated.resources.ic_instagram -import widgets_gallery.shared.generated.resources.ic_send -import widgets_gallery.shared.generated.resources.ic_twitter -import widgets_gallery.shared.generated.resources.p6 -import widgets_gallery.shared.generated.resources.spotify_nav_home -import widgets_gallery.shared.generated.resources.spotify_nav_library -import widgets_gallery.shared.generated.resources.spotify_nav_search - -@Composable -fun AppBars() { - Column(Modifier.testTag(WidgetsType.APP_BARS.testTag)) { - TopAppBarsDemo() - BottomAppBarDemo() - NavigationBarDemo() - } -} - -@OptIn(ExperimentalResourceApi::class) -@Composable -private fun TopAppBarsDemo() { - SubtitleText(subtitle = "Top App bar") - - TopAppBar( - title = { Text(text = "Home") }, - elevation = 8.dp, - navigationIcon = { - IconButton(onClick = {}) { - Icon(Icons.AutoMirrored.Default.ArrowBack, contentDescription = "ArrowBack") - } - } - ) - - Spacer(modifier = Modifier.height(8.dp)) - - TopAppBar( - title = { Text(text = "Instagram") }, - backgroundColor = MaterialTheme.colors.surface, - contentColor = MaterialTheme.colors.onSurface, - elevation = 8.dp, - navigationIcon = { - IconButton(onClick = {}) { - Icon(painterResource(Res.drawable.ic_instagram), contentDescription = "Instagram") - } - }, - actions = { - IconButton(onClick = {}) { - Icon(painterResource(Res.drawable.ic_send), contentDescription = "Send") - } - } - ) - - Spacer(modifier = Modifier.height(8.dp)) - - TopAppBar( - title = { - Icon( - painterResource(Res.drawable.ic_twitter), - contentDescription = "Twitter", - tint = twitterColor, - modifier = Modifier.fillMaxWidth() - ) - }, - backgroundColor = MaterialTheme.colors.surface, - contentColor = MaterialTheme.colors.onSurface, - elevation = 8.dp, - navigationIcon = { - Image( - painterResource(Res.drawable.p6), - contentDescription = "", - modifier = Modifier.padding(vertical = 4.dp, horizontal = 8.dp) - .requiredSize(32.dp).clip(CircleShape) - ) - }, - actions = { - Icon( - Icons.Default.StarBorder, - contentDescription = "", - modifier = Modifier.padding(horizontal = 8.dp) - ) - } - ) - Spacer(modifier = Modifier.height(8.dp)) -} - -@Composable -private fun BottomAppBarDemo() { - Spacer(modifier = Modifier.height(16.dp)) - SubtitleText("Bottom app bars: Note bottom app bar support FAB cutouts when used with scaffolds see demoUI crypto app") - - BottomAppBar( - cutoutShape = CircleShape - ) { - IconButton(onClick = {}) { - Icon(Icons.Default.MoreHoriz, contentDescription = "") - } - TitleText(title = "Bottom App Bar") - } -} - -@OptIn(ExperimentalResourceApi::class) -@Composable -private fun NavigationBarDemo() { - Spacer(modifier = Modifier.height(16.dp)) - SubtitleText(subtitle = "Bottom Navigation Bars") - val navItemState = remember { mutableStateOf(NavType.HOME) } - BottomNavigation(backgroundColor = MaterialTheme.colors.surface) { - BottomNavigationItem( - icon = { Icon(Icons.Outlined.Home, contentDescription = "Home") }, - selected = navItemState.value == NavType.HOME, - onClick = { navItemState.value = NavType.HOME }, - label = { Text(text = stringResource(Res.string.spotify_nav_home)) }, - ) - BottomNavigationItem( - icon = { Icon(Icons.Outlined.Search, contentDescription = "Search") }, - selected = navItemState.value == NavType.SEARCH, - onClick = { navItemState.value = NavType.SEARCH }, - label = { Text(text = stringResource(Res.string.spotify_nav_search)) } - ) - BottomNavigationItem( - icon = { Icon(Icons.Outlined.LibraryMusic, contentDescription = "LibraryMusic") }, - selected = navItemState.value == NavType.LIBRARY, - onClick = { navItemState.value = NavType.LIBRARY }, - label = { Text(text = stringResource(Res.string.spotify_nav_library)) } - ) - } - - Spacer(modifier = Modifier.height(16.dp)) - - BottomNavigation { - BottomNavigationItem( - icon = { Icon(Icons.AutoMirrored.Outlined.ReadMore, contentDescription = "ReadMore") }, - selected = navItemState.value == NavType.HOME, - onClick = { navItemState.value = NavType.HOME }, - ) - BottomNavigationItem( - icon = { Icon(Icons.Outlined.Search, contentDescription = "Search") }, - selected = navItemState.value == NavType.SEARCH, - onClick = { navItemState.value = NavType.SEARCH }, - ) - BottomNavigationItem( - icon = { Icon(Icons.Outlined.CleanHands, contentDescription = "CleanHands") }, - selected = navItemState.value == NavType.LIBRARY, - onClick = { navItemState.value = NavType.LIBRARY }, - ) - } -} - -private enum class NavType { - HOME, SEARCH, LIBRARY -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Buttons.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Buttons.kt deleted file mode 100644 index 7b650d0eee4..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Buttons.kt +++ /dev/null @@ -1,110 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.FavoriteBorder -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Brush -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.theme.purple -import org.jetbrains.compose.demo.widgets.theme.purple200 -import org.jetbrains.compose.demo.widgets.theme.typography -import org.jetbrains.compose.demo.widgets.ui.WidgetsType - -@Composable -fun Buttons() { - Column(Modifier.testTag(WidgetsType.BUTTONS.testTag)) { - Button(onClick = {}, modifier = Modifier.padding(8.dp)) { - Text(text = "Main Button") - } - TextButton(onClick = {}, modifier = Modifier.padding(8.dp)) { - Text(text = "Text Button") - } - TextButton(onClick = {}, modifier = Modifier.padding(8.dp), enabled = false) { - Text(text = "Text Disabled") - } - Button(onClick = {}, modifier = Modifier.padding(8.dp), enabled = false) { - Text(text = "Disabled") - } - Button( - onClick = {}, - modifier = Modifier.padding(8.dp), - elevation = ButtonDefaults.elevation() - ) { - Text(text = "Flat") - } - Button( - onClick = {}, - modifier = Modifier.padding(8.dp), - shape = RoundedCornerShape(12.dp) - ) { - Text(text = "Rounded") - } - OutlinedButton(onClick = {}, modifier = Modifier.padding(8.dp)) { - Text(text = "Outline") - } - Button(onClick = {}, modifier = Modifier.padding(8.dp)) { - Row { - Icon(Icons.Default.FavoriteBorder, contentDescription = null, modifier = Modifier.padding(end = 4.dp)) - Text(text = "Icon Button") - } - } - Button(onClick = {}, modifier = Modifier.padding(8.dp)) { - Text(text = "Icon Button") - Icon(Icons.Default.FavoriteBorder, contentDescription = null, modifier = Modifier.padding(start = 4.dp)) - } - //custom background buttons - val outlineButtonColor = ButtonDefaults.outlinedButtonColors( - contentColor = purple200, - ) - val mainButtonColor = ButtonDefaults.buttonColors( - backgroundColor = purple, - contentColor = MaterialTheme.colors.surface - ) - OutlinedButton( - colors = outlineButtonColor, - onClick = {}, - modifier = Modifier.padding(8.dp) - ) { - Text(text = "Outline colors") - } - Button(colors = mainButtonColor, onClick = {}, modifier = Modifier.padding(8.dp)) { - Text(text = "Custom colors") - } - - val horizontalGradient = Brush.horizontalGradient( - colors = listOf(MaterialTheme.colors.primary, MaterialTheme.colors.primaryVariant), - 0f, - 250f - ) - val verticalGradient = Brush.verticalGradient( - colors = listOf(MaterialTheme.colors.primary, MaterialTheme.colors.primaryVariant), - startY = 0f, - endY = 100f - ) - Text( - text = "Horizontal gradient", - style = typography.body2.copy(color = Color.White), - modifier = Modifier.padding(12.dp).clickable(onClick = {}) - .clip(RoundedCornerShape(4.dp)) - .background(brush = horizontalGradient).padding(12.dp) - ) - Text( - text = "Vertical gradient", - style = typography.body1.copy(color = Color.White), - modifier = Modifier.padding(12.dp).clickable(onClick = {}) - .clip(RoundedCornerShape(4.dp)) - .background(brush = verticalGradient).padding(12.dp) - ) - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Chips.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Chips.kt deleted file mode 100644 index 3bc28ff1844..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Chips.kt +++ /dev/null @@ -1,156 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredSize -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.ui.WidgetsType -import org.jetbrains.compose.demo.widgets.ui.utils.SubtitleText -import org.jetbrains.compose.resources.DrawableResource -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource -import widgets_gallery.shared.generated.resources.Res -import widgets_gallery.shared.generated.resources.p2 -import widgets_gallery.shared.generated.resources.p6 - -@OptIn(ExperimentalResourceApi::class) -@Composable -fun Chips() { - Column(Modifier.testTag(WidgetsType.CHIPS.testTag)) { - // There is no in-built chips but you can make yours like below - SubtitleText(subtitle = "Custom chips with surface") - Column(modifier = Modifier.padding(8.dp)) { - YoutubeChip( - selected = true, - text = "Chip", - modifier = Modifier.padding(horizontal = 8.dp) - ) - Spacer(modifier = Modifier.padding(8.dp)) - YoutubeChip( - selected = false, - text = "Inactive", - modifier = Modifier.padding(horizontal = 8.dp) - ) - Spacer(modifier = Modifier.padding(8.dp)) - CustomImageChip( - text = "custom", - imageId = Res.drawable.p2, - selected = true - ) - Spacer(modifier = Modifier.padding(8.dp)) - CustomImageChip( - text = "custom2", - imageId = Res.drawable.p6, - selected = false - ) - } - SubtitleText(subtitle = "Buttons with circle clipping.") - Column(modifier = Modifier.padding(8.dp)) { - Button( - onClick = {}, - modifier = Modifier.padding(8.dp).clip(CircleShape) - ) { - Text(text = "Chip button") - } - Button( - onClick = {}, - enabled = false, - modifier = Modifier.padding(8.dp).clip(CircleShape) - ) { - Text(text = "Disabled chip") - } - } - } -} - - -//Inspired from jetcaster sample. I hope compose can add simple Chip UI element that can -// support images or icons with multiple states. -@OptIn(ExperimentalResourceApi::class) -@Composable -private fun CustomImageChip( - text: String, - imageId: DrawableResource, - selected: Boolean, - modifier: Modifier = Modifier -) { - Surface( - color = when { - selected -> MaterialTheme.colors.primary - else -> Color.Transparent - }, - contentColor = when { - selected -> MaterialTheme.colors.onPrimary - else -> Color.LightGray - }, - shape = RoundedCornerShape(16.dp), - border = BorderStroke( - width = 1.dp, - color = when { - selected -> MaterialTheme.colors.primary - else -> Color.LightGray - } - ), - modifier = modifier - ) { - Row(modifier = Modifier) { - Image( - painterResource(imageId), - contentDescription = null, - modifier = Modifier.padding(8.dp).requiredSize(20.dp).clip(CircleShape) - ) - Text( - text = text, - style = MaterialTheme.typography.body2, - modifier = Modifier.padding(end = 8.dp, top = 8.dp, bottom = 8.dp) - ) - } - } -} - -@Composable -private fun YoutubeChip(selected: Boolean, text: String, modifier: Modifier = Modifier) { - Surface( - color = when { - selected -> MaterialTheme.colors.onSurface - else -> Color.Transparent - }, - contentColor = when { - selected -> MaterialTheme.colors.onPrimary - else -> Color.LightGray - }, - shape = CircleShape, - border = BorderStroke( - width = 1.dp, - color = when { - selected -> MaterialTheme.colors.primary - else -> Color.LightGray - } - ), - modifier = modifier - ) { - Text( - text = text, - textAlign = TextAlign.Center, - style = MaterialTheme.typography.body2, - modifier = Modifier.padding(8.dp) - ) - - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Loaders.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Loaders.kt deleted file mode 100644 index 97a6ce4357f..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Loaders.kt +++ /dev/null @@ -1,34 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.padding -import androidx.compose.material.CircularProgressIndicator -import androidx.compose.material.LinearProgressIndicator -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.ui.WidgetsType - -@Composable -fun Loaders() { - Column( - modifier = Modifier - .padding(16.dp) - .testTag(WidgetsType.LOADERS.testTag), - verticalArrangement = Arrangement.spacedBy(16.dp) - ) { - CircularProgressIndicator() - - CircularProgressIndicator(strokeWidth = 8.dp) - - LinearProgressIndicator() - - Column { - LinearProgressIndicator() - Text(text = "Loading with text...", modifier = Modifier.padding(8.dp)) - } - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/SnackBars.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/SnackBars.kt deleted file mode 100644 index ad3af37ea3e..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/SnackBars.kt +++ /dev/null @@ -1,46 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Snackbar -import androidx.compose.material.Text -import androidx.compose.material.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.ui.WidgetsType - -@Composable -fun SnackBars() { - Column( - modifier = Modifier - .padding(4.dp) - .testTag(WidgetsType.SNACK_BARS.testTag), - verticalArrangement = Arrangement.spacedBy(8.dp) - ) { - Snackbar { - Text(text = "This is a basic snackbar") - } - Snackbar( - action = { - TextButton(onClick = {}) { - Text(text = "Remove") - } - } - ) { - Text(text = "This is a basic snackbar with action item") - } - Snackbar( - actionOnNewLine = true, - action = { - TextButton(onClick = {}) { - Text(text = "Remove") - } - } - ) { - Text(text = "Snackbar with action item below text") - } - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/TextInputs.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/TextInputs.kt deleted file mode 100644 index 1df77caf0fa..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/TextInputs.kt +++ /dev/null @@ -1,97 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Icon -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Edit -import androidx.compose.material.icons.filled.Email -import androidx.compose.runtime.* -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.text.input.TextFieldValue -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.ui.WidgetsType - -@Composable -fun TextInputs() { - Column(Modifier.testTag(WidgetsType.TEXT_INPUTS.testTag)) { - var text by remember { mutableStateOf(TextFieldValue("")) } - - // TODO Explore CoreTextField -// CoreTextField( -// value = text, -// onValueChange = { newValue -> text = newValue }, -// modifier = Modifier.padding(8.dp).preferredSize(0.dp), -// cursorColor = Color.Magenta -// ) - TextField( - value = text, - onValueChange = { newValue -> text = newValue }, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - singleLine = true, - label = { Text("label") }, - placeholder = { Text("placeholder") }, - ) - - OutlinedTextField( - value = text, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - singleLine = true, - label = { Text(text = "Password") }, - placeholder = { Text(text = "12334444") }, - visualTransformation = PasswordVisualTransformation(), - onValueChange = { - text = it - }, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password) - ) - - OutlinedTextField( - value = text, - leadingIcon = { Icon(Icons.Default.Email, contentDescription = "Email") }, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - singleLine = true, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text), - label = { Text(text = "Email address") }, - placeholder = { Text(text = "Your email") }, - onValueChange = { - text = it - } - ) - OutlinedTextField( - value = text, - leadingIcon = { Icon(Icons.Default.Email, contentDescription = "Email") }, - trailingIcon = { Icon(Icons.Default.Edit, contentDescription = "Edit") }, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - singleLine = true, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text), - label = { Text(text = "Email address") }, - placeholder = { Text(text = "Your email") }, - onValueChange = { - text = it - } - ) - - var numberText by remember { mutableStateOf(TextFieldValue("")) } - OutlinedTextField( - value = numberText, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - singleLine = true, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), - label = { Text(text = "Phone number") }, - placeholder = { Text(text = "88888888") }, - onValueChange = { - numberText = it - } - ) - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Texts.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Texts.kt deleted file mode 100644 index d22aca0ba8b..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Texts.kt +++ /dev/null @@ -1,98 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextDecoration -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.theme.typography -import org.jetbrains.compose.demo.widgets.ui.WidgetsType -import org.jetbrains.compose.demo.widgets.ui.utils.SubtitleText - -@Composable -fun TextViews() { - Column(Modifier.testTag(WidgetsType.TEXT_VIEWS.testTag)) { - val textModifier = Modifier.padding(horizontal = 8.dp) - - SubtitleText(subtitle = "Font weights") - Text(text = "Plain", modifier = textModifier) - Text( - text = "Medium Bold", - style = typography.body1.copy(fontWeight = FontWeight.Medium), - modifier = textModifier - ) - Text( - text = "Bold", - style = typography.body1.copy(fontWeight = FontWeight.Bold), - modifier = textModifier - ) - Text( - text = "Extra Bold", - style = typography.body1.copy(fontWeight = FontWeight.Bold), - modifier = textModifier - ) - - SubtitleText(subtitle = "Text decorations") - Text(text = "Default", modifier = textModifier) - Text( - text = "Underline", - textDecoration = TextDecoration.Underline, - modifier = textModifier - ) - Text( - text = "LineThrough", - textDecoration = TextDecoration.LineThrough, - modifier = textModifier - ) - Text( - text = "UnderlineLineThrough", - textDecoration = TextDecoration.combine( - listOf( - TextDecoration.Underline, - TextDecoration.LineThrough - ) - ), - modifier = textModifier - ) - - SubtitleText(subtitle = "Overflow") - Text( - text = "Ellipsis: This text is supposed to ellipsis with max 1 line allowed for this", - overflow = TextOverflow.Ellipsis, - modifier = textModifier, - maxLines = 1 - ) - Text( - text = "Clip: This text is supposed to clip with max 1 line allowed for this", - overflow = TextOverflow.Clip, - modifier = textModifier, - maxLines = 1 - ) - } - - /* TODO: https://github.com/JetBrains/compose-jb/issues/106 - SubtitleText(subtitle = "font family dynamic") - Row { - Text(text = "Default", modifier = textModifier) - Text( - text = "Cursive", - style = typography.body1.copy(fontFamily = FontFamily.Cursive), - modifier = textModifier - ) - Text( - text = "SansSerif", - style = typography.body1.copy(fontFamily = FontFamily.SansSerif), - modifier = textModifier - ) - Text( - text = "Monospace", - style = typography.body1.copy(fontFamily = FontFamily.Monospace), - modifier = textModifier - ) - } */ -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Toggles.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Toggles.kt deleted file mode 100644 index 8ed12c84972..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/Toggles.kt +++ /dev/null @@ -1,73 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material.* -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.ui.WidgetsType - -@Composable -fun Toggles() { - Column(Modifier.testTag(WidgetsType.TOGGLES.testTag)) { - var checked by remember { mutableStateOf(true) } - Checkbox( - checked = checked, - modifier = Modifier.padding(8.dp), - onCheckedChange = { checked = !checked } - ) - - var switched by remember { mutableStateOf(true) } - Switch( - checked = switched, - colors = SwitchDefaults.colors(checkedThumbColor = MaterialTheme.colors.primary), - modifier = Modifier.padding(8.dp), - onCheckedChange = { switched = it } - ) - - AlignedColumn { - var selected by remember { mutableStateOf("Kotlin") } - for (lang in arrayOf("Kotlin", "Java", "Swift")) { - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == lang, onClick = { selected = lang }) - Text( - text = lang, - modifier = Modifier.clickable(onClick = { selected = lang }).padding(start = 4.dp) - ) - } - } - } - - var sliderState by remember { mutableStateOf(0f) } - Slider(value = sliderState, modifier = Modifier.fillMaxWidth().padding(8.dp), - onValueChange = { newValue -> - sliderState = newValue - } - ) - - var sliderState2 by remember { mutableStateOf(20f) } - Slider(value = sliderState2, modifier = Modifier.fillMaxWidth().padding(8.dp), - valueRange = 0f..100f, - steps = 5, - colors = SliderDefaults.colors(thumbColor = MaterialTheme.colors.secondary), - onValueChange = { newValue -> - sliderState2 = newValue - } - ) - } -} - -@Composable -private fun AlignedColumn(content: @Composable () -> Unit) { - Column( - modifier = Modifier.fillMaxWidth().padding(16.dp) - ) { - content() - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/UICards.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/UICards.kt deleted file mode 100644 index ea3c201c0a3..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/screens/UICards.kt +++ /dev/null @@ -1,130 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.screens - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredSize -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Card -import androidx.compose.material.Divider -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Icon -import androidx.compose.material.ListItem -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ShoppingCart -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.data.DemoDataProvider -import org.jetbrains.compose.demo.widgets.theme.typography -import org.jetbrains.compose.demo.widgets.ui.WidgetsType -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource -import widgets_gallery.shared.generated.resources.Res -import widgets_gallery.shared.generated.resources.p1 -import widgets_gallery.shared.generated.resources.p2 -import widgets_gallery.shared.generated.resources.p3 - -@OptIn(ExperimentalMaterialApi::class, ExperimentalResourceApi::class) -@Composable -fun UICards() { - Column(Modifier.testTag(WidgetsType.UI_CARDS.testTag)) { - val item = remember { DemoDataProvider.item } - - Text( - text = "Inbuilt box as container for any Clipping/Alignment controls", - style = typography.subtitle1, - modifier = Modifier.padding(8.dp) - ) - Card( - modifier = Modifier.padding(8.dp).fillMaxWidth(), - backgroundColor = MaterialTheme.colors.primary, - shape = RoundedCornerShape(topStart = 16.dp, bottomEnd = 16.dp) - ) { - Column { - Text( - text = item.title, - modifier = Modifier.padding(8.dp), - color = MaterialTheme.colors.onPrimary - ) - Text( - text = item.subtitle, - modifier = Modifier.padding(8.dp), - color = MaterialTheme.colors.onPrimary - ) - } - } - Divider() - - Text(text = "Inbuilt Card", style = typography.subtitle1, modifier = Modifier.padding(8.dp)) - Card( - modifier = Modifier.padding(16.dp).fillMaxWidth(), - shape = RoundedCornerShape(4.dp), - elevation = 4.dp - ) { - Row { - Image( - painterResource(Res.drawable.p3), - contentDescription = null, - modifier = Modifier.requiredSize(60.dp) - ) - Text(text = item.title, modifier = Modifier.padding(16.dp)) - } - } - Divider() - - Text( - text = "In-built ListItems", - style = typography.subtitle1, - modifier = Modifier.padding(8.dp) - ) - ListItem(text = { Text(item.title) }, secondaryText = { Text(item.subtitle) }) - Divider(modifier = Modifier.padding(4.dp)) - ListItem( - text = { Text(item.title) }, - secondaryText = { Text(item.subtitle) }, - singleLineSecondaryText = false - ) - Divider(modifier = Modifier.padding(4.dp)) - ListItem(text = { Text(item.title) }, secondaryText = { Text(item.subtitle) }, icon = { - Image( - painterResource(Res.drawable.p3), - contentDescription = null - ) - }) - Divider(modifier = Modifier.padding(4.dp)) - //I am not sure why this is not going multiline for secondaryText... - ListItem( - text = { Text(item.title) }, - secondaryText = { Text(item.subtitle) }, - icon = { - Image( - painterResource(Res.drawable.p1), - contentDescription = null - ) - }, - overlineText = { Text("Overline text") }, - singleLineSecondaryText = false - ) - Divider() - ListItem( - text = { Text(item.title) }, - secondaryText = { Text(item.subtitle) }, - icon = { - Image( - painterResource(Res.drawable.p2), - contentDescription = null - ) - }, - trailing = { Icon(Icons.Default.ShoppingCart, contentDescription = null) }, - singleLineSecondaryText = false - ) - Divider() - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/LayoutModifiers.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/LayoutModifiers.kt deleted file mode 100644 index 228604e27d2..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/LayoutModifiers.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.utils - -import androidx.compose.ui.Modifier -import androidx.compose.ui.layout.layout - -fun Modifier.withoutWidthConstraints() = layout { measurable, constraints -> - val placeable = measurable.measure(constraints.copy(maxWidth = Int.MAX_VALUE)) - layout(constraints.maxWidth, placeable.height) { - placeable.place(0, 0) - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/ResizablePanel.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/ResizablePanel.kt deleted file mode 100644 index ba4e09306a3..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/ResizablePanel.kt +++ /dev/null @@ -1,94 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.utils - -import androidx.compose.animation.core.* -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.* -import androidx.compose.material.Icon -import androidx.compose.material.LocalContentColor -import androidx.compose.material.Text -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack -import androidx.compose.material.icons.automirrored.filled.ArrowForward -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clipToBounds -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.graphicsLayer -import androidx.compose.ui.semantics.Role -import androidx.compose.ui.semantics.SemanticsProperties -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.text.AnnotatedString -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp - -class PanelState { - val collapsedSize = 40.dp - var expandedSize by mutableStateOf(110.dp) - val expandedSizeMin = 120.dp - var isExpanded by mutableStateOf(true) - val splitter = SplitterState() -} - -@Composable -fun ResizablePanel( - modifier: Modifier, - state: PanelState, - title: String, - content: @Composable () -> Unit, -) { - val alpha = animateFloatAsState( - if (state.isExpanded) 1f else 0f, - SpringSpec(stiffness = Spring.StiffnessLow), - ).value - - Box(modifier) { - Column { - Row(Modifier - .height(32.dp) - .padding(6.dp) - .semantics(mergeDescendants = false) { - val text = if (state.isExpanded) "Collapse" else "Expand" - set(SemanticsProperties.Text, listOf( - AnnotatedString("$text $title panel") - )) - set(SemanticsProperties.Role, Role.Button) - } - .clickable { state.isExpanded = !state.isExpanded } - ) { - Icon( - imageVector = if (state.isExpanded) - Icons.AutoMirrored.Default.ArrowBack - else - Icons.AutoMirrored.Default.ArrowForward, - contentDescription = if (state.isExpanded) "Collapse" else "Expand", - tint = LocalContentColor.current, - modifier = Modifier - .size(24.dp) - .padding(start = 2.dp, end = 2.dp, bottom = 2.dp) - ) - Text( - text = if (state.isExpanded) title else "", - modifier = Modifier.fillMaxWidth().clipToBounds(), - fontSize = 14.sp - ) - } - - if (state.isExpanded) { - Box( - Modifier - .fillMaxWidth() - .height(1.dp) - .background(Color.Gray) - ) - - Column(Modifier.fillMaxSize().padding(top = 4.dp).graphicsLayer(alpha = alpha)) { - content() - } - } - } - } -} diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/Text.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/Text.kt deleted file mode 100644 index 083e8165cbc..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/Text.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.utils - -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import org.jetbrains.compose.demo.widgets.theme.typography - -@Composable -fun SubtitleText(subtitle: String, modifier: Modifier = Modifier) { - Text(text = subtitle, style = typography.subtitle2, modifier = modifier.padding(8.dp)) -} - -@Composable -fun TitleText(title: String) { - Text( - text = title, - style = typography.h6.copy(fontSize = 14.sp), - modifier = Modifier.padding(8.dp) - ) -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/VerticalSplittable.kt b/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/VerticalSplittable.kt deleted file mode 100644 index 450fa865eaa..00000000000 --- a/examples/widgets-gallery/shared/src/commonMain/kotlin/org/jetbrains/compose/demo/widgets/ui/utils/VerticalSplittable.kt +++ /dev/null @@ -1,96 +0,0 @@ -package org.jetbrains.compose.demo.widgets.ui.utils - -import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.draggable -import androidx.compose.foundation.gestures.Orientation -import androidx.compose.foundation.gestures.rememberDraggableState -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.width -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.Layout -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.Constraints -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.demo.widgets.platform.cursorForHorizontalResize - -class SplitterState { - var isResizing by mutableStateOf(false) - var isResizeEnabled by mutableStateOf(true) -} - -@Composable -fun VerticalSplittable( - modifier: Modifier, - splitterState: SplitterState, - onResize: (delta: Dp) -> Unit, - children: @Composable () -> Unit -) = Layout({ - children() - VerticalSplitter(splitterState, onResize) -}, modifier, measurePolicy = { measurables, constraints -> - require(measurables.size == 3) - - val firstPlaceable = measurables[0].measure(constraints.copy(minWidth = 0)) - val secondWidth = constraints.maxWidth - firstPlaceable.width - val secondPlaceable = measurables[1].measure( - Constraints( - minWidth = secondWidth, - maxWidth = secondWidth, - minHeight = constraints.maxHeight, - maxHeight = constraints.maxHeight - ) - ) - val splitterPlaceable = measurables[2].measure(constraints) - layout(constraints.maxWidth, constraints.maxHeight) { - firstPlaceable.place(0, 0) - secondPlaceable.place(firstPlaceable.width, 0) - splitterPlaceable.place(firstPlaceable.width, 0) - } -}) - - - -@Composable -fun VerticalSplitter( - splitterState: SplitterState, - onResize: (delta: Dp) -> Unit, - color: Color = Color.DarkGray -) = Box { - val density = LocalDensity.current - Box( - Modifier - .width(8.dp) - .fillMaxHeight() - .run { - if (splitterState.isResizeEnabled) { - this.draggable( - state = rememberDraggableState { - with(density) { - onResize(it.toDp()) - } - }, - orientation = Orientation.Horizontal, - startDragImmediately = true, - onDragStarted = { splitterState.isResizing = true }, - onDragStopped = { splitterState.isResizing = false } - ).cursorForHorizontalResize() - } else { - this - } - } - ) - - Box( - Modifier - .width(1.dp) - .fillMaxHeight() - .background(color) - ) -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonTest/kotlin/ExampleTest.kt b/examples/widgets-gallery/shared/src/commonTest/kotlin/ExampleTest.kt deleted file mode 100644 index 4c6bf0d9ecd..00000000000 --- a/examples/widgets-gallery/shared/src/commonTest/kotlin/ExampleTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -import androidx.compose.material.* -import androidx.compose.runtime.* -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.test.* -import kotlin.test.Test - - -/** - * This is a simple, sample test. - */ -class ExampleTest { - @OptIn(ExperimentalTestApi::class) - @Test - fun myTest() = runComposeUiTest { - setContent { - var text by remember { mutableStateOf("Hello") } - Text( - text = text, - modifier = Modifier.testTag("text") - ) - Button( - onClick = { text = "Compose" }, - modifier = Modifier.testTag("button") - ){ - Text("Click me") - } - } - - onNodeWithTag("text").assertTextEquals("Hello") - onNodeWithTag("button").performClick() - onNodeWithTag("text").assertTextEquals("Compose") - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/commonTest/kotlin/WidgetsPanelTest.kt b/examples/widgets-gallery/shared/src/commonTest/kotlin/WidgetsPanelTest.kt deleted file mode 100644 index 155b2dd1675..00000000000 --- a/examples/widgets-gallery/shared/src/commonTest/kotlin/WidgetsPanelTest.kt +++ /dev/null @@ -1,28 +0,0 @@ -import androidx.compose.ui.test.ExperimentalTestApi -import androidx.compose.ui.test.onNodeWithTag -import androidx.compose.ui.test.performClick -import androidx.compose.ui.test.runComposeUiTest -import org.jetbrains.compose.demo.widgets.ui.WidgetsPanel -import org.jetbrains.compose.demo.widgets.ui.WidgetsType -import org.jetbrains.compose.demo.widgets.ui.listItemTestTag -import kotlin.test.Test - - -@OptIn(ExperimentalTestApi::class) -class WidgetsPanelTest { - /** - * Tests that clicking on each widget type in the list shows the corresponding widgets view. - */ - @OptIn(ExperimentalTestApi::class) - @Test - fun clickingOnWidgetListItemShowsCorrectWidgetUi() = runComposeUiTest { - setContent { - WidgetsPanel() - } - - for (widgetsType in WidgetsType.entries) { - onNodeWithTag(widgetsType.listItemTestTag).performClick() - onNodeWithTag(widgetsType.testTag).assertExists() - } - } -} \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/desktopMain/kotlin/main.desktop.kt b/examples/widgets-gallery/shared/src/desktopMain/kotlin/main.desktop.kt deleted file mode 100644 index 370156e9fa4..00000000000 --- a/examples/widgets-gallery/shared/src/desktopMain/kotlin/main.desktop.kt +++ /dev/null @@ -1,5 +0,0 @@ -import androidx.compose.runtime.Composable -import org.jetbrains.compose.demo.widgets.ui.MainView - -@Composable -fun MainView() = MainView() \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/desktopMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt b/examples/widgets-gallery/shared/src/desktopMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt deleted file mode 100644 index 4fa07e3eb59..00000000000 --- a/examples/widgets-gallery/shared/src/desktopMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.input.pointer.PointerIcon -import androidx.compose.ui.input.pointer.pointerHoverIcon -import androidx.compose.ui.input.pointer.pointerMoveFilter -import java.awt.Cursor - -actual fun Modifier.cursorForHorizontalResize(): Modifier = - this.pointerHoverIcon(PointerIcon(Cursor(Cursor.E_RESIZE_CURSOR))) diff --git a/examples/widgets-gallery/shared/src/desktopMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt b/examples/widgets-gallery/shared/src/desktopMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt deleted file mode 100644 index b4ba358b2fb..00000000000 --- a/examples/widgets-gallery/shared/src/desktopMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp - -@Composable -actual fun VerticalScrollbar( - modifier: Modifier, - scrollState: ScrollState -) = androidx.compose.foundation.VerticalScrollbar( - rememberScrollbarAdapter(scrollState), - modifier -) - -@OptIn(ExperimentalFoundationApi::class) -@Composable -actual fun VerticalScrollbar( - modifier: Modifier, - scrollState: LazyListState, - itemCount: Int, - averageItemSize: Dp -) = androidx.compose.foundation.VerticalScrollbar( - rememberScrollbarAdapter(scrollState), - modifier -) \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt b/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt deleted file mode 100644 index a49921fe640..00000000000 --- a/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Mouse.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset - -actual fun Modifier.cursorForHorizontalResize() = this \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt b/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt deleted file mode 100644 index 7ec4cd59c77..00000000000 --- a/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/Scrollbar.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.foundation.ScrollState -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.Dp - -@Composable -actual fun VerticalScrollbar( - modifier: Modifier, - scrollState: ScrollState -) = Unit - -@Composable -actual fun VerticalScrollbar( - modifier: Modifier, - scrollState: LazyListState, - itemCount: Int, - averageItemSize: Dp -) = Unit \ No newline at end of file diff --git a/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/main.ios.kt b/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/main.ios.kt deleted file mode 100644 index 4fa782a91eb..00000000000 --- a/examples/widgets-gallery/shared/src/iosMain/kotlin/org/jetbrains/compose/demo/widgets/platform/main.ios.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.demo.widgets.platform - -import androidx.compose.ui.window.ComposeUIViewController -import org.jetbrains.compose.demo.widgets.ui.MainView -import platform.UIKit.UIViewController - -fun MainViewController() : UIViewController = ComposeUIViewController { MainView() } \ No newline at end of file diff --git a/examples/widgets-gallery/third_party/ComposeCookBook_LICENSE.txt b/examples/widgets-gallery/third_party/ComposeCookBook_LICENSE.txt deleted file mode 100644 index 928f38ee9d7..00000000000 --- a/examples/widgets-gallery/third_party/ComposeCookBook_LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Gurupreet Singh - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/experimental/cef/gradle/wrapper/gradle-wrapper.properties b/experimental/cef/gradle/wrapper/gradle-wrapper.properties index 05679dc3c18..37f853b1c84 100644 --- a/experimental/cef/gradle/wrapper/gradle-wrapper.properties +++ b/experimental/cef/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/experimental/components/gradle/wrapper/gradle-wrapper.properties b/experimental/components/gradle/wrapper/gradle-wrapper.properties index a5952066425..37f853b1c84 100644 --- a/experimental/components/gradle/wrapper/gradle-wrapper.properties +++ b/experimental/components/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/.gitignore b/experimental/examples/intellij-plugin-with-experimental-shared-base/.gitignore deleted file mode 100644 index 65ca50d416b..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -build/ -.gradle/ -.idea/ \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/.run/runIde.run.xml b/experimental/examples/intellij-plugin-with-experimental-shared-base/.run/runIde.run.xml deleted file mode 100644 index 52aca017c27..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/.run/runIde.run.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/README.md b/experimental/examples/intellij-plugin-with-experimental-shared-base/README.md deleted file mode 100644 index 8af73b48ec0..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/README.md +++ /dev/null @@ -1,20 +0,0 @@ -## Example Compose Multiplatform based plugin for IntelliJ Idea. - -A plugin, demonstrating an Intellij plugin, showing a dialog window written with Compose. - -The only difference from [examples/intellij-plugin](../intellij-plugin) is that -this version does not bundle Compose runtime, which makes the plugin smaller -and allows sharing Compose runtime between multiple plugins -(Compose class files and native libraries are not loaded by each plugin). - -### Usage - -1. Start test IDE: - * Run the following command in terminal: `./gradlew runIde` - * Or choose **runIde** configuration in IDE and run it. - ![ide-run-configuration.png](screenshots/ide-run-configuration.png) -2. Create a new project or open any existing; -3. Select `Show Compose Demo...` from the `Tools` menu. - -![screen1](../intellij-plugin/screenshots/toolsshow.png) -![screen2](../intellij-plugin/screenshots/screenshot.png) diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/build.gradle.kts b/experimental/examples/intellij-plugin-with-experimental-shared-base/build.gradle.kts deleted file mode 100644 index 5cc4674c24e..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/build.gradle.kts +++ /dev/null @@ -1,38 +0,0 @@ -import org.jetbrains.compose.compose - -plugins { - id("org.jetbrains.intellij") version "1.6.0" - java - kotlin("jvm") - id("org.jetbrains.compose") - id("idea") -} - -group = "org.jetbrains.compose.intellij.platform" -version = "1.0-SNAPSHOT" - -repositories { - mavenCentral() - google() - maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } -} - -dependencies { -// compileOnly(compose.desktop.currentOs) runtime dependency is provided by org.jetbrains.compose.intellij.platform - testImplementation(kotlin("test")) -} - -// See https://github.com/JetBrains/gradle-intellij-plugin/ -intellij { - version.set("2021.3") - plugins.set( - listOf( - "org.jetbrains.compose.intellij.platform:0.1.0", - "org.jetbrains.kotlin" - ) - ) -} - -tasks.withType { - kotlinOptions.jvmTarget = "11" -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle.properties b/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle.properties deleted file mode 100644 index 121b219d4e4..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle.properties +++ /dev/null @@ -1,5 +0,0 @@ -kotlin.stdlib.default.dependency=false -kotlin.code.style=official -kotlin.version=1.8.0 -compose.version=1.3.0 - diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle/wrapper/gradle-wrapper.jar b/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 62d4c053550..00000000000 Binary files a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle/wrapper/gradle-wrapper.properties b/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index ae04661ee73..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradlew b/experimental/examples/intellij-plugin-with-experimental-shared-base/gradlew deleted file mode 100755 index 4f906e0c811..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/gradlew +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/screenshots/ide-run-configuration.png b/experimental/examples/intellij-plugin-with-experimental-shared-base/screenshots/ide-run-configuration.png deleted file mode 100644 index 9dc9453a387..00000000000 Binary files a/experimental/examples/intellij-plugin-with-experimental-shared-base/screenshots/ide-run-configuration.png and /dev/null differ diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/settings.gradle.kts b/experimental/examples/intellij-plugin-with-experimental-shared-base/settings.gradle.kts deleted file mode 100644 index dd1ac3675a4..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/settings.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -rootProject.name = "ComposeDemoPlugin" - -pluginManagement { - plugins { - kotlin("jvm").version(extra["kotlin.version"] as String) - id("org.jetbrains.compose").version(extra["compose.version"] as String) - } -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/ComposeDemoAction.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/ComposeDemoAction.kt deleted file mode 100644 index 581c8cbe914..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/ComposeDemoAction.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.jetbrains.compose - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Surface -import androidx.compose.ui.Modifier -import androidx.compose.ui.awt.ComposePanel -import androidx.compose.ui.layout.Layout -import androidx.compose.ui.layout.MeasurePolicy -import androidx.compose.ui.layout.onGloballyPositioned -import com.intellij.openapi.actionSystem.AnActionEvent -import com.intellij.openapi.project.DumbAwareAction -import com.intellij.openapi.project.Project -import com.intellij.openapi.ui.DialogWrapper -import com.jetbrains.compose.theme.WidgetTheme -import com.jetbrains.compose.widgets.Buttons -import com.jetbrains.compose.widgets.LazyScrollable -import com.jetbrains.compose.widgets.Loaders -import com.jetbrains.compose.widgets.TextInputs -import com.jetbrains.compose.widgets.Toggles -import java.awt.Dimension -import javax.swing.JComponent -import javax.swing.SwingUtilities - - -/** - * @author Konstantin Bulenkov - */ -class ComposeDemoAction : DumbAwareAction() { - override fun actionPerformed(e: AnActionEvent) { - DemoDialog(e.project).show() - } - - class DemoDialog(project: Project?) : DialogWrapper(project) { - init { - title = "Demo" - init() - } - - override fun createCenterPanel(): JComponent { - return ComposePanel().apply { - setBounds(0, 0, 800, 600) - setContent { - WidgetTheme(darkTheme = true) { - Surface(modifier = Modifier.fillMaxSize()) { - Row { - Column( - modifier = Modifier.fillMaxHeight().weight(1f) - ) { - Buttons() - Loaders() - TextInputs() - Toggles() - } - Box( - modifier = Modifier.fillMaxHeight().weight(1f) - ) { - LazyScrollable() - } - } - } - } - } - } - } - } -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/IntellijTheme.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/IntellijTheme.kt deleted file mode 100644 index 8969581b721..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/IntellijTheme.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose - -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Surface -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import com.intellij.openapi.project.Project -import com.jetbrains.compose.theme.WidgetTheme -import org.intellij.datavis.r.inlays.components.GraphicsManager - -@Composable -fun IntellijTheme(project: Project, content: @Composable () -> Unit) { - val isDarkMode = try { - GraphicsManager.getInstance(project)?.isDarkModeEnabled ?: false - } catch (t: Throwable) { - false - } - WidgetTheme(darkTheme = isDarkMode) { - Surface(modifier = Modifier.fillMaxSize()) { - content() - } - } -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/ColorLineMarkerProvider.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/ColorLineMarkerProvider.kt deleted file mode 100644 index 1ab8977c621..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/ColorLineMarkerProvider.kt +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.color - -import androidx.compose.runtime.mutableStateOf -import androidx.compose.ui.awt.ComposePanel -import androidx.compose.ui.graphics.Color -import com.intellij.codeInsight.daemon.LineMarkerInfo -import com.intellij.codeInsight.daemon.LineMarkerProvider -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.editor.markup.GutterIconRenderer -import com.intellij.openapi.ui.DialogWrapper -import com.intellij.psi.PsiElement -import com.jetbrains.compose.IntellijTheme -import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.uast.* -import java.awt.Component -import java.awt.Graphics -import javax.swing.Icon -import javax.swing.JComponent - -class ColorLineMarkerProvider : LineMarkerProvider { - - override fun getLineMarkerInfo(element: PsiElement): LineMarkerInfo<*>? { - val project = element.project - val ktPsiFactory = KtPsiFactory(project) - val uElement: UElement = element.toUElement() ?: return null - if (uElement is UCallExpression) { - if (uElement.kind == UastCallKind.METHOD_CALL && uElement.methodIdentifier?.name == "Color") { - val colorLongValue = (uElement.valueArguments.firstOrNull() as? ULiteralExpression)?.getLongValue() - val previousColor = try { - Color(colorLongValue!!) - } catch (t: Throwable) { - Color(0xffffffff) - } - - val iconSize = 20 - return LineMarkerInfo( - element, - element.textRange, - object : Icon { - override fun paintIcon(c: Component?, g: Graphics?, x: Int, y: Int) { - g?.color = java.awt.Color( - previousColor.red, - previousColor.green, - previousColor.blue, - previousColor.alpha - ) - g?.fillRect(0, 0, iconSize, iconSize) - } - - override fun getIconWidth(): Int = iconSize - override fun getIconHeight(): Int = iconSize - }, - null, - { _, psiElement: PsiElement -> - - - class ChooseColorDialog() : DialogWrapper(project) { - val colorState = mutableStateOf(previousColor) - - init { - title = "Choose color" - init() - } - - override fun createCenterPanel(): JComponent = - ComposePanel().apply { - setBounds(0, 0, 400, 400) - setContent { - IntellijTheme(project) { - ColorPicker(colorState) - } - } - } - } - - val chooseColorDialog = ChooseColorDialog() - val result = chooseColorDialog.showAndGet() - if (result) { - val color = chooseColorDialog.colorState.value - ApplicationManager.getApplication().runWriteAction { - psiElement.replace( - ktPsiFactory.createExpression( - "Color(${color.toHexString()})" - ) - ) - } - } - }, - GutterIconRenderer.Alignment.RIGHT, - { "change color literal" } - ) - } - } - return null - } - - override fun collectSlowLineMarkers( - elements: MutableList, - result: MutableCollection> - ) { - - } -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/ColorPicker.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/ColorPicker.kt deleted file mode 100644 index 9ef49add6ed..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/ColorPicker.kt +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.color - -import androidx.compose.foundation.Canvas -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.* -import androidx.compose.material.Divider -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.drawscope.Stroke -import androidx.compose.ui.graphics.toArgb -import androidx.compose.ui.input.pointer.isPrimaryPressed -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.unit.dp - -private const val VALUE_BAND_RATIO = 0.07f -private val DEFAULT_COLORS = - listOf(Color.Red, Color.Green, Color.Blue, Color.Black, Color.Gray, Color.Yellow, Color.Cyan, Color.Magenta) - -@Composable -fun ColorPicker(colorState: MutableState) { - var currentColor: Color by remember { colorState } - Column { - Row { - DEFAULT_COLORS.forEach { - Box(Modifier.size(30.dp).background(color = it).clickable { - currentColor = it - }) - } - } - Divider(Modifier.size(2.dp)) - Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { - Text("Result color:") - Divider(Modifier.size(2.dp)) - TextField(modifier = Modifier.width(120f.dp), value = currentColor.toHexString(), onValueChange = {}) - Divider(Modifier.size(2.dp)) - val size = 60f - Box(Modifier.size(size.dp).background(color = currentColor)) - } - Divider(Modifier.size(2.dp)) - var width by remember { mutableStateOf(300) } - var height by remember { mutableStateOf(256) } - val rainbowWidth by derivedStateOf { (width * (1 - VALUE_BAND_RATIO)).toInt() } - val bandWidth by derivedStateOf { width * VALUE_BAND_RATIO } - fun calcHue(x: Float) = limit0to1(x / rainbowWidth) * HSV.HUE_MAX_VALUE - fun calcSaturation(y: Float) = 1 - limit0to1(y / height) - fun calcValue(y: Float) = 1 - limit0to1(y / height) - Row(Modifier.fillMaxSize()) { - Canvas(Modifier.fillMaxSize().pointerInput(Unit) { - width = size.width - height = size.height - awaitPointerEventScope { - while (true) { - val event = awaitPointerEvent() - if (event.buttons.isPrimaryPressed) { - val position = event.changes.first().position - if (position.x < rainbowWidth) { - currentColor = try { - currentColor.toHsv().copy( - hue = calcHue(position.x), - saturation = calcSaturation(position.y) - ).toRgb() - } catch (t: Throwable) { - t.printStackTrace() - println("exception $t") - currentColor - } - } else { - currentColor = - currentColor.toHsv().copy( - value = calcValue(position.y) - ).toRgb() - } - } - } - } - }) { - for (x in 0..rainbowWidth) { - for (y in 0..height) { - drawRect( - color = currentColor.toHsv().copy( - hue = calcHue(x.toFloat()), - saturation = calcSaturation(y.toFloat()) - ).toRgb(), - topLeft = Offset(x.toFloat(), y.toFloat()), - size = Size(1f, 1f) - ) - } - } - val valueBandX = rainbowWidth + 1 - for (y in 0..height) { - drawRect( - color = currentColor.toHsv().copy(value = calcValue(y.toFloat())).toRgb(), - topLeft = Offset(valueBandX.toFloat(), y.toFloat()), - size = Size(bandWidth, 1f) - ) - } - val circleX = (currentColor.toHsv().hue / 360) * rainbowWidth - val circleY = (1 - currentColor.toHsv().saturation) * height - drawCircle( - center = Offset(circleX, circleY), - color = Color.Black, - radius = 5f, - style = Stroke(width = 3f) - ) - } - } - } -} - -fun Color.toHexString() = "0x" + toArgb().toUInt().toString(16) -fun limit(value: Float, min: Float, max: Float) = minOf( - maxOf(value, min), - max -) - -fun limit0to1(value: Float) = limit(value = value, 0f, 1f) diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/HSV.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/HSV.kt deleted file mode 100644 index 86fef306c41..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/color/HSV.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.color - -import androidx.compose.ui.graphics.Color -import kotlin.math.abs - -data class HSV( - /** - * 0.0 .. 360.0 - */ - val hue: Float, - /** - * 0.0 .. 1.0 - */ - val saturation: Float, - /** - * 0.0 . 1.0¬ - */ - val value: Float -) { - companion object { - const val HUE_MAX_VALUE = 360f - } -} - -/** - * Convert to HSV color space - * https://www.rapidtables.com/convert/color/rgb-to-hsv.html - */ -fun Color.toHsv(): HSV { - val max = maxOf(red, green, blue) - val min = minOf(red, green, blue) - val delta = max - min - val h = when { - delta == 0f -> 0f - max == red -> 60 * ((green - blue) / delta).mod(6f) - max == green -> 60 * ((blue - red) / delta + 2) - max == blue -> 60 * ((red - green) / delta + 4) - else -> 0f - } - val s = when { - max == 0f -> 0f - else -> delta / max - } - val v = max - return HSV( - hue = h, - saturation = s, - value = v - ) -} - -/** - * Convert to RGB color space - * https://www.rapidtables.com/convert/color/hsv-to-rgb.html - */ -fun HSV.toRgb(): Color { - val c = value * saturation - val x = minOf(c * (1 - abs((hue / 60).mod(2f) - 1)), 1f) - val m = value - c - val tempColor = when { - hue >= 0 && hue < 60 -> Color(c, x, 0f) - hue >= 60 && hue < 120 -> Color(x, c, 0f) - hue >= 120 && hue < 180 -> Color(0f, c, x) - hue >= 180 && hue < 240 -> Color(0f, x, c) - hue >= 240 && hue < 300 -> Color(x, 0f, c) - else -> Color(c, 0f, x) - } - return Color(minOf(m + tempColor.red, 1f), minOf(m + tempColor.green, 1f), minOf(m + tempColor.blue, 1f)) -} - diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/ComposeToolWindow.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/ComposeToolWindow.kt deleted file mode 100644 index c7e66f37c9b..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/ComposeToolWindow.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.panel - -import androidx.compose.runtime.mutableStateOf -import androidx.compose.ui.awt.ComposePanel -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.project.DumbAware -import com.intellij.openapi.project.Project -import com.intellij.openapi.wm.ToolWindow -import com.intellij.openapi.wm.ToolWindowFactory -import com.intellij.ui.content.ContentFactory -import com.jetbrains.compose.IntellijTheme -import java.awt.Dimension - -class ComposeToolWindow : ToolWindowFactory, DumbAware { - - override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) { - ApplicationManager.getApplication().invokeLater { - toolWindow.contentManager.addContent( - ContentFactory.SERVICE.getInstance().createContent( - ComposePanel().apply { - size = Dimension(300, 300) - setContent { - IntellijTheme(project) { - CounterPanel(stateWithIdeLifecycle) - } - } - }, - "Compose tool window", - false - ) - ) - } - } - - companion object { - val stateWithIdeLifecycle = mutableStateOf(CounterState()) - } - -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/CounterPanel.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/CounterPanel.kt deleted file mode 100644 index 24be64a9f97..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/CounterPanel.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.panel - -import androidx.compose.foundation.layout.Column -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.* - -@Composable -fun CounterPanel(stateWithIdeLifecycle: MutableState) { - var stateInline by remember { mutableStateOf(CounterState()) } - Column { - Text("Counter with IDE lifecycle: ${stateWithIdeLifecycle.value.counter}") - Button(onClick = { - stateWithIdeLifecycle.value = stateWithIdeLifecycle.value.copy( - counter = stateWithIdeLifecycle.value.counter + 1 - ) - }) { - Text("Increment state with IDE lifecycle") - } - Text("Counter with @Composable lifecycle: ${stateInline.counter}") - Button(onClick = { - stateInline = stateInline.copy( - counter = stateInline.counter + 1 - ) - }) { - Text("Increment state with @Composable lifecycle") - } - } -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/CounterState.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/CounterState.kt deleted file mode 100644 index 5466e579f90..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/panel/CounterState.kt +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.panel - -data class CounterState( - val counter: Int = 0 -) diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Color.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Color.kt deleted file mode 100644 index 9ed4581b850..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Color.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.ui.graphics.Color - -val green200 = Color(0xffa5d6a7) -val green500 = Color(0xff4caf50) -val green700 = Color(0xff388e3c) - -val teal200 = Color(0xff80deea) diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Shape.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Shape.kt deleted file mode 100644 index 3ac8795fc70..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Shape.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Shapes -import androidx.compose.ui.unit.dp - -val shapes = Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(4.dp), - large = RoundedCornerShape(0.dp) -) \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Theme.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Theme.kt deleted file mode 100644 index 78a3ec5181f..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Theme.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.material.MaterialTheme -import androidx.compose.material.darkColors -import androidx.compose.material.lightColors -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color -import com.jetbrains.compose.theme.intellij.SwingColor - -private val DarkGreenColorPalette = darkColors( - primary = green200, - primaryVariant = green700, - secondary = teal200, - onPrimary = Color.Black, - onSecondary = Color.White, - error = Color.Red, -) - -private val LightGreenColorPalette = lightColors( - primary = green500, - primaryVariant = green700, - secondary = teal200, - onPrimary = Color.White, - onSurface = Color.Black -) - -@Composable -fun WidgetTheme( - darkTheme: Boolean = false, - content: @Composable() () -> Unit, -) { - val colors = if (darkTheme) DarkGreenColorPalette else LightGreenColorPalette - val swingColor = SwingColor() - - MaterialTheme( - colors = colors.copy( - background = swingColor.background, - onBackground = swingColor.onBackground, - surface = swingColor.background, - onSurface = swingColor.onBackground, - ), - typography = typography, - shapes = shapes, - content = content - ) -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Type.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Type.kt deleted file mode 100644 index 4bc429afa8f..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/Type.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.jetbrains.compose.theme - -import androidx.compose.material.Typography -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp - -val typography = Typography( - body1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ), - body2 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 14.sp - ), - button = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.W500, - fontSize = 14.sp - ), - caption = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 12.sp, - ), - subtitle1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - color = Color.Gray - ), - subtitle2 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 14.sp, - color = Color.Gray - ), -) \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/intellij/SwingColor.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/intellij/SwingColor.kt deleted file mode 100644 index 0aac1aaf505..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/intellij/SwingColor.kt +++ /dev/null @@ -1,61 +0,0 @@ -package com.jetbrains.compose.theme.intellij - -import androidx.compose.runtime.* -import androidx.compose.ui.graphics.Color -import com.intellij.ide.ui.LafManagerListener -import com.intellij.openapi.application.ApplicationManager -import javax.swing.UIManager -import java.awt.Color as AWTColor - -interface SwingColor { - val background: Color - val onBackground: Color -} - -@Composable -fun SwingColor(): SwingColor { - val swingColor = remember { SwingColorImpl() } - - val messageBus = remember { - ApplicationManager.getApplication().messageBus.connect() - } - - remember(messageBus) { - messageBus.subscribe( - LafManagerListener.TOPIC, - ThemeChangeListener(swingColor::updateCurrentColors) - ) - } - - DisposableEffect(messageBus) { - onDispose { - messageBus.disconnect() - } - } - - return swingColor -} - -private class SwingColorImpl : SwingColor { - private val _backgroundState: MutableState = mutableStateOf(getBackgroundColor) - private val _onBackgroundState: MutableState = mutableStateOf(getOnBackgroundColor) - - override val background: Color get() = _backgroundState.value - override val onBackground: Color get() = _onBackgroundState.value - - private val getBackgroundColor get() = getColor(BACKGROUND_KEY) - private val getOnBackgroundColor get() = getColor(ON_BACKGROUND_KEY) - - fun updateCurrentColors() { - _backgroundState.value = getBackgroundColor - _onBackgroundState.value = getOnBackgroundColor - } - - private val AWTColor.asComposeColor: Color get() = Color(red, green, blue, alpha) - private fun getColor(key: String): Color = UIManager.getColor(key).asComposeColor - - companion object { - private const val BACKGROUND_KEY = "Panel.background" - private const val ON_BACKGROUND_KEY = "Panel.foreground" - } -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/intellij/ThemeChangeListener.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/intellij/ThemeChangeListener.kt deleted file mode 100644 index 95a83241141..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/theme/intellij/ThemeChangeListener.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.jetbrains.compose.theme.intellij - -import com.intellij.ide.ui.LafManager -import com.intellij.ide.ui.LafManagerListener - -internal class ThemeChangeListener( - val updateColors: () -> Unit -) : LafManagerListener { - override fun lookAndFeelChanged(source: LafManager) { - updateColors() - } -} - diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Buttons.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Buttons.kt deleted file mode 100644 index 89fc8c2c112..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Buttons.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.TextButton -import androidx.compose.material.OutlinedButton -import androidx.compose.material.Text -import androidx.compose.material.Icon -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.FavoriteBorder -import androidx.compose.material.icons.filled.Refresh -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun Buttons() { - Row { - val btnEnabled = remember { mutableStateOf(true) } - Button( - onClick = { btnEnabled.value = !btnEnabled.value}, - modifier = Modifier.padding(8.dp), - enabled = btnEnabled.value - ) { - Icon( - imageVector = Icons.Default.FavoriteBorder, - contentDescription = "FavoriteBorder", - modifier = Modifier.padding(end = 4.dp) - ) - Text(text = "Button") - } - val btnTextEnabled = remember { mutableStateOf(true) } - TextButton( - onClick = { btnTextEnabled.value = !btnTextEnabled.value }, - modifier = Modifier.padding(8.dp), - enabled = btnTextEnabled.value - ) { - Text(text = "Text Button") - } - OutlinedButton( - onClick = { - btnEnabled.value = true - btnTextEnabled.value = true - }, - modifier = Modifier.padding(8.dp) - ) { - Icon( - imageVector = Icons.Default.Refresh, - contentDescription = "Refresh", - modifier = Modifier.padding(0.dp) - ) - } - } -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/LazyScrollable.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/LazyScrollable.kt deleted file mode 100644 index e5bba421a05..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/LazyScrollable.kt +++ /dev/null @@ -1,71 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.desktop.DesktopTheme -import androidx.compose.foundation.background -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.VerticalScrollbar -import androidx.compose.material.Text -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun LazyScrollable() { - MaterialTheme { - DesktopTheme { - Box( - modifier = Modifier.fillMaxSize() - .padding(10.dp) - ) { - - val state = rememberLazyListState() - val itemCount = 100 - - LazyColumn(Modifier.fillMaxSize().padding(end = 12.dp), state) { - items(itemCount) { x -> - TextBox("Item in ScrollableColumn #$x") - Spacer(modifier = Modifier.height(5.dp)) - } - } - VerticalScrollbar( - modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(), - adapter = rememberScrollbarAdapter( - scrollState = state - ) - ) - } - } - } -} - -@Composable -private fun TextBox(text: String = "Item") { - Surface( - color = Color(135, 135, 135, 40), - shape = RoundedCornerShape(4.dp) - ) { - Box( - modifier = Modifier.height(32.dp) - .fillMaxWidth() - .padding(start = 10.dp), - contentAlignment = Alignment.CenterStart - ) { - Text(text = text) - } - } -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Loaders.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Loaders.kt deleted file mode 100644 index a18252459b2..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Loaders.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.size -import androidx.compose.material.CircularProgressIndicator -import androidx.compose.material.LinearProgressIndicator -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun Loaders() { - Row( - modifier = Modifier.fillMaxWidth().padding(16.dp) - ) { - Box( - modifier = Modifier.height(30.dp), - contentAlignment = Alignment.Center - ) { - CircularProgressIndicator( - modifier = Modifier.size(20.dp, 20.dp), - strokeWidth = 4.dp - ) - } - Box( - modifier = Modifier - .height(30.dp) - .padding(start = 8.dp), - contentAlignment = Alignment.Center - ) { - LinearProgressIndicator(modifier = Modifier.fillMaxWidth()) - } - } -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/TextInputs.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/TextInputs.kt deleted file mode 100644 index 5ca7a9aad67..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/TextInputs.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.material.OutlinedTextField -import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.text.input.TextFieldValue -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.unit.dp - -@Composable -fun TextInputs() { - Column( - modifier = Modifier.fillMaxWidth().padding(16.dp) - ) { - var name by remember { mutableStateOf(TextFieldValue("")) } - var password by remember { mutableStateOf(TextFieldValue("")) } - - TextField( - value = name, - onValueChange = { newValue -> name = newValue }, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - textStyle = TextStyle(fontFamily = FontFamily.SansSerif), - label = { Text("Account:") }, - placeholder = { Text("account name") } - ) - - OutlinedTextField( - value = password, - modifier = Modifier.padding(8.dp).fillMaxWidth(), - label = { Text(text = "Password:") }, - placeholder = { Text(text = "your password") }, - textStyle = TextStyle(fontFamily = FontFamily.SansSerif), - visualTransformation = PasswordVisualTransformation(), - onValueChange = { - password = it - }, - keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password) - ) - } -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Toggles.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Toggles.kt deleted file mode 100644 index b4a7febac20..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/kotlin/com/jetbrains/compose/widgets/Toggles.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.jetbrains.compose.widgets - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Checkbox -import androidx.compose.material.MaterialTheme -import androidx.compose.material.RadioButton -import androidx.compose.material.Slider -import androidx.compose.material.Switch -import androidx.compose.material.SwitchDefaults -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun Toggles() { - Column { - Row { - Column( - modifier = Modifier.padding(16.dp) - ) { - var checked by remember { mutableStateOf(true) } - Checkbox( - checked = checked, - modifier = Modifier.padding(8.dp), - onCheckedChange = { checked = !checked } - ) - var switched by remember { mutableStateOf(true) } - Switch( - checked = switched, - colors = SwitchDefaults.colors(checkedThumbColor = MaterialTheme.colors.primary), - modifier = Modifier.padding(8.dp), - onCheckedChange = { switched = it } - ) - } - Column( - modifier = Modifier.padding(16.dp) - ) { - var selected by remember { mutableStateOf("Kotlin") } - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == "Kotlin", onClick = { selected = "Kotlin" }) - Text( - text = "Kotlin", - modifier = Modifier.clickable(onClick = { selected = "Kotlin" }).padding(start = 4.dp) - ) - } - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == "Java", onClick = { selected = "Java" }) - Text( - text = "Java", - modifier = Modifier.clickable(onClick = { selected = "Java" }).padding(start = 4.dp) - ) - } - Row(verticalAlignment = Alignment.CenterVertically) { - RadioButton(selected = selected == "Swift", onClick = { selected = "Swift" }) - Text( - text = "Swift", - modifier = Modifier.clickable(onClick = { selected = "Swift" }).padding(start = 4.dp) - ) - } - } - } - - var sliderState by remember { mutableStateOf(0f) } - Slider(value = sliderState, modifier = Modifier.fillMaxWidth().padding(8.dp), - onValueChange = { newValue -> - sliderState = newValue - } - ) - - var sliderState2 by remember { mutableStateOf(20f) } - Slider(value = sliderState2, modifier = Modifier.fillMaxWidth().padding(8.dp), - valueRange = 0f..100f, - steps = 5, - onValueChange = { newValue -> - sliderState2 = newValue - } - ) - } -} \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/resources/META-INF/plugin.xml b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/resources/META-INF/plugin.xml deleted file mode 100644 index 5932048466d..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/resources/META-INF/plugin.xml +++ /dev/null @@ -1,29 +0,0 @@ - - com.jetbrains.ComposeDemoPlugin - Jetpack Compose for Desktop Demo - JetBrains - - - - - com.intellij.modules.platform - org.jetbrains.compose.intellij.platform - org.jetbrains.kotlin - - - - - - - - - - - - - \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/resources/icons/compose.svg b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/resources/icons/compose.svg deleted file mode 100644 index 2154d497bd6..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/main/resources/icons/compose.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/test/kotlin/com/jetbrains/compose/color/ColorPickerUITest.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/test/kotlin/com/jetbrains/compose/color/ColorPickerUITest.kt deleted file mode 100644 index 68ca6d2387a..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/test/kotlin/com/jetbrains/compose/color/ColorPickerUITest.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.color - -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.WindowState -import androidx.compose.ui.window.application - -fun main() = application { - val windowState = remember { WindowState(width = 400.dp, height = 400.dp) } - Window( - onCloseRequest = ::exitApplication, - title = "ColorPicker", - state = windowState - ) { - ColorPicker(mutableStateOf(Color(0xffaabbcc))) - } -} diff --git a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/test/kotlin/com/jetbrains/compose/color/HSVTest.kt b/experimental/examples/intellij-plugin-with-experimental-shared-base/src/test/kotlin/com/jetbrains/compose/color/HSVTest.kt deleted file mode 100644 index b1c491b1fe8..00000000000 --- a/experimental/examples/intellij-plugin-with-experimental-shared-base/src/test/kotlin/com/jetbrains/compose/color/HSVTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package com.jetbrains.compose.color - -import androidx.compose.ui.graphics.Color -import org.junit.Test -import kotlin.test.assertEquals - -class HSVTest { - - @Test - fun testGreenToHsv() { - val greenRgb = Color(0xff00ff00) - val result = greenRgb.toHsv() - assertEquals(HSV(120f, 1f, 1f), result) - assertEquals(greenRgb, result.toRgb()) - } - -} diff --git a/experimental/lwjgl-integration/gradle/wrapper/gradle-wrapper.properties b/experimental/lwjgl-integration/gradle/wrapper/gradle-wrapper.properties index 05679dc3c18..37f853b1c84 100644 --- a/experimental/lwjgl-integration/gradle/wrapper/gradle-wrapper.properties +++ b/experimental/lwjgl-integration/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradle-plugins/build.gradle.kts b/gradle-plugins/build.gradle.kts index c8fc305495b..f45392c1089 100644 --- a/gradle-plugins/build.gradle.kts +++ b/gradle-plugins/build.gradle.kts @@ -1,4 +1,5 @@ -import com.gradle.publish.PluginBundleExtension +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { @@ -16,12 +17,13 @@ subprojects { mavenCentral() google() mavenLocal() + maven("https://packages.jetbrains.team/maven/p/kt/dev") } plugins.withId("java") { configureIfExists { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 withJavadocJar() withSourcesJar() @@ -30,11 +32,14 @@ subprojects { plugins.withId("org.jetbrains.kotlin.jvm") { tasks.withType(KotlinJvmCompile::class).configureEach { - // must be set to a language version of the kotlin compiler & runtime, - // which is bundled to the oldest supported Gradle - kotlinOptions.languageVersion = "1.5" - kotlinOptions.apiVersion = "1.5" - kotlinOptions.jvmTarget = "1.8" + compilerOptions { + // must be set to a language version of the kotlin compiler & runtime, + // which is bundled to the oldest supported Gradle + // https://docs.gradle.org/current/userguide/compatibility.html#kotlin + languageVersion.set(KotlinVersion.KOTLIN_2_0) + apiVersion.set(KotlinVersion.KOTLIN_2_0) + jvmTarget.set(JvmTarget.JVM_11) + } } } diff --git a/gradle-plugins/buildSrc/src/main/kotlin/BuildProperties.kt b/gradle-plugins/buildSrc/src/main/kotlin/BuildProperties.kt index 2d0e3e1711c..70c123b125d 100644 --- a/gradle-plugins/buildSrc/src/main/kotlin/BuildProperties.kt +++ b/gradle-plugins/buildSrc/src/main/kotlin/BuildProperties.kt @@ -14,6 +14,8 @@ object BuildProperties { fun composeVersion(project: Project): String = System.getenv("COMPOSE_GRADLE_PLUGIN_COMPOSE_VERSION") ?: project.findProperty("compose.version") as String + fun composeMaterial3Version(project: Project): String = + project.findProperty("compose.material3.version") as String fun testsAndroidxCompilerVersion(project: Project): String = project.findProperty("compose.tests.androidx.compiler.version") as String fun testsAndroidxCompilerCompatibleVersion(project: Project): String = diff --git a/gradle-plugins/buildSrc/src/main/kotlin/printAllAndroidxReplacements.kt b/gradle-plugins/buildSrc/src/main/kotlin/printAllAndroidxReplacements.kt deleted file mode 100644 index a73525a04e1..00000000000 --- a/gradle-plugins/buildSrc/src/main/kotlin/printAllAndroidxReplacements.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -import io.ktor.client.* -import io.ktor.client.request.* -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.collect -import kotlinx.coroutines.flow.filter -import kotlinx.coroutines.flow.flow -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.runBlocking -import org.gradle.api.Project - -private const val libsRepo = "https://maven.pkg.jetbrains.space/public/p/compose/dev/org/jetbrains/compose/" -private val exceptions = listOf( - "desktop:desktop", - "compose-full", - "compose-gradle-plugin" -) - -fun Project.printAllAndroidxReplacements() = runBlocking { - val version = BuildProperties.composeVersion(project) - HttpClient().use { client -> - client - .allRecursiveFolders(libsRepo) - .map { it.removePrefix(libsRepo).removeSuffix("/") } - .filter { it.endsWith(version) } - .map { it.removeSuffix(version).removeSuffix("/") } - .map { it.replace("/", ":") } - .filter { !it.endsWith("-android") } - .filter { !it.endsWith("-android-debug") } - .filter { !it.endsWith("-android-release") } - .filter { !it.endsWith("-metadata") } - .filter { !it.endsWith("-desktop") } - .filter { !it.contains("-jvm") } - .filter { !exceptions.contains(it) } - .collect { - require(isMavenCoordsValid(it)) { - "module name isn't valid: $it" - } - println("it.replaceAndroidx(\"androidx.compose.$it\", \"org.jetbrains.compose.$it\")") - } - } -} - -private fun isMavenCoordsValid(coords: String) = coords.count { it == ':' } == 1 - -private fun HttpClient.allRecursiveFolders( - url: String -): Flow = flow { - require(url.endsWith("/")) - val response = get(url) - val folders = parseFolders(response) - for (folder in folders) { - emit("$url$folder/") - } - for (folder in folders.filter(String::isMavenPart)) { - allRecursiveFolders("$url$folder/").collect(::emit) - } -} - -private fun parseFolders( - htmlResponse: String -): Sequence = Regex("title=\"(.*?)\"") - .findAll(htmlResponse) - .map { it.groupValues[1] } - .filter { it.endsWith("/") && it != "../" } - .map { it.removeSuffix("/") } - -private fun String.isMavenPart() = all { it.isLetterOrDigit() || it == '-' } \ No newline at end of file diff --git a/gradle-plugins/compose/build.gradle.kts b/gradle-plugins/compose/build.gradle.kts index b49fe5f0e61..ab8c77c1e52 100644 --- a/gradle-plugins/compose/build.gradle.kts +++ b/gradle-plugins/compose/build.gradle.kts @@ -29,7 +29,9 @@ val buildConfig = tasks.register("buildConfig", GenerateBuildConfig::class.java) classFqName.set("org.jetbrains.compose.ComposeBuildConfig") generatedOutputDir.set(buildConfigDir) fieldsToGenerate.put("composeVersion", BuildProperties.composeVersion(project)) + fieldsToGenerate.put("composeMaterial3Version", BuildProperties.composeMaterial3Version(project)) fieldsToGenerate.put("composeGradlePluginVersion", BuildProperties.deployVersion(project)) + fieldsToGenerate.put("composeHotReloadVersion", libs.plugin.hot.reload.get().version) } tasks.named("compileKotlin", KotlinCompilationTask::class) { dependsOn(buildConfig) @@ -43,12 +45,6 @@ val embeddedDependencies by configurations.creating { isTransitive = false } -val kgpResourcesDevVersion = "2.0.0-dev-17632" -//KMP resources API available since ^kgpResourcesDevVersion -repositories { - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") -} - dependencies { // By default, Gradle resolves plugins only via Gradle Plugin Portal. // To avoid declaring an additional repo, all dependencies must: @@ -61,9 +57,19 @@ dependencies { embeddedDependencies(dep) } + fun hotReloadDep(dep: Any) { + // We need to explicitly depend on the Hot Reload Gradle plugin to be able to apply it by id. + // Thus, we need to publish the dependency in the resulting .pom/.module files. + // Other dependencies are embedded, so we use `shadow` for the publication. + shadow(dep) + + // we still need `runtimeOnly` because `gradle-plugin` is included in the `components` project + runtimeOnly(dep) + } + compileOnly(gradleApi()) compileOnly(localGroovy()) - compileOnly(kotlin("gradle-plugin", kgpResourcesDevVersion)) + compileOnly(kotlin("gradle-plugin")) compileOnly(kotlin("native-utils")) compileOnly(libs.plugin.android) compileOnly(libs.plugin.android.api) @@ -76,6 +82,8 @@ dependencies { embedded(libs.kotlin.poet) embedded(project(":preview-rpc")) embedded(project(":jdk-version-probe")) + + hotReloadDep(libs.plugin.hot.reload) } val packagesToRelocate = listOf("de.undercouch", "com.squareup.kotlinpoet") @@ -100,6 +108,7 @@ val jar = tasks.named("jar") { val supportedGradleVersions = project.propertyList("compose.tests.gradle.versions") val supportedAgpVersions = project.propertyList("compose.tests.agp.versions") +val excludedGradleAgpVersions = project.propertyList("compose.tests.gradle-agp.exclude") fun Project.propertyList(name: String) = project.property(name).toString() @@ -181,9 +190,8 @@ for (gradleVersion in supportedGradleVersions) { * > Failed to apply plugin 'com.android.internal.version-check'. * > Minimum supported Gradle version is 8.2. Current version is 7.4. */ - val agpMajor = agpVersion.split('.').first().toInt() - val gradleMajor = gradleVersion.split('.').first().toInt() - onlyIf { agpMajor <= gradleMajor } + val isExcluded = excludedGradleAgpVersions.contains("$gradleVersion/$agpVersion") + onlyIf { !isExcluded } systemProperty("compose.tests.gradle.test.jdks.root", jdkForTestsRoot.absolutePath) systemProperty("compose.tests.gradle.version", gradleVersion) @@ -203,7 +211,3 @@ configureAllTests { systemProperty("compose.tests.summary.file", summaryDir.resolve("$name.md").absolutePath) systemProperties(project.properties.filter { it.key.startsWith("compose.") }) } - -task("printAllAndroidxReplacements") { - doLast { printAllAndroidxReplacements() } -} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/CheckComposeCompilerPlugin.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/CheckComposeCompilerPlugin.kt new file mode 100644 index 00000000000..c31565904cd --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/CheckComposeCompilerPlugin.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package org.jetbrains.compose + +import org.gradle.api.Project +import org.jetbrains.compose.internal.KOTLIN_ANDROID_PLUGIN_ID +import org.jetbrains.compose.internal.KOTLIN_JS_PLUGIN_ID +import org.jetbrains.compose.internal.KOTLIN_JVM_PLUGIN_ID +import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID +import org.jetbrains.compose.internal.Version +import org.jetbrains.compose.internal.ideaIsInSyncProvider +import org.jetbrains.kotlin.gradle.plugin.KotlinBasePlugin + +internal fun Project.checkComposeCompilerPlugin() { + //only one of them can be applied to the project + listOf( + KOTLIN_MPP_PLUGIN_ID, + KOTLIN_JVM_PLUGIN_ID, + KOTLIN_ANDROID_PLUGIN_ID, + KOTLIN_JS_PLUGIN_ID + ).forEach { pluginId -> + plugins.withId(pluginId) { plugin -> + checkComposeCompilerPlugin(plugin as KotlinBasePlugin) + } + } +} + +internal const val minimalSupportedKgpVersionError = "e: Configuration problem: " + + "Minimal supported Kotlin Gradle Plugin version is 2.0.0" +internal const val newCompilerIsAvailableVersion = "2.0.0" +internal const val newComposeCompilerKotlinSupportPluginId = "org.jetbrains.kotlin.plugin.compose" +internal const val newComposeCompilerError = + "Since Kotlin 2.0.0 to use Compose Multiplatform " + + "you must apply \"$newComposeCompilerKotlinSupportPluginId\" plugin." + + "\nSee the migration guide https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-compiler.html#migrating-a-compose-multiplatform-project" + +private fun Project.checkComposeCompilerPlugin(kgp: KotlinBasePlugin) { + val kgpVersion = kgp.pluginVersion + val ideaIsInSync = project.ideaIsInSyncProvider().get() + + if (Version.fromString(kgpVersion) < Version.fromString(newCompilerIsAvailableVersion)) { + if (ideaIsInSync) logger.error(minimalSupportedKgpVersionError) + else error(minimalSupportedKgpVersionError) + } else { + //There is no other way to check that the plugin WASN'T applied! + afterEvaluate { + logger.info("Check that new '$newComposeCompilerKotlinSupportPluginId' was applied") + if (!project.plugins.hasPlugin(newComposeCompilerKotlinSupportPluginId)) { + if (ideaIsInSync) logger.error("e: Configuration problem: $newComposeCompilerError") + else error("e: Configuration problem: $newComposeCompilerError") + } + } + } +} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerCompatibility.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerCompatibility.kt deleted file mode 100644 index b92424f0922..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerCompatibility.kt +++ /dev/null @@ -1,42 +0,0 @@ -package org.jetbrains.compose - -private const val KOTLIN_COMPATIBILITY_LINK = - "https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-compatibility-and-versioning.html" - -internal object ComposeCompilerCompatibility { - private val kotlinToCompiler = sortedMapOf( - "1.7.10" to "1.3.0", - "1.7.20" to "1.3.2.2", - "1.8.0" to "1.4.0", - "1.8.10" to "1.4.2", - "1.8.20" to "1.4.5", - "1.8.21" to "1.4.7", - "1.8.22" to "1.4.8", - "1.9.0-Beta" to "1.4.7.1-beta", - "1.9.0-RC" to "1.4.8-beta", - "1.9.0" to "1.5.1", - "1.9.10" to "1.5.2", - "1.9.20-Beta" to "1.5.2.1-Beta2", - "1.9.20-Beta2" to "1.5.2.1-Beta3", - "1.9.20-RC" to "1.5.2.1-rc01", - "1.9.20-RC2" to "1.5.3-rc01", - "1.9.20" to "1.5.3", - "1.9.21" to "1.5.4", - "1.9.22" to "1.5.8.1", - "1.9.23" to "1.5.13.5", - "1.9.24" to "1.5.14", - "2.0.0-Beta1" to "1.5.4-dev1-kt2.0.0-Beta1", - "2.0.0-Beta4" to "1.5.9-kt-2.0.0-Beta4", - "2.0.0-Beta5" to "1.5.11-kt-2.0.0-Beta5", - "2.0.0-RC1" to "1.5.11-kt-2.0.0-RC1", - ) - - fun compilerVersionFor(kotlinVersion: String): String { - return kotlinToCompiler[kotlinVersion] ?: throw RuntimeException( - "Compose Multiplatform ${ComposeBuildConfig.composeGradlePluginVersion} doesn't support Kotlin " + - "$kotlinVersion. " + - "Please see $KOTLIN_COMPATIBILITY_LINK " + - "to know the latest supported version of Kotlin." - ) - } -} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerKotlinSupportPlugin.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerKotlinSupportPlugin.kt deleted file mode 100644 index 4bc74bd0d81..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerKotlinSupportPlugin.kt +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose - -import org.gradle.api.Project -import org.gradle.api.provider.Provider -import org.jetbrains.compose.internal.ComposeCompilerArtifactProvider -import org.jetbrains.compose.internal.KOTLIN_ANDROID_PLUGIN_ID -import org.jetbrains.compose.internal.KOTLIN_JS_PLUGIN_ID -import org.jetbrains.compose.internal.KOTLIN_JVM_PLUGIN_ID -import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID -import org.jetbrains.compose.internal.Version -import org.jetbrains.compose.internal.ideaIsInSyncProvider -import org.jetbrains.compose.internal.mppExtOrNull -import org.jetbrains.compose.internal.service.ConfigurationProblemReporterService -import org.jetbrains.compose.internal.webExt -import org.jetbrains.kotlin.gradle.plugin.KotlinBasePlugin -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerPluginSupportPlugin -import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact -import org.jetbrains.kotlin.gradle.plugin.SubpluginOption -import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -internal fun Project.configureComposeCompilerPlugin() { - //only one of them can be applied to the project - listOf( - KOTLIN_MPP_PLUGIN_ID, - KOTLIN_JVM_PLUGIN_ID, - KOTLIN_ANDROID_PLUGIN_ID, - KOTLIN_JS_PLUGIN_ID - ).forEach { pluginId -> - plugins.withId(pluginId) { plugin -> - configureComposeCompilerPlugin(plugin as KotlinBasePlugin) - } - } -} - -internal const val newCompilerIsAvailableVersion = "2.0.0-RC2-238" -internal const val newComposeCompilerKotlinSupportPluginId = "org.jetbrains.kotlin.plugin.compose" -internal const val newComposeCompilerError = - "Since Kotlin 2.0.0-RC2 to use Compose Multiplatform " + - "you must apply \"$newComposeCompilerKotlinSupportPluginId\" plugin." + - "\nSee the migration guide https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-compiler.html#migrating-a-compose-multiplatform-project" - -private fun Project.configureComposeCompilerPlugin(kgp: KotlinBasePlugin) { - val kgpVersion = kgp.pluginVersion - - if (Version.fromString(kgpVersion) < Version.fromString(newCompilerIsAvailableVersion)) { - logger.info("Apply ComposeCompilerKotlinSupportPlugin (KGP version = $kgpVersion)") - project.plugins.apply(ComposeCompilerKotlinSupportPlugin::class.java) - } else { - //There is no other way to check that the plugin WASN'T applied! - afterEvaluate { - logger.info("Check that new '$newComposeCompilerKotlinSupportPluginId' was applied") - if (!project.plugins.hasPlugin(newComposeCompilerKotlinSupportPluginId)) { - val ideaIsInSync = project.ideaIsInSyncProvider().get() - if (ideaIsInSync) logger.error("e: Configuration problem: $newComposeCompilerError") - else error("e: Configuration problem: $newComposeCompilerError") - } - } - } -} - -class ComposeCompilerKotlinSupportPlugin : KotlinCompilerPluginSupportPlugin { - private lateinit var composeCompilerArtifactProvider: ComposeCompilerArtifactProvider - private lateinit var applicableForPlatformTypes: Provider> - - - override fun apply(target: Project) { - super.apply(target) - target.plugins.withType(ComposePlugin::class.java) { - val composeExt = target.extensions.getByType(ComposeExtension::class.java) - - composeCompilerArtifactProvider = ComposeCompilerArtifactProvider { - composeExt.kotlinCompilerPlugin.orNull ?: - ComposeCompilerCompatibility.compilerVersionFor(target.getKotlinPluginVersion()) - } - - applicableForPlatformTypes = composeExt.platformTypes - - collectUnsupportedCompilerPluginUsages(target) - } - } - - private fun collectUnsupportedCompilerPluginUsages(project: Project) { - fun Project.hasNonJvmTargets(): Boolean { - val nonJvmTargets = setOf(KotlinPlatformType.native, KotlinPlatformType.js, KotlinPlatformType.wasm) - return mppExtOrNull?.targets?.any { - it.platformType in nonJvmTargets - } ?: false - } - - fun SubpluginArtifact.isNonJBComposeCompiler(): Boolean { - return !groupId.startsWith("org.jetbrains.compose.compiler") - } - - ConfigurationProblemReporterService.registerUnsupportedPluginProvider( - project, - project.provider { - composeCompilerArtifactProvider.compilerArtifact.takeIf { - project.hasNonJvmTargets() && it.isNonJBComposeCompiler() - } - } - ) - } - - override fun getCompilerPluginId(): String = - "androidx.compose.compiler.plugins.kotlin" - - override fun getPluginArtifact(): SubpluginArtifact = - composeCompilerArtifactProvider.compilerArtifact - - override fun getPluginArtifactForNative(): SubpluginArtifact = - composeCompilerArtifactProvider.compilerHostedArtifact - - override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean { - val applicableTo = applicableForPlatformTypes.get() - - return when (val type = kotlinCompilation.target.platformType) { - KotlinPlatformType.js -> isApplicableJsTarget(kotlinCompilation.target) && applicableTo.contains(type) - else -> applicableTo.contains(type) - } - } - - private fun isApplicableJsTarget(kotlinTarget: KotlinTarget): Boolean { - if (kotlinTarget !is KotlinJsIrTarget) return false - - val project = kotlinTarget.project - val webExt = project.webExt ?: return false - - return kotlinTarget in webExt.targetsToConfigure(project) - } - - override fun applyToCompilation(kotlinCompilation: KotlinCompilation<*>): Provider> { - val target = kotlinCompilation.target - return target.project.provider { - platformPluginOptions[target.platformType] ?: emptyList() - } - } - - private val platformPluginOptions = mapOf( - KotlinPlatformType.js to options("generateDecoys" to "false"), - KotlinPlatformType.wasm to options("generateDecoys" to "false") - ) - - private fun options(vararg options: Pair): List = - options.map { SubpluginOption(it.first, it.second) } -} - -private const val COMPOSE_COMPILER_COMPATIBILITY_LINK = - "https://github.com/JetBrains/compose-jb/blob/master/VERSIONING.md#using-compose-multiplatform-compiler" - -internal fun createWarningAboutNonCompatibleCompiler(currentCompilerPluginGroupId: String): String { - return """ -WARNING: Usage of the Custom Compose Compiler plugin ('$currentCompilerPluginGroupId') -with non-JVM targets (Kotlin/Native, Kotlin/JS, Kotlin/WASM) is not supported. -For more information, please visit: $COMPOSE_COMPILER_COMPATIBILITY_LINK -""".trimMargin() -} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt index 086c529207b..34735fbcbd4 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt @@ -19,31 +19,22 @@ import org.jetbrains.compose.desktop.DesktopExtension import org.jetbrains.compose.desktop.application.internal.configureDesktop import org.jetbrains.compose.desktop.preview.internal.initializePreview import org.jetbrains.compose.experimental.dsl.ExperimentalExtension -import org.jetbrains.compose.experimental.internal.* -import org.jetbrains.compose.internal.* -import org.jetbrains.compose.internal.service.ConfigurationProblemReporterService -import org.jetbrains.compose.internal.service.GradlePropertySnapshotService +import org.jetbrains.compose.experimental.internal.configureExperimentalTargetsFlagsCheck +import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID +import org.jetbrains.compose.internal.mppExt import org.jetbrains.compose.internal.utils.currentTarget import org.jetbrains.compose.resources.ResourcesExtension import org.jetbrains.compose.resources.configureComposeResources import org.jetbrains.compose.web.WebExtension import org.jetbrains.compose.web.internal.configureWeb -import org.jetbrains.kotlin.com.github.gundy.semver4j.SemVer -import org.jetbrains.kotlin.gradle.dsl.KotlinCompile -import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile -import org.jetbrains.kotlin.gradle.plugin.* +import org.jetbrains.compose.web.tasks.configureWebCompatibility +import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler internal val composeVersion get() = ComposeBuildConfig.composeVersion - -private fun initBuildServices(project: Project) { - ConfigurationProblemReporterService.init(project) - GradlePropertySnapshotService.init(project) -} +internal val composeMaterial3Version get() = ComposeBuildConfig.composeMaterial3Version abstract class ComposePlugin : Plugin { override fun apply(project: Project) { - initBuildServices(project) - val composeExtension = project.extensions.create("compose", ComposeExtension::class.java, project) val desktopExtension = composeExtension.extensions.create("desktop", DesktopExtension::class.java) val androidExtension = composeExtension.extensions.create("android", AndroidExtension::class.java) @@ -59,11 +50,12 @@ abstract class ComposePlugin : Plugin { project.initializePreview(desktopExtension) composeExtension.extensions.create("web", WebExtension::class.java) - project.configureComposeCompilerPlugin() - project.configureNativeCompilerCaching() + project.checkComposeCompilerPlugin() project.configureComposeResources(resourcesExtension) + project.configureWebCompatibility() + project.afterEvaluate { configureDesktop(project, desktopExtension) project.configureWeb(composeExtension) @@ -71,44 +63,18 @@ abstract class ComposePlugin : Plugin { val mppExt = project.mppExt project.configureExperimentalTargetsFlagsCheck(mppExt) } - - project.tasks.withType(KotlinCompile::class.java).configureEach { - it.kotlinOptions.apply { - freeCompilerArgs = freeCompilerArgs + - composeExtension.kotlinCompilerPluginArgs.get().flatMap { arg -> - listOf("-P", "plugin:androidx.compose.compiler.plugins.kotlin:$arg") - } - } - } - - disableSignatureClashCheck(project) - } - } - - private fun disableSignatureClashCheck(project: Project) { - val hasAnyWebTarget = project.mppExtOrNull?.targets?.firstOrNull { - it.platformType == KotlinPlatformType.js || - it.platformType == KotlinPlatformType.wasm - } != null - if (hasAnyWebTarget) { - // currently k/wasm compile task is covered by KotlinJsCompile type - project.tasks.withType(KotlinJsCompile::class.java).configureEach { - it.kotlinOptions.freeCompilerArgs += listOf( - "-Xklib-enable-signature-clash-checks=false", - ) - } } } @Suppress("DEPRECATION") class Dependencies(project: Project) { val desktop = DesktopDependencies - val compiler = CompilerDependencies(project) val animation get() = composeDependency("org.jetbrains.compose.animation:animation") val animationGraphics get() = composeDependency("org.jetbrains.compose.animation:animation-graphics") val foundation get() = composeDependency("org.jetbrains.compose.foundation:foundation") val material get() = composeDependency("org.jetbrains.compose.material:material") - val material3 get() = composeDependency("org.jetbrains.compose.material3:material3") + val material3 get() = composeMaterial3Dependency("org.jetbrains.compose.material3:material3") + val material3AdaptiveNavigationSuite get() = composeMaterial3Dependency("org.jetbrains.compose.material3:material3-adaptive-navigation-suite") val runtime get() = composeDependency("org.jetbrains.compose.runtime:runtime") val runtimeSaveable get() = composeDependency("org.jetbrains.compose.runtime:runtime-saveable") val ui get() = composeDependency("org.jetbrains.compose.ui:ui") @@ -120,7 +86,7 @@ abstract class ComposePlugin : Plugin { val uiTooling get() = composeDependency("org.jetbrains.compose.ui:ui-tooling") val uiUtil get() = composeDependency("org.jetbrains.compose.ui:ui-util") val preview get() = composeDependency("org.jetbrains.compose.ui:ui-tooling-preview") - val materialIconsExtended get() = composeDependency("org.jetbrains.compose.material:material-icons-extended") + val materialIconsExtended get() = "org.jetbrains.compose.material:material-icons-extended:1.7.3" val components get() = CommonComponentsDependencies @Deprecated("Use compose.html", replaceWith = ReplaceWith("html")) val web: WebDependencies get() = WebDependencies @@ -134,6 +100,7 @@ abstract class ComposePlugin : Plugin { val linux_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-linux-x64") val linux_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-linux-arm64") val windows_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-windows-x64") + val windows_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-windows-arm64") val macos_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-x64") val macos_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-arm64") @@ -144,18 +111,12 @@ abstract class ComposePlugin : Plugin { } } - class CompilerDependencies(private val project: Project) { - fun forKotlin(version: String) = "org.jetbrains.compose.compiler:compiler:" + - ComposeCompilerCompatibility.compilerVersionFor(version) - - /** - * Compose Compiler that is chosen by the version of Kotlin applied to the Gradle project - */ - val auto get() = forKotlin(project.getKotlinPluginVersion()) - } - object CommonComponentsDependencies { val resources = composeDependency("org.jetbrains.compose.components:components-resources") + @Deprecated( + "Use org.jetbrains.compose.ui:ui-tooling-preview module instead", + ReplaceWith("compose.preview") + ) val uiToolingPreview = composeDependency("org.jetbrains.compose.components:components-ui-tooling-preview") } @@ -205,6 +166,7 @@ fun KotlinDependencyHandler.compose(groupWithArtifact: String) = composeDependen fun DependencyHandler.compose(groupWithArtifact: String) = composeDependency(groupWithArtifact) private fun composeDependency(groupWithArtifact: String) = "$groupWithArtifact:$composeVersion" +private fun composeMaterial3Dependency(groupWithArtifact: String) = "$groupWithArtifact:$composeMaterial3Version" private fun setUpGroovyDslExtensions(project: Project) { project.plugins.withId("org.jetbrains.kotlin.multiplatform") { diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/FileAssociation.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/FileAssociation.kt new file mode 100644 index 00000000000..a9e2bbff22c --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/FileAssociation.kt @@ -0,0 +1,11 @@ +package org.jetbrains.compose.desktop.application.dsl + +import java.io.File +import java.io.Serializable + +internal data class FileAssociation( + val mimeType: String, + val extension: String, + val description: String, + val iconFile: File?, +) : Serializable diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/JvmApplicationDistributions.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/JvmApplicationDistributions.kt index e9fb935df64..f59b838b6a0 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/JvmApplicationDistributions.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/JvmApplicationDistributions.kt @@ -6,6 +6,7 @@ package org.jetbrains.compose.desktop.application.dsl import org.gradle.api.Action +import java.io.File internal val DEFAULT_RUNTIME_MODULES = arrayOf( "java.base", "java.desktop", "java.logging", "jdk.crypto.ec" @@ -32,4 +33,14 @@ abstract class JvmApplicationDistributions : AbstractDistributions() { fun windows(fn: Action) { fn.execute(windows) } + + @JvmOverloads + fun fileAssociation( + mimeType: String, extension: String, description: String, + linuxIconFile: File? = null, windowsIconFile: File? = null, macOSIconFile: File? = null, + ) { + linux.fileAssociation(mimeType, extension, description, linuxIconFile) + windows.fileAssociation(mimeType, extension, description, windowsIconFile) + macOS.fileAssociation(mimeType, extension, description, macOSIconFile) + } } \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt index f8b3e3450b1..dd05d501241 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt @@ -8,6 +8,7 @@ package org.jetbrains.compose.desktop.application.dsl import org.gradle.api.Action import org.gradle.api.file.RegularFileProperty import org.gradle.api.model.ObjectFactory +import java.io.File import javax.inject.Inject abstract class AbstractPlatformSettings { @@ -17,6 +18,13 @@ abstract class AbstractPlatformSettings { val iconFile: RegularFileProperty = objects.fileProperty() var packageVersion: String? = null var installationPath: String? = null + + internal val fileAssociations: MutableSet = mutableSetOf() + + @JvmOverloads + fun fileAssociation(mimeType: String, extension: String, description: String, iconFile: File? = null) { + fileAssociations.add(FileAssociation(mimeType, extension, description, iconFile)) + } } abstract class AbstractMacOSPlatformSettings : AbstractPlatformSettings() { @@ -57,8 +65,8 @@ abstract class JvmMacOSPlatformSettings : AbstractMacOSPlatformSettings() { var dockName: String? = null var setDockNameSameAsPackageName: Boolean = true var appStore: Boolean = false - var entitlementsFile: RegularFileProperty = objects.fileProperty() - var runtimeEntitlementsFile: RegularFileProperty = objects.fileProperty() + val entitlementsFile: RegularFileProperty = objects.fileProperty() + val runtimeEntitlementsFile: RegularFileProperty = objects.fileProperty() var pkgPackageVersion: String? = null var pkgPackageBuildVersion: String? = null diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/ProguardSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/ProguardSettings.kt index a3459d40d5c..6469df1efe8 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/ProguardSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/ProguardSettings.kt @@ -12,7 +12,7 @@ import org.jetbrains.compose.internal.utils.notNullProperty import org.jetbrains.compose.internal.utils.nullableProperty import javax.inject.Inject -private const val DEFAULT_PROGUARD_VERSION = "7.2.2" +private const val DEFAULT_PROGUARD_VERSION = "7.7.0" abstract class ProguardSettings @Inject constructor( objects: ObjectFactory, diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/ComposeProjectProperties.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/ComposeProjectProperties.kt index abe936f0b27..0a79fd08bf6 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/ComposeProjectProperties.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/ComposeProjectProperties.kt @@ -8,8 +8,10 @@ package org.jetbrains.compose.desktop.application.internal import org.gradle.api.Project import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory +import org.jetbrains.compose.internal.utils.findLocalOrGlobalProperty import org.jetbrains.compose.internal.utils.toBooleanProvider import org.jetbrains.compose.internal.utils.valueOrNull +import org.jetbrains.kotlin.gradle.plugin.extraProperties internal object ComposeProperties { internal const val VERBOSE = "compose.desktop.verbose" @@ -24,6 +26,8 @@ internal object ComposeProperties { internal const val CHECK_JDK_VENDOR = "compose.desktop.packaging.checkJdkVendor" internal const val DISABLE_MULTIMODULE_RESOURCES = "org.jetbrains.compose.resources.multimodule.disable" internal const val SYNC_RESOURCES_PROPERTY = "compose.ios.resources.sync" + internal const val DISABLE_HOT_RELOAD = "org.jetbrains.compose.hot.reload.disable" + internal const val DISABLE_RESOURCE_CONTENT_HASH_GENERATION = "org.jetbrains.compose.resources.content.hash.generation.disable" fun isVerbose(providers: ProviderFactory): Provider = providers.valueOrNull(VERBOSE).toBooleanProvider(false) @@ -58,8 +62,13 @@ internal object ComposeProperties { fun disableMultimoduleResources(providers: ProviderFactory): Provider = providers.valueOrNull(DISABLE_MULTIMODULE_RESOURCES).toBooleanProvider(false) + fun disableHotReload(providers: ProviderFactory): Provider = + providers.valueOrNull(DISABLE_HOT_RELOAD).toBooleanProvider(false) + + fun disableResourceContentHashGeneration(providers: ProviderFactory): Provider = + providers.valueOrNull(DISABLE_RESOURCE_CONTENT_HASH_GENERATION).toBooleanProvider(false) + //providers.valueOrNull works only with root gradle.properties - fun dontSyncResources(project: Project): Provider = project.provider { - project.findProperty(SYNC_RESOURCES_PROPERTY)?.toString().equals("false", true) - } + fun dontSyncResources(project: Project): Provider = + project.findLocalOrGlobalProperty(SYNC_RESOURCES_PROPERTY).map { it == "false" } } \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/InfoPlistBuilder.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/InfoPlistBuilder.kt index e349305730b..aca1d8e8588 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/InfoPlistBuilder.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/InfoPlistBuilder.kt @@ -5,14 +5,58 @@ package org.jetbrains.compose.desktop.application.internal +import org.jetbrains.compose.desktop.application.internal.InfoPlistBuilder.InfoPlistValue.* import java.io.File import kotlin.reflect.KProperty +private const val indent = " " +private fun indentForLevel(level: Int) = indent.repeat(level) + internal class InfoPlistBuilder(private val extraPlistKeysRawXml: String? = null) { - private val values = LinkedHashMap() + internal sealed class InfoPlistValue { + abstract fun asPlistEntry(nestingLevel: Int): String + data class InfoPlistListValue(val elements: List) : InfoPlistValue() { + override fun asPlistEntry(nestingLevel: Int): String = + if (elements.isEmpty()) "${indentForLevel(nestingLevel)}" + else elements.joinToString( + separator = "\n", + prefix = "${indentForLevel(nestingLevel)}\n", + postfix = "\n${indentForLevel(nestingLevel)}" + ) { + it.asPlistEntry(nestingLevel + 1) + } + + constructor(vararg elements: InfoPlistValue) : this(elements.asList()) + } + + data class InfoPlistMapValue(val elements: Map) : InfoPlistValue() { + override fun asPlistEntry(nestingLevel: Int): String = + if (elements.isEmpty()) "${indentForLevel(nestingLevel)}" + else elements.entries.joinToString( + separator = "\n", + prefix = "${indentForLevel(nestingLevel)}\n", + postfix = "\n${indentForLevel(nestingLevel)}", + ) { (key, value) -> + "${indentForLevel(nestingLevel + 1)}${key.name}\n${value.asPlistEntry(nestingLevel + 1)}" + } + + constructor(vararg elements: Pair) : this(elements.toMap()) + } + + data class InfoPlistStringValue(val value: String) : InfoPlistValue() { + override fun asPlistEntry(nestingLevel: Int): String = if (value.isEmpty()) "${indentForLevel(nestingLevel)}" else "${indentForLevel(nestingLevel)}$value" + } + } + + private val values = LinkedHashMap() + + operator fun get(key: InfoPlistKey): InfoPlistValue? = values[key] + operator fun set(key: InfoPlistKey, value: String?) = set(key, value?.let(::InfoPlistStringValue)) + operator fun set(key: InfoPlistKey, value: List?) = set(key, value?.let(::InfoPlistListValue)) + operator fun set(key: InfoPlistKey, value: Map?) = + set(key, value?.let(::InfoPlistMapValue)) - operator fun get(key: InfoPlistKey): String? = values[key] - operator fun set(key: InfoPlistKey, value: String?) { + operator fun set(key: InfoPlistKey, value: InfoPlistValue?) { if (value != null) { values[key] = value } else { @@ -26,13 +70,13 @@ internal class InfoPlistBuilder(private val extraPlistKeysRawXml: String? = null appendLine("") appendLine("") appendLine("") - appendLine(" ") + appendLine("${indentForLevel(1)}") for ((k, v) in values) { - appendLine(" ${k.name}") - appendLine(" $v") + appendLine("${indentForLevel(2)}${k.name}") + appendLine(v.asPlistEntry(2)) } extraPlistKeysRawXml?.let { appendLine(it) } - appendLine(" ") + appendLine("${indentForLevel(1)}") appendLine("") } } @@ -48,6 +92,13 @@ internal object PlistKeys { val LSMinimumSystemVersion by this val CFBundleDevelopmentRegion by this val CFBundleAllowMixedLocalizations by this + val CFBundleDocumentTypes by this + val CFBundleTypeRole by this + val CFBundleTypeExtensions by this + val CFBundleTypeIconFile by this + val CFBundleTypeMIMETypes by this + val CFBundleTypeName by this + val CFBundleTypeOSTypes by this val CFBundleExecutable by this val CFBundleIconFile by this val CFBundleIdentifier by this diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/JvmApplicationContext.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/JvmApplicationContext.kt index 4ddb3593d06..dac795b4e4c 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/JvmApplicationContext.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/JvmApplicationContext.kt @@ -13,9 +13,9 @@ import org.jetbrains.compose.desktop.application.dsl.JvmApplicationBuildType import org.jetbrains.compose.internal.KOTLIN_JVM_PLUGIN_ID import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID import org.jetbrains.compose.internal.javaSourceSets -import org.jetbrains.compose.internal.utils.joinDashLowercaseNonEmpty import org.jetbrains.compose.internal.mppExt -import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType +import org.jetbrains.compose.internal.utils.joinDashLowercaseNonEmpty +import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget internal data class JvmApplicationContext( val project: Project, @@ -56,7 +56,7 @@ internal data class JvmApplicationContext( if (project.plugins.hasPlugin(KOTLIN_MPP_PLUGIN_ID)) { var isJvmTargetConfigured = false project.mppExt.targets.all { target -> - if (target.platformType == KotlinPlatformType.jvm) { + if (target is KotlinJvmTarget) { if (!isJvmTargetConfigured) { appInternal.from(target) isJvmTargetConfigured = true diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/MacSigner.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/MacSigner.kt index 5a761b2eb9d..1cd2c4b2347 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/MacSigner.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/MacSigner.kt @@ -93,7 +93,11 @@ internal class MacSignerImpl( } private fun matchCertificates(certificates: String): String { - val regex = Pattern.compile("\"alis\"=\"([^\"]+)\"") + // When the developer id contains non-ascii characters, the output of `security find-certificate` is + // slightly different. The `alis` line first has the hex-encoded developer id, then some spaces, + // and then the developer id with non-ascii characters encoded as octal. + // See https://bugs.openjdk.org/browse/JDK-8308042 + val regex = Pattern.compile("\"alis\"=(0x[0-9A-F]+)?\\s*\"([^\"]+)\"") val m = regex.matcher(certificates) if (!m.find()) { val keychainPath = settings.keychain?.absolutePath @@ -102,14 +106,24 @@ internal class MacSignerImpl( " in keychain [${keychainPath.orEmpty()}]" ) } - - val result = m.group(1) - if (m.find()) - error( - "Multiple matching certificates are found for '${settings.fullDeveloperID}'. " + - "Please specify keychain containing unique matching certificate." - ) - return result + val hexEncoded = m.group(1) + if (hexEncoded.isNullOrBlank()) { + // Regular case; developer id only has ascii characters + val result = m.group(2) + if (m.find()) + error( + "Multiple matching certificates are found for '${settings.fullDeveloperID}'. " + + "Please specify keychain containing unique matching certificate." + ) + return result + } else { + return hexEncoded + .substring(2) + .chunked(2) + .map { it.toInt(16).toByte() } + .toByteArray() + .toString(Charsets.UTF_8) + } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureDesktop.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureDesktop.kt index 81955650c35..f6deb730404 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureDesktop.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureDesktop.kt @@ -24,4 +24,6 @@ internal fun configureDesktop(project: Project, desktopExtension: DesktopExtensi ) {} configureNativeApplication(project, desktopExtension.nativeApplication, unpackDefaultResources) } + + project.configureHotReload() } \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureHotReload.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureHotReload.kt new file mode 100644 index 00000000000..1907da87bbe --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureHotReload.kt @@ -0,0 +1,29 @@ +package org.jetbrains.compose.desktop.application.internal + +import org.gradle.api.Project +import org.jetbrains.compose.internal.KOTLIN_JVM_PLUGIN_ID +import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID +import org.jetbrains.compose.internal.mppExt +import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget + +private fun Project.applyHotReload() { + // We add an explicit runtime dependency to the Compose Hot Reload Gradle plugin of a + // specific preferred version (https://docs.gradle.org/current/userguide/dependency_versions.html), + // so we are able to apply the plugin by id here at least of that preferred version + // (because the plugin is present on the class-path), + // until a user explicitly specifies their own version. + project.pluginManager.apply("org.jetbrains.compose.hot-reload") +} + +fun Project.configureHotReload() { + if (!ComposeProperties.disableHotReload(providers).get()) { + plugins.withId(KOTLIN_MPP_PLUGIN_ID) { + mppExt.targets.withType(KotlinJvmTarget::class.java) { target -> + applyHotReload() + } + } + plugins.withId(KOTLIN_JVM_PLUGIN_ID) { + applyHotReload() + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt index d53ad3dd621..35dec15a2fb 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt @@ -181,10 +181,6 @@ private fun JvmApplicationContext.configurePackagingTasks( } if (targetFormat.isCompatibleWith(OS.MacOS)) { - check(targetFormat == TargetFormat.Dmg || targetFormat == TargetFormat.Pkg) { - "Unexpected target format for MacOS: $targetFormat" - } - tasks.register( taskNameAction = "notarize", taskNameObject = targetFormat.name, @@ -375,6 +371,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( packageTask.linuxRpmLicenseType.set(provider { linux.rpmLicenseType }) packageTask.iconFile.set(linux.iconFile.orElse(defaultResources.get { linuxIcon })) packageTask.installationPath.set(linux.installationPath) + packageTask.fileAssociations.set(provider { linux.fileAssociations }) } } OS.Windows -> { @@ -388,6 +385,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( packageTask.winUpgradeUuid.set(provider { win.upgradeUuid }) packageTask.iconFile.set(win.iconFile.orElse(defaultResources.get { windowsIcon })) packageTask.installationPath.set(win.installationPath) + packageTask.fileAssociations.set(provider { win.fileAssociations }) } } OS.MacOS -> { @@ -414,6 +412,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( packageTask.nonValidatedMacSigningSettings = app.nativeDistributions.macOS.signing packageTask.iconFile.set(mac.iconFile.orElse(defaultResources.get { macIcon })) packageTask.installationPath.set(mac.installationPath) + packageTask.fileAssociations.set(provider { mac.fileAssociations }) } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureNativeApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureNativeApplication.kt index 2cf2c7961c7..254e77cfd23 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureNativeApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureNativeApplication.kt @@ -70,6 +70,12 @@ private fun configureNativeApplication( copyright.set(project.provider { app.distributions.copyright ?: "Copyright (C) ${Calendar.getInstance().get(Calendar.YEAR)}" }) + if (binary.outputKind == NativeOutputKind.EXECUTABLE) { + val binaryResources = (binary.compilation.associatedCompilations + binary.compilation).flatMap { compilation -> + compilation.allKotlinSourceSets.map { it.resources } + } + composeResourcesDirs.setFrom(binaryResources) + } } if (TargetFormat.Dmg in app.distributions.targetFormats) { diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/wixToolset.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/wixToolset.kt index f5f1739d80d..fa0afb6bbba 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/wixToolset.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/wixToolset.kt @@ -11,6 +11,7 @@ import org.gradle.api.tasks.Copy import org.jetbrains.compose.desktop.application.tasks.AbstractJPackageTask import org.jetbrains.compose.internal.utils.OS import org.jetbrains.compose.internal.utils.currentOS +import org.jetbrains.compose.internal.utils.findLocalOrGlobalProperty import org.jetbrains.compose.internal.utils.ioFile import java.io.File @@ -32,7 +33,8 @@ internal fun JvmApplicationContext.configureWix() { return } - if (project.findProperty(DOWNLOAD_WIX_PROPERTY) == "false") return + val disableWixDownload = project.findLocalOrGlobalProperty(DOWNLOAD_WIX_PROPERTY).map { it == "false" } + if (disableWixDownload.get()) return val root = project.rootProject val wixDir = project.gradle.gradleUserHomeDir.resolve("compose-jb") diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index ad56727c059..d1935673dbd 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -5,30 +5,77 @@ package org.jetbrains.compose.desktop.application.tasks -import org.gradle.api.file.* +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.Directory +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.FileSystemOperations +import org.gradle.api.file.RegularFile +import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.ListProperty import org.gradle.api.provider.Property import org.gradle.api.provider.Provider -import org.gradle.api.tasks.* +import org.gradle.api.provider.SetProperty +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputDirectory +import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.LocalState +import org.gradle.api.tasks.Nested import org.gradle.api.tasks.Optional +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity import org.gradle.process.ExecResult import org.gradle.work.ChangeType import org.gradle.work.InputChanges +import org.jetbrains.compose.desktop.application.dsl.FileAssociation import org.jetbrains.compose.desktop.application.dsl.MacOSSigningSettings import org.jetbrains.compose.desktop.application.dsl.TargetFormat -import org.jetbrains.compose.desktop.application.internal.* -import org.jetbrains.compose.desktop.application.internal.files.* -import org.jetbrains.compose.desktop.application.internal.files.MacJarSignFileCopyingProcessor +import org.jetbrains.compose.desktop.application.internal.APP_RESOURCES_DIR +import org.jetbrains.compose.desktop.application.internal.InfoPlistBuilder +import org.jetbrains.compose.desktop.application.internal.InfoPlistBuilder.InfoPlistValue.InfoPlistListValue +import org.jetbrains.compose.desktop.application.internal.InfoPlistBuilder.InfoPlistValue.InfoPlistMapValue +import org.jetbrains.compose.desktop.application.internal.InfoPlistBuilder.InfoPlistValue.InfoPlistStringValue import org.jetbrains.compose.desktop.application.internal.JvmRuntimeProperties +import org.jetbrains.compose.desktop.application.internal.MacSigner +import org.jetbrains.compose.desktop.application.internal.MacSignerImpl +import org.jetbrains.compose.desktop.application.internal.NoCertificateSigner +import org.jetbrains.compose.desktop.application.internal.PlistKeys +import org.jetbrains.compose.desktop.application.internal.SKIKO_LIBRARY_PATH +import org.jetbrains.compose.desktop.application.internal.cliArg +import org.jetbrains.compose.desktop.application.internal.files.FileCopyingProcessor +import org.jetbrains.compose.desktop.application.internal.files.MacJarSignFileCopyingProcessor +import org.jetbrains.compose.desktop.application.internal.files.SimpleFileCopyingProcessor +import org.jetbrains.compose.desktop.application.internal.files.copyTo +import org.jetbrains.compose.desktop.application.internal.files.copyZipEntry +import org.jetbrains.compose.desktop.application.internal.files.findOutputFileOrDir +import org.jetbrains.compose.desktop.application.internal.files.isDylibPath +import org.jetbrains.compose.desktop.application.internal.files.isJarFile +import org.jetbrains.compose.desktop.application.internal.files.mangledName +import org.jetbrains.compose.desktop.application.internal.files.normalizedPath +import org.jetbrains.compose.desktop.application.internal.files.transformJar +import org.jetbrains.compose.desktop.application.internal.javaOption import org.jetbrains.compose.desktop.application.internal.validation.validate -import org.jetbrains.compose.internal.utils.* -import java.io.* +import org.jetbrains.compose.internal.utils.OS +import org.jetbrains.compose.internal.utils.clearDirs +import org.jetbrains.compose.internal.utils.currentArch +import org.jetbrains.compose.internal.utils.currentOS +import org.jetbrains.compose.internal.utils.currentTarget +import org.jetbrains.compose.internal.utils.delete +import org.jetbrains.compose.internal.utils.ioFile +import org.jetbrains.compose.internal.utils.ioFileOrNull +import org.jetbrains.compose.internal.utils.mkdirs +import org.jetbrains.compose.internal.utils.notNullProperty +import org.jetbrains.compose.internal.utils.nullableProperty +import org.jetbrains.compose.internal.utils.stacktraceToString +import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated +import java.io.File +import java.io.ObjectInputStream +import java.io.ObjectOutputStream +import java.io.Serializable import java.nio.file.LinkOption import java.util.* import javax.inject.Inject -import kotlin.collections.HashMap -import kotlin.collections.HashSet -import kotlin.collections.ArrayList import kotlin.io.path.isExecutable import kotlin.io.path.isRegularFile @@ -244,6 +291,39 @@ abstract class AbstractJPackageTask @Inject constructor( @get:Optional val javaRuntimePropertiesFile: RegularFileProperty = objects.fileProperty() + @get:Input + internal val fileAssociations: SetProperty = objects.setProperty(FileAssociation::class.java) + + private val iconMapping by lazy { + val icons = fileAssociations.get().mapNotNull { it.iconFile }.distinct() + if (icons.isEmpty()) return@lazy emptyMap() + val iconTempNames: List = mutableListOf().apply { + val usedNames = mutableSetOf("${packageName.get()}.icns") + for (icon in icons) { + if (!icon.exists()) continue + if (usedNames.add(icon.name)) { + add(icon.name) + continue + } + val nameWithoutExtension = icon.nameWithoutExtension + val extension = icon.extension + for (n in 1UL..ULong.MAX_VALUE) { + val newName = "$nameWithoutExtension ($n).$extension" + if (usedNames.add(newName)) { + add(newName) + break + } + } + } + } + val appDir = destinationDir.ioFile.resolve("${packageName.get()}.app") + val iconsDir = appDir.resolve("Contents").resolve("Resources") + if (iconsDir.exists()) { + iconsDir.deleteRecursively() + } + icons.zip(iconTempNames) { icon, newName -> icon to iconsDir.resolve(newName) }.toMap() + } + private lateinit var jvmRuntimeInfo: JvmRuntimeProperties @get:Optional @@ -273,6 +353,9 @@ abstract class AbstractJPackageTask @Inject constructor( @get:LocalState protected val skikoDir: Provider = project.layout.buildDirectory.dir("compose/tmp/skiko") + @get:LocalState + protected val propertyFilesDir: Provider = project.layout.buildDirectory.dir("compose/tmp/propertyFiles") + @get:Internal private val libsDir: Provider = workingDir.map { it.dir("libs") @@ -286,23 +369,6 @@ abstract class AbstractJPackageTask @Inject constructor( @get:Internal val appResourcesDir: DirectoryProperty = objects.directoryProperty() - /** - * Gradle runtime verification fails, - * if InputDirectory is not null, but a directory does not exist. - * The directory might not exist, because prepareAppResources task - * does not create output directory if there are no resources. - * - * To work around this, appResourcesDir is used as a real property, - * but it is annotated as @Internal, so it ignored during inputs checking. - * This property is used only for inputs checking. - * It returns appResourcesDir value if the underlying directory exists. - */ - @Suppress("unused") - @get:InputDirectory - @get:Optional - internal val appResourcesDirInputDirHackForVerification: Provider - get() = appResourcesDir.map { it.takeIf { it.asFile.exists() } } - @get:Internal private val libsMappingFile: Provider = workingDir.map { it.file("libs-mapping.txt") @@ -368,6 +434,33 @@ abstract class AbstractJPackageTask @Inject constructor( cliArg("--license-file", licenseFile) cliArg("--resource-dir", jpackageResources) + val propertyFilesDirJava = propertyFilesDir.ioFile + fileOperations.clearDirs(propertyFilesDir) + + val fileAssociationFiles = fileAssociations.get() + .groupBy { it.extension } + .mapValues { (extension, associations) -> + associations.mapIndexed { index, association -> + propertyFilesDirJava.resolve("FA${extension}${if (index > 0) index.toString() else ""}.properties") + .apply { + val withoutIcon = """ + mime-type=${association.mimeType} + extension=${association.extension} + description=${association.description} + """.trimIndent() + writeText( + if (association.iconFile == null) withoutIcon + else "${withoutIcon}\nicon=${association.iconFile.normalizedPath()}" + ) + } + } + }.values.flatten() + + for (fileAssociationFile in fileAssociationFiles) { + cliArg("--file-associations", fileAssociationFile) + } + + when (currentOS) { OS.Linux -> { cliArg("--linux-shortcut", linuxShortcut) @@ -569,6 +662,15 @@ abstract class AbstractJPackageTask @Inject constructor( macSigner.sign(runtimeDir, runtimeEntitlementsFile, forceEntitlements = true) macSigner.sign(appDir, appEntitlementsFile, forceEntitlements = true) + + if (iconMapping.isNotEmpty()) { + for ((originalIcon, newIcon) in iconMapping) { + if (originalIcon.exists()) { + newIcon.ensureParentDirsCreated() + originalIcon.copyTo(newIcon) + } + } + } } override fun initState() { @@ -620,6 +722,23 @@ abstract class AbstractJPackageTask @Inject constructor( ?: "Copyright (C) $year" plist[PlistKeys.NSSupportsAutomaticGraphicsSwitching] = "true" plist[PlistKeys.NSHighResolutionCapable] = "true" + val fileAssociationMutableSet = fileAssociations.get() + if (fileAssociationMutableSet.isNotEmpty()) { + plist[PlistKeys.CFBundleDocumentTypes] = fileAssociationMutableSet + .groupBy { it.mimeType to it.description } + .map { (key, extensions) -> + val (mimeType, description) = key + val iconPath = extensions.firstNotNullOfOrNull { it.iconFile }?.let { iconMapping[it]?.name } + InfoPlistMapValue( + PlistKeys.CFBundleTypeRole to InfoPlistStringValue("Editor"), + PlistKeys.CFBundleTypeExtensions to InfoPlistListValue(extensions.map { InfoPlistStringValue(it.extension) }), + PlistKeys.CFBundleTypeIconFile to InfoPlistStringValue(iconPath ?: "$packageName.icns"), + PlistKeys.CFBundleTypeMIMETypes to InfoPlistStringValue(mimeType), + PlistKeys.CFBundleTypeName to InfoPlistStringValue(description), + PlistKeys.CFBundleTypeOSTypes to InfoPlistListValue(InfoPlistStringValue("****")), + ) + } + } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractNativeMacApplicationPackageAppDirTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractNativeMacApplicationPackageAppDirTask.kt index 1b051e8505b..44686e3e9df 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractNativeMacApplicationPackageAppDirTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractNativeMacApplicationPackageAppDirTask.kt @@ -5,6 +5,7 @@ package org.jetbrains.compose.desktop.application.tasks +import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.* @@ -43,6 +44,11 @@ abstract class AbstractNativeMacApplicationPackageAppDirTask : AbstractNativeMac @get:Optional val minimumSystemVersion: Property = objects.nullableProperty() + @get:InputFiles + @get:Optional + @get:PathSensitive(PathSensitivity.ABSOLUTE) + val composeResourcesDirs: ConfigurableFileCollection = objects.fileCollection() + override fun createPackage(destinationDir: File, workingDir: File) { val packageName = packageName.get() val appDir = destinationDir.resolve("$packageName.app").apply { mkdirs() } @@ -61,6 +67,13 @@ abstract class AbstractNativeMacApplicationPackageAppDirTask : AbstractNativeMac setupInfoPlist(executableName = appExecutableFile.name) writeToFile(contentsDir.resolve("Info.plist")) } + + if (!composeResourcesDirs.isEmpty) { + fileOperations.copy { copySpec -> + copySpec.from(composeResourcesDirs) + copySpec.into(appResourcesDir.resolve("compose-resources").apply { mkdirs() }) + } + } } private fun InfoPlistBuilder.setupInfoPlist(executableName: String) { diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/internal/configurePreview.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/internal/configurePreview.kt index 83f06a98059..80977d917de 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/internal/configurePreview.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/internal/configurePreview.kt @@ -34,7 +34,7 @@ private fun registerConfigurePreviewTask( ) { previewTask -> runtimeFiles.configureUsageBy(previewTask) { (runtimeJars, _) -> previewClasspath = runtimeJars - skikoRuntime = tryGetSkikoRuntimeIfNeeded() + skikoRuntime.set(project.provider { tryGetSkikoRuntimeIfNeeded() }) } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/tasks/AbstractConfigureDesktopPreviewTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/tasks/AbstractConfigureDesktopPreviewTask.kt index 02bab852648..a61e5f732de 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/tasks/AbstractConfigureDesktopPreviewTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/preview/tasks/AbstractConfigureDesktopPreviewTask.kt @@ -19,7 +19,7 @@ abstract class AbstractConfigureDesktopPreviewTask : AbstractComposeDesktopTask( internal lateinit var previewClasspath: FileCollection @get:InputFiles - internal lateinit var skikoRuntime: FileCollection + internal abstract val skikoRuntime: Property @get:Internal internal val javaHome: Property = objects.notNullProperty().apply { @@ -58,10 +58,12 @@ abstract class AbstractConfigureDesktopPreviewTask : AbstractComposeDesktopTask( javaExecutable = javaExecutable(javaHome.get()), hostClasspath = hostClasspath.files.asSequence().pathString() ) + + val skikoRuntimeFiles = skikoRuntime.get() val previewClasspathString = (previewClasspath.files.asSequence() + uiTooling.files.asSequence() + - skikoRuntime.files.asSequence() + skikoRuntimeFiles.files.asSequence() ).pathString() val gradleLogger = logger diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/checkExperimentalTargets.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/checkExperimentalTargets.kt index a5bb901ee21..0a5e684c270 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/checkExperimentalTargets.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/checkExperimentalTargets.kt @@ -6,6 +6,7 @@ package org.jetbrains.compose.experimental.internal import org.gradle.api.Project +import org.jetbrains.compose.internal.utils.findLocalOrGlobalProperty import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.KotlinTarget @@ -19,14 +20,13 @@ private const val SKIKO_ARTIFACT_PREFIX = "org.jetbrains.skiko:skiko" private class TargetType( val id: String, - val presets: List + val identifiers: List ) private val TargetType.gradlePropertyName get() = "org.jetbrains.compose.experimental.$id.enabled" private val EXPERIMENTAL_TARGETS: Set = setOf( - TargetType("macos", presets = listOf("macosX64", "macosArm64")), - TargetType("jscanvas", presets = listOf("jsIr", "js")), + TargetType("macos", identifiers = listOf("macosX64", "macosArm64")), ) private sealed interface CheckResult { @@ -58,10 +58,10 @@ private fun checkExperimentalTargetsWithSkikoIsEnabled( } private fun checkTarget(project: Project, target: KotlinTarget): CheckResult { - val presetName = target.preset?.name ?: return CheckResult.Success + val targetIdentifier = target.disambiguationClassifier ?: return CheckResult.Success val targetType = EXPERIMENTAL_TARGETS.firstOrNull { - it.presets.contains(presetName) + it.identifiers.contains(targetIdentifier) } ?: return CheckResult.Success val targetConfigurationNames = target.compilations.map { compilation -> @@ -70,12 +70,16 @@ private fun checkTarget(project: Project, target: KotlinTarget): CheckResult { project.configurations.forEach { configuration -> if (configuration.isCanBeResolved && configuration.name in targetConfigurationNames) { - val containsSkikoArtifact = configuration.resolvedConfiguration.resolvedArtifacts.any { - it.id.displayName.contains(SKIKO_ARTIFACT_PREFIX) - } - if (containsSkikoArtifact) { - if (project.findProperty(targetType.gradlePropertyName) != "true") { - return CheckResult.Fail(targetType) + val resolvedConfiguration = configuration.resolvedConfiguration + if (!resolvedConfiguration.hasError()) { + val containsSkikoArtifact = resolvedConfiguration.resolvedArtifacts.any { + it.id.displayName.contains(SKIKO_ARTIFACT_PREFIX) + } + if (containsSkikoArtifact) { + val targetIsDisabled = project.findLocalOrGlobalProperty(targetType.gradlePropertyName).map { it != "true" } + if (targetIsDisabled.get()) { + return CheckResult.Fail(targetType) + } } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/configureNativeCompilerCaching.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/configureNativeCompilerCaching.kt deleted file mode 100644 index 1ecde81ccdc..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/internal/configureNativeCompilerCaching.kt +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.experimental.internal - -import org.gradle.api.Project -import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID -import org.jetbrains.compose.internal.mppExt -import org.jetbrains.compose.internal.utils.KGPPropertyProvider -import org.jetbrains.compose.internal.utils.configureEachWithType -import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget -import org.jetbrains.kotlin.konan.target.KonanTarget -import org.jetbrains.kotlin.konan.target.presetName - -private const val PROJECT_CACHE_KIND_PROPERTY_NAME = "kotlin.native.cacheKind" -private const val COMPOSE_NATIVE_MANAGE_CACHE_KIND = "compose.kotlin.native.manageCacheKind" -private const val NONE_VALUE = "none" - -// Compose runtime supports these k/native targets: -// https://github.com/JetBrains/compose-multiplatform-core/blob/jb-main/compose/runtime/runtime/build.gradle#L75 -private val SUPPORTED_NATIVE_TARGETS = setOf( - // ios - KonanTarget.IOS_X64, - KonanTarget.IOS_ARM64, - KonanTarget.IOS_SIMULATOR_ARM64, - // macos - KonanTarget.MACOS_X64, - KonanTarget.MACOS_ARM64, - // tvos - KonanTarget.TVOS_X64, - KonanTarget.TVOS_ARM64, - KonanTarget.TVOS_SIMULATOR_ARM64, - // watchOS - KonanTarget.WATCHOS_ARM64, - KonanTarget.WATCHOS_ARM32, - KonanTarget.WATCHOS_X64, - KonanTarget.WATCHOS_SIMULATOR_ARM64, - // mingw - KonanTarget.MINGW_X64, - // linux - KonanTarget.LINUX_X64, -) - -internal val SUPPORTED_NATIVE_CACHE_KIND_PROPERTIES = - SUPPORTED_NATIVE_TARGETS.map { it.targetCacheKindPropertyName } + - PROJECT_CACHE_KIND_PROPERTY_NAME - -internal fun Project.configureNativeCompilerCaching() { - if (findProperty(COMPOSE_NATIVE_MANAGE_CACHE_KIND) == "false") return - - plugins.withId(KOTLIN_MPP_PLUGIN_ID) { - val kotlinPluginVersion = kotlinVersionNumbers(project.getKotlinPluginVersion()) - mppExt.targets.configureEachWithType { - if (konanTarget in SUPPORTED_NATIVE_TARGETS) { - checkExplicitCacheKind() - if (kotlinPluginVersion < KotlinVersion(1, 9, 20)) { - // Pre-1.9.20 Kotlin compiler caches have known compatibility issues - // See KT-57329, KT-61270 - disableKotlinNativeCache() - } - } - } - } -} - -private fun KotlinNativeTarget.checkExplicitCacheKind() { - // To determine cache kind KGP checks kotlin.native.cacheKind. first, then kotlin.native.cacheKind - // For each property it tries to read Project.property, then checks local.properties - // See https://github.com/JetBrains/kotlin/blob/d4d30dcfcf1afb083f09279c6f1ba05031efeabb/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt#L416 - val cacheKindProperties = listOf(targetCacheKindPropertyName, PROJECT_CACHE_KIND_PROPERTY_NAME) - val propertyProviders = listOf( - KGPPropertyProvider.GradleProperties(project), - KGPPropertyProvider.LocalProperties(project) - ) - - for (cacheKindProperty in cacheKindProperties) { - for (provider in propertyProviders) { - val value = provider.valueOrNull(cacheKindProperty) - if (value != null) { - error(explicitCacheKindErrorMessage(cacheKindProperty, value, provider)) - } - } - } -} - -private fun explicitCacheKindErrorMessage( - cacheKindProperty: String, - value: String, - provider: KGPPropertyProvider -) = """ - |Error: '$cacheKindProperty' is explicitly set to '$value'. - |This option significantly slows the Kotlin/Native compiler. - |Compose Multiplatform Gradle plugin manages this property automatically based on a Kotlin compiler version being used. - | * Recommended action: remove explicit '$cacheKindProperty=$value' from ${provider.location}. - | * Alternative action: disable cache kind management by adding '$COMPOSE_NATIVE_MANAGE_CACHE_KIND=false' to your 'gradle.properties'. -""".trimMargin() - - -private val KotlinNativeTarget.targetCacheKindPropertyName: String - get() = konanTarget.targetCacheKindPropertyName - -private val KonanTarget.targetCacheKindPropertyName: String - get() = "$PROJECT_CACHE_KIND_PROPERTY_NAME.${presetName}" - -private fun KotlinNativeTarget.disableKotlinNativeCache() { - val existingValue = project.findProperty(targetCacheKindPropertyName)?.toString() - if (NONE_VALUE.equals(existingValue, ignoreCase = true)) return - - if (targetCacheKindPropertyName in project.properties) { - project.setProperty(targetCacheKindPropertyName, NONE_VALUE) - } else { - project.extensions.extraProperties.set(targetCacheKindPropertyName, NONE_VALUE) - } -} - -internal fun kotlinVersionNumbers(version: String): KotlinVersion { - val m = Regex("(\\d+)\\.(\\d+)\\.(\\d+)").find(version) ?: error("Kotlin version has unexpected format: '$version'") - val (_, majorPart, minorPart, patchPart) = m.groupValues - return KotlinVersion( - major = majorPart.toIntOrNull() ?: error("Could not parse major part '$majorPart' of Kotlin plugin version: '$version'"), - minor = minorPart.toIntOrNull() ?: error("Could not parse minor part '$minorPart' of Kotlin plugin version: '$version'"), - patch = patchPart.toIntOrNull() ?: error("Could not parse patch part '$patchPart' of Kotlin plugin version: '$version'"), - ) -} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/AbstractComposeMultiplatformBuildService.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/AbstractComposeMultiplatformBuildService.kt deleted file mode 100644 index 8a987034be9..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/AbstractComposeMultiplatformBuildService.kt +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.internal.service - -import org.gradle.api.Project -import org.gradle.api.services.BuildService -import org.gradle.api.services.BuildServiceParameters -import org.gradle.api.services.BuildServiceRegistration -import org.gradle.tooling.events.FinishEvent -import org.gradle.tooling.events.OperationCompletionListener - -// The service implements OperationCompletionListener just so Gradle would materialize the service even if the service is not used by any task or transformation - abstract class AbstractComposeMultiplatformBuildService

: BuildService

, OperationCompletionListener, AutoCloseable { - override fun onFinish(event: FinishEvent) {} - override fun close() {} -} - -internal inline fun > serviceName(instance: Service? = null): String = - fqName(instance) - -internal inline fun , reified Params : BuildServiceParameters> registerServiceIfAbsent( - project: Project, - crossinline initParams: Params.() -> Unit = {} -): BuildServiceRegistration { - if (findRegistration(project) == null) { - val newService = project.gradle.sharedServices.registerIfAbsent(fqName(), Service::class.java) { - it.parameters.initParams() - } - // Workaround to materialize a service even if it is not bound to a task - BuildEventsListenerRegistryProvider.getInstance(project).onTaskCompletion(newService) - } - - return getExistingServiceRegistration(project) -} - -internal inline fun , reified Params : BuildServiceParameters> getExistingServiceRegistration( - project: Project -): BuildServiceRegistration { - val registration = findRegistration(project) - ?: error("Service '${serviceName()}' was not initialized") - return registration.verified(project) -} - -private inline fun , reified Params : BuildServiceParameters> BuildServiceRegistration<*, *>.verified( - project: Project -): BuildServiceRegistration { - val parameters = parameters - // We are checking the type of parameters instead of the type of service - // to avoid materializing the service. - // After a service instance is created all changes made to its parameters won't be visible to - // that particular service instance. - // This is undesirable in some cases. For example, when reporting configuration problems, - // we want to collect all configuration issues from all projects first, then report issues all at once - // in execution phase. - if (parameters !is Params) { - // Compose Gradle plugin was probably loaded more than once - // See https://github.com/JetBrains/compose-multiplatform/issues/3459 - if (fqName(parameters) == fqName()) { - val rootScript = project.rootProject.buildFile - error(""" - Compose Multiplatform Gradle plugin has been loaded in multiple classloaders. - To avoid classloading issues, declare Compose Gradle Plugin in root build file $rootScript. - """.trimIndent()) - } else { - error("Shared build service '${serviceName()}' parameters have unexpected type: ${fqName(parameters)}") - } - } - - @Suppress("UNCHECKED_CAST") - return this as BuildServiceRegistration -} - -private inline fun , reified P : BuildServiceParameters> findRegistration( - project: Project -): BuildServiceRegistration<*, *>? = - project.gradle.sharedServices.registrations.findByName(fqName()) - -private inline fun fqName(instance: T? = null) = T::class.java.canonicalName diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/BuildEventsListenerRegistryProvider.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/BuildEventsListenerRegistryProvider.kt deleted file mode 100644 index 8473334131c..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/BuildEventsListenerRegistryProvider.kt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.internal.service - -import org.gradle.api.Project -import org.gradle.build.event.BuildEventsListenerRegistry -import javax.inject.Inject - -// a hack to get BuildEventsListenerRegistry conveniently, which can only be injected by Gradle -@Suppress("UnstableApiUsage") -internal abstract class BuildEventsListenerRegistryProvider @Inject constructor(val registry: BuildEventsListenerRegistry) { - companion object { - fun getInstance(project: Project): BuildEventsListenerRegistry = - project.objects.newInstance(BuildEventsListenerRegistryProvider::class.java).registry - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/ConfigurationProblemReporterService.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/ConfigurationProblemReporterService.kt deleted file mode 100644 index e61528f6ccb..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/ConfigurationProblemReporterService.kt +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.internal.service - -import org.gradle.api.Project -import org.gradle.api.logging.Logging -import org.gradle.api.provider.ListProperty -import org.gradle.api.provider.Provider -import org.gradle.api.provider.SetProperty -import org.gradle.api.services.BuildServiceParameters -import org.jetbrains.compose.createWarningAboutNonCompatibleCompiler -import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact - -abstract class ConfigurationProblemReporterService : AbstractComposeMultiplatformBuildService() { - interface Parameters : BuildServiceParameters { - val unsupportedPluginWarningProviders: ListProperty> - val warnings: SetProperty - } - - private val log = Logging.getLogger(this.javaClass) - - override fun close() { - warnAboutUnsupportedCompilerPlugin() - logWarnings() - } - - private fun warnAboutUnsupportedCompilerPlugin() { - for (warningProvider in parameters.unsupportedPluginWarningProviders.get()) { - val warning = warningProvider.orNull - if (warning != null) { - log.warn(warning) - } - } - } - - private fun logWarnings() { - for (warning in parameters.warnings.get()) { - log.warn(warning) - } - } - companion object { - fun init(project: Project) { - registerServiceIfAbsent(project) { - // WORKAROUND! Call getter at least once, because of Issue: https://github.com/gradle/gradle/issues/27099 - warnings - } - } - - private inline fun configureParameters(project: Project, fn: Parameters.() -> Unit) { - getExistingServiceRegistration(project) - .parameters.fn() - } - - fun reportWarning(project: Project, message: String) { - configureParameters(project) { warnings.add(message) } - } - - fun registerUnsupportedPluginProvider(project: Project, unsupportedPlugin: Provider) { - configureParameters(project) { - unsupportedPluginWarningProviders.add(unsupportedPlugin.map { unsupportedCompiler -> - unsupportedCompiler?.groupId?.let { createWarningAboutNonCompatibleCompiler(it) } - }) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/GradlePropertySnapshotService.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/GradlePropertySnapshotService.kt deleted file mode 100644 index 32e7cfa5599..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/service/GradlePropertySnapshotService.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.internal.service - -import org.gradle.api.Project -import org.gradle.api.provider.MapProperty -import org.gradle.api.services.BuildServiceParameters -import org.jetbrains.compose.experimental.internal.SUPPORTED_NATIVE_CACHE_KIND_PROPERTIES -import org.jetbrains.compose.internal.utils.loadProperties -import org.jetbrains.compose.internal.utils.localPropertiesFile - -internal abstract class GradlePropertySnapshotService : AbstractComposeMultiplatformBuildService() { - interface Parameters : BuildServiceParameters { - val gradlePropertiesCacheKindSnapshot: MapProperty - val localPropertiesCacheKindSnapshot: MapProperty - } - - internal val gradleProperties: Map = parameters.gradlePropertiesCacheKindSnapshot.get() - internal val localProperties: Map = parameters.localPropertiesCacheKindSnapshot.get() - - companion object { - fun init(project: Project) { - registerServiceIfAbsent(project) { - // WORKAROUND! Call getter at least once, because of Issue: https://github.com/gradle/gradle/issues/27099 - gradlePropertiesCacheKindSnapshot - localPropertiesCacheKindSnapshot - initParams(project) - } - } - - fun getInstance(project: Project): GradlePropertySnapshotService = - getExistingServiceRegistration(project).service.get() - - private fun Parameters.initParams(project: Project) { - // we want to record original properties (explicitly set by a user) - // before we possibly change them in configureNativeCompilerCaching.kt - val rootProject = project.rootProject - val localProperties = loadProperties(rootProject.localPropertiesFile) - for (cacheKindProperty in SUPPORTED_NATIVE_CACHE_KIND_PROPERTIES) { - rootProject.findProperty(cacheKindProperty)?.toString()?.let { value -> - gradlePropertiesCacheKindSnapshot.put(cacheKindProperty, value) - } - localProperties[cacheKindProperty]?.toString()?.let { value -> - localPropertiesCacheKindSnapshot.put(cacheKindProperty, value) - } - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/KGPPropertyProvider.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/KGPPropertyProvider.kt deleted file mode 100644 index d0431a41fc0..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/KGPPropertyProvider.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020-2023 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.internal.utils - -import org.gradle.api.Project -import org.jetbrains.compose.internal.service.GradlePropertySnapshotService - -/** - * Reads Kotlin Gradle plugin properties. - * - * Kotlin Gradle plugin supports reading property from two sources: - * 1. Gradle properties. Normally located in gradle.properties file, - * but can also be provided via command-line, /gradle.properties - * or can be set via Gradle API. - * 2. local.properties file. local.properties file is not supported by Gradle out-of-the-box. - * Nevertheless, it became a widespread convention. - */ -internal abstract class KGPPropertyProvider { - abstract fun valueOrNull(propertyName: String): String? - abstract val location: String - - class GradleProperties(private val project: Project) : KGPPropertyProvider() { - override fun valueOrNull(propertyName: String): String? = - GradlePropertySnapshotService.getInstance(project).gradleProperties[propertyName] - override val location: String = "gradle.properties" - } - - class LocalProperties(private val project: Project) : KGPPropertyProvider() { - override fun valueOrNull(propertyName: String): String? = - GradlePropertySnapshotService.getInstance(project).localProperties[propertyName] - override val location: String = "local.properties" - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/providerUtils.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/providerUtils.kt index 07bd94dd3bc..2614dc60948 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/providerUtils.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/utils/providerUtils.kt @@ -5,11 +5,14 @@ package org.jetbrains.compose.internal.utils +import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory +import org.jetbrains.kotlin.gradle.plugin.extraProperties +import org.gradle.util.GradleVersion internal inline fun ObjectFactory.new(vararg params: Any): T = newInstance(T::class.java, *params) @@ -36,12 +39,19 @@ internal fun ProviderFactory.valueOrNull(prop: String): Provider = } private fun Provider.forUseAtConfigurationTimeSafe(): Provider = - try { - forUseAtConfigurationTime() - } catch (e: NoSuchMethodError) { - // todo: remove once we drop support for Gradle 6.4 + // forUseAtConfigurationTime is a no-op starting at Gradle 7.4 and just produces deprecation warnings. + // See https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api.provider/-provider/for-use-at-configuration-time.html + if (GradleVersion.current() >= GradleVersion.version("7.4")) { this + } else { + // todo: remove once we drop support for Gradle 6.4 + forUseAtConfigurationTime() } internal fun Provider.toBooleanProvider(defaultValue: Boolean): Provider = orElse(defaultValue.toString()).map { "true" == it } + +internal fun Project.findLocalOrGlobalProperty(name: String, default: String = ""): Provider = provider { + if (extraProperties.has(name)) extraProperties.get(name).toString() + else providers.gradleProperty(name).forUseAtConfigurationTimeSafe().getOrElse(default) +} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AndroidResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AndroidResources.kt index f1d9f2855b4..943c51be9c2 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AndroidResources.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AndroidResources.kt @@ -1,7 +1,10 @@ package org.jetbrains.compose.resources +import com.android.build.api.dsl.KotlinMultiplatformAndroidLibraryTarget import com.android.build.api.variant.AndroidComponentsExtension -import com.android.build.gradle.BaseExtension +import com.android.build.api.variant.HasAndroidTest +import com.android.build.api.variant.KotlinMultiplatformAndroidComponentsExtension +import com.android.build.api.variant.Sources import com.android.build.gradle.internal.lint.AndroidLintAnalysisTask import com.android.build.gradle.internal.lint.LintModelWriterTask import org.gradle.api.DefaultTask @@ -10,81 +13,194 @@ import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.FileCollection import org.gradle.api.file.FileSystemOperations import org.gradle.api.provider.Property -import org.gradle.api.tasks.* +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.IgnoreEmptyDirectories +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Optional +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.TaskAction +import org.jetbrains.compose.internal.Version import org.jetbrains.compose.internal.utils.registerTask import org.jetbrains.compose.internal.utils.uppercaseFirstChar -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation -import org.jetbrains.kotlin.gradle.plugin.sources.android.androidSourceSetInfoOrNull -import org.jetbrains.kotlin.gradle.utils.ObservableSet +import java.io.File import javax.inject.Inject -@OptIn(ExperimentalKotlinGradlePluginApi::class) +//copy all compose resources to android assets internal fun Project.configureAndroidComposeResources( + agpPluginId: String, + moduleResourceDir: Provider? = null +) { + val kotlinExtension = extensions.findByType(KotlinMultiplatformExtension::class.java) ?: return + + if (agpPluginId != AGP_KMP_LIB_ID) { + extensions.findByType(AndroidComponentsExtension::class.java)?.let { androidComponents -> + configureAndroidComposeResources(kotlinExtension, androidComponents, moduleResourceDir) + } + } else { + @Suppress("UnstableApiUsage") + extensions.findByType(KotlinMultiplatformAndroidComponentsExtension::class.java)?.let { androidComponents -> + configureAndroidComposeResources(kotlinExtension, androidComponents, moduleResourceDir) + } + } +} + +private fun Project.configureAndroidComposeResources( kotlinExtension: KotlinMultiplatformExtension, - androidExtension: BaseExtension + androidComponents: AndroidComponentsExtension<*, *, *>, + moduleResourceDir: Provider? ) { - // 1) get the Kotlin Android Target Compilation -> [A] - // 2) get default source set name for the 'A' - // 3) find the associated Android SourceSet in the AndroidExtension -> [B] - // 4) get all source sets in the 'A' and add its resources to the 'B' - kotlinExtension.targets.withType(KotlinAndroidTarget::class.java).all { androidTarget -> - androidTarget.compilations.all { compilation: KotlinJvmAndroidCompilation -> - compilation.defaultSourceSet.androidSourceSetInfoOrNull?.let { kotlinAndroidSourceSet -> - androidExtension.sourceSets - .matching { it.name == kotlinAndroidSourceSet.androidSourceSetName } - .all { androidSourceSet -> - (compilation.allKotlinSourceSets as? ObservableSet)?.forAll { kotlinSourceSet -> - val preparedComposeResources = getPreparedComposeResourcesDir(kotlinSourceSet) - androidSourceSet.resources.srcDirs(preparedComposeResources) - - //fix for AGP < 8.0 - //usually 'androidSourceSet.resources.srcDir(preparedCommonResources)' should be enough - compilation.androidVariant.processJavaResourcesProvider.configure { - it.dependsOn(preparedComposeResources) - } - } - } + logger.info("Configure compose resources with AndroidComponentsExtension") + androidComponents.onVariants { variant -> + val componentAssets = getAndroidComponentComposeResources(kotlinExtension, variant.name) + configureGeneratedAndroidComponentAssets( + variant.name, + variant.sources, + componentAssets, + moduleResourceDir + ) + + if (variant is HasAndroidTest) { + variant.androidTest?.let { androidTest -> + val androidTestAssets = getAndroidComponentComposeResources(kotlinExtension, androidTest.name) + configureGeneratedAndroidComponentAssets( + androidTest.name, + androidTest.sources, + androidTestAssets, + moduleResourceDir + ) } } } +} - //copy fonts from the compose resources dir to android assets - val androidComponents = project.extensions.findByType(AndroidComponentsExtension::class.java) ?: return - androidComponents.onVariants { variant -> - val variantResources = project.files() - - kotlinExtension.targets.withType(KotlinAndroidTarget::class.java).all { androidTarget -> - androidTarget.compilations.all { compilation: KotlinJvmAndroidCompilation -> - if (compilation.androidVariant.name == variant.name) { - project.logger.info("Configure fonts for variant ${variant.name}") - (compilation.allKotlinSourceSets as? ObservableSet)?.forAll { kotlinSourceSet -> - val preparedComposeResources = getPreparedComposeResourcesDir(kotlinSourceSet) - variantResources.from(preparedComposeResources) - } +private fun Project.getAndroidComponentComposeResources( + kotlinExtension: KotlinMultiplatformExtension, + componentName: String +): FileCollection = project.files({ + kotlinExtension.targets.withType(KotlinAndroidTarget::class.java).flatMap { androidTarget -> + androidTarget.compilations.flatMap { compilation -> + if (compilation.androidVariant.name == componentName) { + compilation.allKotlinSourceSets.map { kotlinSourceSet -> + getPreparedComposeResourcesDir(kotlinSourceSet) } + } else emptyList() + } + } +}) + +private const val AGP_8_10 = "8.10" + +@Suppress("UnstableApiUsage") +private fun Project.configureAndroidComposeResources( + kotlinExtension: KotlinMultiplatformExtension, + androidComponents: KotlinMultiplatformAndroidComponentsExtension, + moduleResourceDir: Provider? +) { + + // AGP 8.10 introduced new onVariantS {} API + // AGP 9.0.0-alpha01 removed onVariant {} API + // https://github.com/JetBrains/compose-multiplatform/pull/5385 + + val agpVersion = Version.fromString(androidComponents.pluginVersion.version) + if (agpVersion >= Version.fromString(AGP_8_10)) { + logger.info("Configure compose resources with KotlinMultiplatformAndroidComponentsExtension") + androidComponents.onVariants { variant -> + val variantAssets = getAndroidKmpComponentComposeResources(kotlinExtension, variant.name) + configureGeneratedAndroidComponentAssets( + variant.name, + variant.sources, + variantAssets, + moduleResourceDir + ) + + variant.androidTest?.let { androidTest -> + val androidTestAssets = getAndroidKmpComponentComposeResources(kotlinExtension, androidTest.name) + configureGeneratedAndroidComponentAssets( + androidTest.name, + androidTest.sources, + androidTestAssets, + moduleResourceDir + ) } } + } else { + logger.info("Configure compose resources with outdated KotlinMultiplatformAndroidComponentsExtension < 8.10") + androidComponents.onVariant { variant -> + val variantAssets = getAndroidKmpComponentComposeResources(kotlinExtension, variant.name) + configureGeneratedAndroidComponentAssets( + variant.name, + variant.sources, + variantAssets, + moduleResourceDir + ) - val copyFonts = registerTask( - "copy${variant.name.uppercaseFirstChar()}FontsToAndroidAssets" - ) { - from.set(variantResources) + variant.androidTest?.let { androidTest -> + val androidTestAssets = getAndroidKmpComponentComposeResources(kotlinExtension, androidTest.name) + configureGeneratedAndroidComponentAssets( + androidTest.name, + androidTest.sources, + androidTestAssets, + moduleResourceDir + ) + } + } + } +} + +@Suppress("UnstableApiUsage") +private fun Project.getAndroidKmpComponentComposeResources( + kotlinExtension: KotlinMultiplatformExtension, + componentName: String +): FileCollection = project.files({ + kotlinExtension.targets.withType(KotlinMultiplatformAndroidLibraryTarget::class.java) + .flatMap { androidTarget -> + androidTarget.compilations.flatMap { compilation -> + if (compilation.componentName == componentName) { + compilation.allKotlinSourceSets.map { kotlinSourceSet -> + getPreparedComposeResourcesDir(kotlinSourceSet) + } + } else emptyList() + } + } +}) + +private fun Project.configureGeneratedAndroidComponentAssets( + componentName: String, + componentSources: Sources, + componentAssets: FileCollection, + moduleResourceDir: Provider? +) { + logger.info("Configure $componentName resources for 'android' target") + + val camelComponentName = componentName.uppercaseFirstChar() + val copyComponentAssets = registerTask( + "copy${camelComponentName}ComposeResourcesToAndroidAssets" + ) { + from.set(componentAssets) + moduleResourceDir?.let { relativeResourcePlacement.set(it) } + } + + componentSources.assets?.addGeneratedSourceDirectory( + copyComponentAssets, + CopyResourcesToAndroidAssetsTask::outputDirectory + ) + tasks.configureEach { task -> + //fix agp task dependencies for AndroidStudio preview + if (task.name == "compile${camelComponentName}Sources") { + task.dependsOn(copyComponentAssets) + } + //fix linter task dependencies for `build` task + if (task is AndroidLintAnalysisTask || task is LintModelWriterTask) { + task.mustRunAfter(copyComponentAssets) } - variant.sources?.assets?.addGeneratedSourceDirectory( - taskProvider = copyFonts, - wiredWith = CopyAndroidFontsToAssetsTask::outputDirectory - ) - //exclude a duplication of fonts in apks - variant.packaging.resources.excludes.add("**/font*/*") } } //Copy task doesn't work with 'variant.sources?.assets?.addGeneratedSourceDirectory' API -internal abstract class CopyAndroidFontsToAssetsTask : DefaultTask() { +internal abstract class CopyResourcesToAndroidAssetsTask : DefaultTask() { @get:Inject abstract val fileSystem: FileSystemOperations @@ -92,6 +208,10 @@ internal abstract class CopyAndroidFontsToAssetsTask : DefaultTask() { @get:IgnoreEmptyDirectories abstract val from: Property + @get:Input + @get:Optional + abstract val relativeResourcePlacement: Property + @get:OutputDirectory abstract val outputDirectory: DirectoryProperty @@ -100,8 +220,11 @@ internal abstract class CopyAndroidFontsToAssetsTask : DefaultTask() { fileSystem.copy { it.includeEmptyDirs = false it.from(from) - it.include("**/font*/*") - it.into(outputDirectory) + if (relativeResourcePlacement.isPresent) { + it.into(outputDirectory.dir(relativeResourcePlacement.get().path)) + } else { + it.into(outputDirectory) + } } } } @@ -122,4 +245,4 @@ internal fun Project.fixAndroidLintTaskDependencies() { }.configureEach { it.mustRunAfter(tasks.withType(GenerateResourceAccessorsTask::class.java)) } -} \ No newline at end of file +} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AssembleTargetResourcesTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AssembleTargetResourcesTask.kt new file mode 100644 index 00000000000..556b8e1c9e8 --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/AssembleTargetResourcesTask.kt @@ -0,0 +1,56 @@ +package org.jetbrains.compose.resources + +import org.gradle.api.DefaultTask +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.DuplicatesStrategy +import org.gradle.api.file.FileSystemOperations +import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity +import org.gradle.api.tasks.TaskAction +import org.gradle.work.DisableCachingByDefault +import java.io.File +import javax.inject.Inject + +@DisableCachingByDefault(because = "There is no logic, just copy files") +internal abstract class AssembleTargetResourcesTask : DefaultTask() { + + @get:Inject + abstract val fileSystem: FileSystemOperations + + @get:InputFiles + @get:PathSensitive(PathSensitivity.RELATIVE) + abstract val resourceDirectories: ConfigurableFileCollection + + @get:Input + abstract val relativeResourcePlacement: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @TaskAction + fun action() { + val outputDirectoryFile = outputDirectory.get().asFile + if (outputDirectoryFile.exists()) { + outputDirectoryFile.deleteRecursively() + } + outputDirectoryFile.mkdirs() + + fileSystem.copy { copy -> + resourceDirectories.files.forEach { dir -> + copy.from(dir) + } + copy.into(outputDirectoryFile.resolve(relativeResourcePlacement.get())) + copy.duplicatesStrategy = DuplicatesStrategy.INCLUDE + } + + if (outputDirectoryFile.listFiles()?.isEmpty() != false) { + // Output an empty directory for the zip task + outputDirectoryFile.resolve(relativeResourcePlacement.get()).mkdirs() + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResources.kt index 4b678660367..2f702ec5504 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResources.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResources.kt @@ -1,33 +1,23 @@ package org.jetbrains.compose.resources -import com.android.build.gradle.BaseExtension -import com.android.build.gradle.internal.lint.AndroidLintAnalysisTask -import com.android.build.gradle.internal.lint.LintModelWriterTask import org.gradle.api.Project import org.gradle.api.provider.Provider -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.TaskProvider import org.gradle.util.GradleVersion -import org.jetbrains.compose.ComposePlugin import org.jetbrains.compose.desktop.application.internal.ComposeProperties import org.jetbrains.compose.internal.KOTLIN_JVM_PLUGIN_ID import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension import org.jetbrains.kotlin.gradle.plugin.KotlinBasePlugin -import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.extraProperties -import java.io.File internal const val COMPOSE_RESOURCES_DIR = "composeResources" internal const val RES_GEN_DIR = "generated/compose/resourceGenerator" -private const val KMP_RES_EXT = "multiplatformResourcesPublication" +internal const val KMP_RES_EXT = "multiplatformResourcesPublication" private const val MIN_GRADLE_VERSION_FOR_KMP_RESOURCES = "7.6" -private val androidPluginIds = listOf( - "com.android.application", - "com.android.library" -) +private const val AGP_APP_ID = "com.android.application" +private const val AGP_LIB_ID = "com.android.library" +internal const val AGP_KMP_LIB_ID = "com.android.kotlin.multiplatform.library" internal fun Project.configureComposeResources(extension: ResourcesExtension) { val config = provider { extension } @@ -45,8 +35,8 @@ private fun Project.onKgpApplied(config: Provider, kgp: Kotl val kmpResourcesAreAvailable = !disableMultimoduleResources && hasKmpResources && currentGradleVersion >= minGradleVersion if (kmpResourcesAreAvailable) { - configureKmpResources(kotlinExtension, extraProperties.get(KMP_RES_EXT)!!, config) - onAgpApplied { fixAndroidLintTaskDependencies() } + configureMultimoduleResources(kotlinExtension, config) + configureXCFrameworkComposeResources(kotlinExtension, kgp) } else { if (!disableMultimoduleResources) { if (!hasKmpResources) logger.info( @@ -63,44 +53,19 @@ private fun Project.onKgpApplied(config: Provider, kgp: Kotl ) } - val commonMain = KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME - configureComposeResources(kotlinExtension, commonMain, config) - - onAgpApplied { androidExtension -> - configureAndroidComposeResources(kotlinExtension, androidExtension) - fixAndroidLintTaskDependencies() - } + configureSinglemoduleResources(kotlinExtension, config) } configureSyncIosComposeResources(kotlinExtension) } -private fun Project.onAgpApplied(block: (androidExtension: BaseExtension) -> Unit) { - androidPluginIds.forEach { pluginId -> - plugins.withId(pluginId) { - val androidExtension = project.extensions.getByType(BaseExtension::class.java) - block(androidExtension) - } - } +internal fun Project.onKotlinJvmApplied(config: Provider) { + val kotlinExtension = project.extensions.getByType(KotlinJvmProjectExtension::class.java) + configureJvmOnlyResources(kotlinExtension, config) } -private fun Project.onKotlinJvmApplied(config: Provider) { - val kotlinExtension = project.extensions.getByType(KotlinProjectExtension::class.java) - val main = SourceSet.MAIN_SOURCE_SET_NAME - configureComposeResources(kotlinExtension, main, config) -} - -// sourceSet.resources.srcDirs doesn't work for Android targets. -// Android resources should be configured separately -private fun Project.configureComposeResources( - kotlinExtension: KotlinProjectExtension, - resClassSourceSetName: String, - config: Provider -) { - logger.info("Configure compose resources") - configureComposeResourcesGeneration(kotlinExtension, resClassSourceSetName, config, false) - - kotlinExtension.sourceSets.all { sourceSet -> - sourceSet.resources.srcDirs(getPreparedComposeResourcesDir(sourceSet)) +internal fun Project.onAgpApplied(block: (pluginId: String) -> Unit) { + listOf(AGP_APP_ID, AGP_LIB_ID, AGP_KMP_LIB_ID).forEach { pluginId -> + plugins.withId(pluginId) { block(pluginId) } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResourcesGeneration.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResourcesGeneration.kt index 8c28fa4f04f..3982a0640cc 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResourcesGeneration.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ComposeResourcesGeneration.kt @@ -3,11 +3,18 @@ package org.jetbrains.compose.resources import org.gradle.api.Project import org.gradle.api.provider.Provider import org.jetbrains.compose.ComposePlugin +import org.jetbrains.compose.desktop.application.internal.ComposeProperties import org.jetbrains.compose.internal.IDEA_IMPORT_TASK_NAME import org.jetbrains.compose.internal.IdeaImportTask import org.jetbrains.compose.internal.utils.uppercaseFirstChar +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget +import org.jetbrains.kotlin.tooling.core.withClosure import java.io.File internal fun Project.configureComposeResourcesGeneration( @@ -38,6 +45,7 @@ internal fun Project.configureComposeResourcesGeneration( } } val packageName = config.getResourcePackage(project) + val resClassName = config.map { it.nameOfResClass } val makeAccessorsPublic = config.map { it.publicResClass } val packagingDir = config.getModuleResourcesDir(project) @@ -47,6 +55,7 @@ internal fun Project.configureComposeResourcesGeneration( sourceSet, shouldGenerateCode, packageName, + resClassName, makeAccessorsPublic, packagingDir, generateModulePath @@ -54,19 +63,28 @@ internal fun Project.configureComposeResourcesGeneration( } //common resources must be converted (XML -> CVR) - val preparedResourcesTask = registerPrepareComposeResourcesTask(sourceSet) + val preparedResourcesTask = registerPrepareComposeResourcesTask(sourceSet, config) val preparedResources = preparedResourcesTask.flatMap { it.outputDir.asFile } configureResourceAccessorsGeneration( sourceSet, preparedResources, shouldGenerateCode, packageName, + resClassName, makeAccessorsPublic, packagingDir, generateModulePath ) } + configureResourceCollectorsGeneration( + kotlinExtension, + shouldGenerateCode, + packageName, + resClassName, + makeAccessorsPublic + ) + //setup task execution during IDE import tasks.configureEach { importTask -> if (importTask.name == IDEA_IMPORT_TASK_NAME) { @@ -79,28 +97,34 @@ private fun Project.configureResClassGeneration( resClassSourceSet: KotlinSourceSet, shouldGenerateCode: Provider, packageName: Provider, + resClassName: Provider, makeAccessorsPublic: Provider, packagingDir: Provider, generateModulePath: Boolean ) { - logger.info("Configure Res class generation for ${resClassSourceSet.name}") + logger.info("Configure '$resClassName' class generation for ${resClassSourceSet.name}") val genTask = tasks.register( "generateComposeResClass", GenerateResClassTask::class.java ) { task -> task.packageName.set(packageName) - task.shouldGenerateCode.set(shouldGenerateCode) + task.resClassName.set(resClassName) task.makeAccessorsPublic.set(makeAccessorsPublic) task.codeDir.set(layout.buildDirectory.dir("$RES_GEN_DIR/kotlin/commonResClass")) if (generateModulePath) { task.packagingDir.set(packagingDir) } + task.onlyIf { shouldGenerateCode.get() } } //register generated source set - resClassSourceSet.kotlin.srcDir(genTask.map { it.codeDir }) + resClassSourceSet.kotlin.srcDir( + genTask.zip(shouldGenerateCode) { task, flag -> + if (flag) listOf(task.codeDir) else emptyList() + } + ) } private fun Project.configureResourceAccessorsGeneration( @@ -108,6 +132,7 @@ private fun Project.configureResourceAccessorsGeneration( resourcesDir: Provider, shouldGenerateCode: Provider, packageName: Provider, + resClassName: Provider, makeAccessorsPublic: Provider, packagingDir: Provider, generateModulePath: Boolean @@ -115,21 +140,170 @@ private fun Project.configureResourceAccessorsGeneration( logger.info("Configure resource accessors generation for ${sourceSet.name}") val genTask = tasks.register( - "generateResourceAccessorsFor${sourceSet.name.uppercaseFirstChar()}", + sourceSet.getResourceAccessorsGenerationTaskName(), GenerateResourceAccessorsTask::class.java ) { task -> task.packageName.set(packageName) + task.resClassName.set(resClassName) task.sourceSetName.set(sourceSet.name) - task.shouldGenerateCode.set(shouldGenerateCode) task.makeAccessorsPublic.set(makeAccessorsPublic) task.resDir.set(resourcesDir) task.codeDir.set(layout.buildDirectory.dir("$RES_GEN_DIR/kotlin/${sourceSet.name}ResourceAccessors")) + task.disableResourceContentHashGeneration.set(ComposeProperties.disableResourceContentHashGeneration(providers)) if (generateModulePath) { task.packagingDir.set(packagingDir) } + task.onlyIf { shouldGenerateCode.get() } } //register generated source set - sourceSet.kotlin.srcDir(genTask.map { it.codeDir }) + sourceSet.kotlin.srcDir( + genTask.zip(shouldGenerateCode) { task, flag -> + if (flag) listOf(task.codeDir) else emptyList() + } + ) +} + +private fun KotlinSourceSet.getResourceAccessorsGenerationTaskName(): String { + return "generateResourceAccessorsFor${this.name.uppercaseFirstChar()}" +} + +//we have to generate actual resource collector functions for each leaf source set +private fun Project.configureResourceCollectorsGeneration( + kotlinExtension: KotlinProjectExtension, + shouldGenerateCode: Provider, + packageName: Provider, + resClassName: Provider, + makeAccessorsPublic: Provider +) { + if (kotlinExtension is KotlinMultiplatformExtension) { + kotlinExtension.sourceSets + .matching { it.name == KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME } + .all { commonMainSourceSet -> + configureExpectResourceCollectorsGeneration( + commonMainSourceSet, + shouldGenerateCode, + packageName, + resClassName, + makeAccessorsPublic + ) + } + + kotlinExtension.targets.all { target -> + if (target is KotlinAndroidTarget) { + kotlinExtension.sourceSets.matching { it.name == "androidMain" }.all { androidMain -> + configureActualResourceCollectorsGeneration( + androidMain, + shouldGenerateCode, + packageName, + resClassName, + makeAccessorsPublic, + true + ) + } + } else if (target !is KotlinMetadataTarget) { + target.compilations.matching { it.name == KotlinCompilation.MAIN_COMPILATION_NAME }.all { compilation -> + configureActualResourceCollectorsGeneration( + compilation.defaultSourceSet, + shouldGenerateCode, + packageName, + resClassName, + makeAccessorsPublic, + true + ) + } + } + } + } else if (kotlinExtension is KotlinSingleTargetExtension<*>) { + //JVM only projects + kotlinExtension.target.compilations + .findByName(KotlinCompilation.MAIN_COMPILATION_NAME) + ?.let { compilation -> + configureActualResourceCollectorsGeneration( + compilation.defaultSourceSet, + shouldGenerateCode, + packageName, + resClassName, + makeAccessorsPublic, + false + ) + } + } + +} + +private fun Project.configureExpectResourceCollectorsGeneration( + sourceSet: KotlinSourceSet, + shouldGenerateCode: Provider, + packageName: Provider, + resClassName: Provider, + makeAccessorsPublic: Provider +) { + logger.info("Configure expect resource collectors generation for ${sourceSet.name}") + + + val genTask = tasks.register( + "generateExpectResourceCollectorsFor${sourceSet.name.uppercaseFirstChar()}", + GenerateExpectResourceCollectorsTask::class.java + ) { task -> + task.packageName.set(packageName) + task.resClassName.set(resClassName) + task.makeAccessorsPublic.set(makeAccessorsPublic) + task.codeDir.set(layout.buildDirectory.dir("$RES_GEN_DIR/kotlin/${sourceSet.name}ResourceCollectors")) + task.onlyIf { shouldGenerateCode.get() } + } + + //register generated source set + sourceSet.kotlin.srcDir( + genTask.zip(shouldGenerateCode) { task, flag -> + if (flag) listOf(task.codeDir) else emptyList() + } + ) +} + +private fun Project.configureActualResourceCollectorsGeneration( + sourceSet: KotlinSourceSet, + shouldGenerateCode: Provider, + packageName: Provider, + resClassName: Provider, + makeAccessorsPublic: Provider, + useActualModifier: Boolean +) { + val taskName = "generateActualResourceCollectorsFor${sourceSet.name.uppercaseFirstChar()}" + if (tasks.names.contains(taskName)) { + logger.info("Actual resource collectors generation for ${sourceSet.name} is already configured") + return + } + logger.info("Configure actual resource collectors generation for ${sourceSet.name}") + + val accessorDirs = project.files({ + val allSourceSets = sourceSet.withClosure { it.dependsOn } + allSourceSets.mapNotNull { item -> + val accessorsTaskName = item.getResourceAccessorsGenerationTaskName() + if (tasks.names.contains(accessorsTaskName)) { + tasks.named(accessorsTaskName, GenerateResourceAccessorsTask::class.java).map { it.codeDir } + } else null + } + }) + + val genTask = tasks.register( + taskName, + GenerateActualResourceCollectorsTask::class.java + ) { task -> + task.packageName.set(packageName) + task.resClassName.set(resClassName) + task.makeAccessorsPublic.set(makeAccessorsPublic) + task.useActualModifier.set(useActualModifier) + task.resourceAccessorDirs.from(accessorDirs) + task.codeDir.set(layout.buildDirectory.dir("$RES_GEN_DIR/kotlin/${sourceSet.name}ResourceCollectors")) + task.onlyIf { shouldGenerateCode.get() } + } + + //register generated source set + sourceSet.kotlin.srcDir( + genTask.zip(shouldGenerateCode) { task, flag -> + if (flag) listOf(task.codeDir) else emptyList() + } + ) } \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResClassTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResClassTask.kt index 5ce79a5268d..100905b2bfc 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResClassTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResClassTask.kt @@ -9,19 +9,15 @@ import org.jetbrains.compose.internal.IdeaImportTask import java.io.File internal abstract class GenerateResClassTask : IdeaImportTask() { - companion object { - private const val RES_FILE_NAME = "Res" - } - @get:Input abstract val packageName: Property @get:Input - @get:Optional - abstract val packagingDir: Property + abstract val resClassName: Property @get:Input - abstract val shouldGenerateCode: Property + @get:Optional + abstract val packagingDir: Property @get:Input abstract val makeAccessorsPublic: Property @@ -34,15 +30,12 @@ internal abstract class GenerateResClassTask : IdeaImportTask() { dir.deleteRecursively() dir.mkdirs() - if (shouldGenerateCode.get()) { - logger.info("Generate $RES_FILE_NAME.kt") + val resClassName = resClassName.get() + logger.info("Generate $resClassName.kt") - val pkgName = packageName.get() - val moduleDirectory = packagingDir.getOrNull()?.let { it.invariantSeparatorsPath + "/" } ?: "" - val isPublic = makeAccessorsPublic.get() - getResFileSpec(pkgName, RES_FILE_NAME, moduleDirectory, isPublic).writeTo(dir) - } else { - logger.info("Generation Res class is disabled") - } + val pkgName = packageName.get() + val moduleDirectory = packagingDir.getOrNull()?.let { it.invariantSeparatorsPath + "/" } ?: "" + val isPublic = makeAccessorsPublic.get() + getResFileSpec(pkgName, resClassName, moduleDirectory, isPublic).writeTo(dir) } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceAccessorsTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceAccessorsTask.kt index 9aca01b3ff4..f494ca2fdef 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceAccessorsTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceAccessorsTask.kt @@ -9,8 +9,9 @@ import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.PathSensitive import org.gradle.api.tasks.PathSensitivity import org.gradle.api.tasks.SkipWhenEmpty -import org.gradle.api.tasks.TaskAction import org.jetbrains.compose.internal.IdeaImportTask +import org.jetbrains.compose.internal.utils.OS +import org.jetbrains.compose.internal.utils.currentOS import java.io.File import java.nio.file.Path import kotlin.io.path.relativeTo @@ -19,6 +20,9 @@ internal abstract class GenerateResourceAccessorsTask : IdeaImportTask() { @get:Input abstract val packageName: Property + @get:Input + abstract val resClassName: Property + @get:Input abstract val sourceSetName: Property @@ -27,10 +31,10 @@ internal abstract class GenerateResourceAccessorsTask : IdeaImportTask() { abstract val packagingDir: Property @get:Input - abstract val shouldGenerateCode: Property + abstract val makeAccessorsPublic: Property @get:Input - abstract val makeAccessorsPublic: Property + abstract val disableResourceContentHashGeneration: Property @get:InputFiles @get:SkipWhenEmpty @@ -49,36 +53,53 @@ internal abstract class GenerateResourceAccessorsTask : IdeaImportTask() { kotlinDir.deleteRecursively() kotlinDir.mkdirs() - if (shouldGenerateCode.get()) { - logger.info("Generate accessors for $rootResDir") + logger.info("Generate accessors for $rootResDir") - //get first level dirs - val dirs = rootResDir.listNotHiddenFiles() + //get first level dirs + val dirs = rootResDir.listNotHiddenFiles() - dirs.forEach { f -> - if (!f.isDirectory) { - error("${f.name} is not directory! Raw files should be placed in '${rootResDir.name}/files' directory.") - } + dirs.forEach { f -> + if (!f.isDirectory) { + error("${f.name} is not directory! Raw files should be placed in '${rootResDir.name}/files' directory.") } + } - //type -> id -> resource item - val resources: Map>> = dirs - .flatMap { dir -> - dir.listNotHiddenFiles() - .mapNotNull { it.fileToResourceItems(rootResDir.toPath()) } - .flatten() - } - .groupBy { it.type } - .mapValues { (_, items) -> items.groupBy { it.name } } - - val pkgName = packageName.get() - val moduleDirectory = packagingDir.getOrNull()?.let { it.invariantSeparatorsPath + "/" } ?: "" - val isPublic = makeAccessorsPublic.get() - getAccessorsSpecs( - resources, pkgName, sourceSet, moduleDirectory, isPublic - ).forEach { it.writeTo(kotlinDir) } + //type -> id -> resource item + val resources: Map>> = dirs + .flatMap { dir -> + dir.listNotHiddenFiles() + .mapNotNull { it.fileToResourceItems(rootResDir.toPath()) } + .flatten() + } + .groupBy { it.type } + .mapValues { (_, items) -> items.groupBy { it.name } } + + val pkgName = packageName.get() + val moduleDirectory = packagingDir.getOrNull()?.let { it.invariantSeparatorsPath + "/" } ?: "" + val resClassName = resClassName.get() + val isPublic = makeAccessorsPublic.get() + val generateResourceContentHashAnnotation = !disableResourceContentHashGeneration.get() + getAccessorsSpecs( + resources, + pkgName, + sourceSet, + moduleDirectory, + resClassName, + isPublic, + generateResourceContentHashAnnotation + ).forEach { it.writeTo(kotlinDir) } + } + + private fun File.isTextResourceFile(): Boolean = + path.endsWith(".xml", true) || path.endsWith(".svg", true) + + private fun File.resourceContentHash(): Int { + if ((currentOS == OS.Windows) && isTextResourceFile()) { + // Windows has different line endings in comparison with Unixes, + // thus text resource files binary differ there, so we need to handle this. + return readText().replace("\r\n", "\n").toByteArray().contentHashCode() } else { - logger.info("Generation accessors for $rootResDir is disabled") + return readBytes().contentHashCode() } } @@ -109,7 +130,15 @@ internal abstract class GenerateResourceAccessorsTask : IdeaImportTask() { } val type = ResourceType.fromString(typeString) ?: error("Unknown resource type: '$typeString'.") - return listOf(ResourceItem(type, qualifiers, file.nameWithoutExtension.asUnderscoredIdentifier(), path)) + return listOf( + ResourceItem( + type, + qualifiers, + file.nameWithoutExtension.asUnderscoredIdentifier(), + path, + file.resourceContentHash() + ) + ) } private fun getValueResourceItems(dataFile: File, qualifiers: List, path: Path): List { @@ -140,7 +169,15 @@ internal abstract class GenerateResourceAccessorsTask : IdeaImportTask() { path: Path ): ResourceItem { val record = ValueResourceRecord.createFromString(recordString) - return ResourceItem(record.type, qualifiers, record.key.asUnderscoredIdentifier(), path, offset, size) + return ResourceItem( + record.type, + qualifiers, + record.key.asUnderscoredIdentifier(), + path, + record.content.hashCode(), + offset, + size + ) } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceCollectorsTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceCollectorsTask.kt new file mode 100644 index 00000000000..703925531a3 --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GenerateResourceCollectorsTask.kt @@ -0,0 +1,119 @@ +package org.jetbrains.compose.resources + +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity +import org.jetbrains.compose.internal.IdeaImportTask +import org.jetbrains.compose.internal.utils.uppercaseFirstChar + +internal abstract class GenerateExpectResourceCollectorsTask : IdeaImportTask() { + @get:Input + abstract val packageName: Property + + @get:Input + abstract val resClassName: Property + + @get:Input + abstract val makeAccessorsPublic: Property + + @get:OutputDirectory + abstract val codeDir: DirectoryProperty + + override fun safeAction() { + val kotlinDir = codeDir.get().asFile + + logger.info("Clean directory $kotlinDir") + kotlinDir.deleteRecursively() + kotlinDir.mkdirs() + + logger.info("Generate expect ResourceCollectors for $kotlinDir") + + val pkgName = packageName.get() + val resClassName = resClassName.get() + val isPublic = makeAccessorsPublic.get() + val spec = getExpectResourceCollectorsFileSpec( + packageName = pkgName, + fileName = "ExpectResourceCollectors", + resClassName = resClassName, + isPublic = isPublic + ) + spec.writeTo(kotlinDir) + } +} + +internal abstract class GenerateActualResourceCollectorsTask : IdeaImportTask() { + @get:Input + abstract val packageName: Property + + @get:Input + abstract val resClassName: Property + + @get:Input + abstract val makeAccessorsPublic: Property + + @get:Input + abstract val useActualModifier: Property + + @get:InputFiles + @get:PathSensitive(PathSensitivity.RELATIVE) + abstract val resourceAccessorDirs: ConfigurableFileCollection + + @get:OutputDirectory + abstract val codeDir: DirectoryProperty + + override fun safeAction() { + val kotlinDir = codeDir.get().asFile + val inputDirs = resourceAccessorDirs.files + + logger.info("Clean directory $kotlinDir") + kotlinDir.deleteRecursively() + kotlinDir.mkdirs() + + val inputFiles = inputDirs.flatMap { dir -> + dir.walkTopDown().filter { !it.isHidden && it.isFile && it.extension == "kt" }.toList() + } + logger.info("Generate actual ResourceCollectors for $kotlinDir") + val funNames = inputFiles.mapNotNull { inputFile -> + if (inputFile.nameWithoutExtension.contains('.')) { + val (fileName, suffix) = inputFile.nameWithoutExtension.split('.') + val type = ResourceType.entries.firstOrNull { fileName.startsWith(it.accessorName, true) } + val name = "_collect${suffix.uppercaseFirstChar()}${fileName}Resources" + + if (type == null) { + logger.warn("Unknown resources type: `$inputFile`") + null + } else if (!inputFile.readText().contains(name)) { + logger.warn("A function '$name' is not found in the `$inputFile` file!") + null + } else { + logger.info("Found collector function: `$name`") + type to name + } + } else { + logger.warn("Unknown file name: `$inputFile`") + null + } + } + .groupBy({ it.first }, { it.second }) + .mapValues { (_, values) -> values.sorted() } + + val pkgName = packageName.get() + val resClassName = resClassName.get() + val isPublic = makeAccessorsPublic.get() + val useActual = useActualModifier.get() + val spec = getActualResourceCollectorsFileSpec( + packageName = pkgName, + fileName = "ActualResourceCollectors", + resClassName = resClassName, + isPublic = isPublic, + useActualModifier = useActual, + typeToCollectorFunctions = funNames + ) + spec.writeTo(kotlinDir) + } +} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GeneratedResClassSpec.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GeneratedResClassSpec.kt index 1ecdd84f350..b34b278e07e 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GeneratedResClassSpec.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/GeneratedResClassSpec.kt @@ -1,6 +1,19 @@ package org.jetbrains.compose.resources -import com.squareup.kotlinpoet.* +import com.squareup.kotlinpoet.AnnotationSpec +import com.squareup.kotlinpoet.ClassName +import com.squareup.kotlinpoet.CodeBlock +import com.squareup.kotlinpoet.FileSpec +import com.squareup.kotlinpoet.FunSpec +import com.squareup.kotlinpoet.KModifier +import com.squareup.kotlinpoet.MAP +import com.squareup.kotlinpoet.MUTABLE_MAP +import com.squareup.kotlinpoet.MemberName +import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy +import com.squareup.kotlinpoet.PropertySpec +import com.squareup.kotlinpoet.TypeSpec +import com.squareup.kotlinpoet.asClassName +import com.squareup.kotlinpoet.withIndent import org.jetbrains.compose.internal.utils.uppercaseFirstChar import java.nio.file.Path import java.util.* @@ -26,6 +39,7 @@ internal data class ResourceItem( val qualifiers: List, val name: String, val path: Path, + val contentHash: Int, val offset: Long = -1, val size: Long = -1, ) @@ -42,9 +56,10 @@ private fun ResourceType.requiresKeyName() = this in setOf(ResourceType.STRING, ResourceType.STRING_ARRAY, ResourceType.PLURAL_STRING) private val resourceItemClass = ClassName("org.jetbrains.compose.resources", "ResourceItem") -private val experimentalAnnotation = AnnotationSpec.builder( - ClassName("org.jetbrains.compose.resources", "ExperimentalResourceApi") -).build() +private val internalAnnotationClass = ClassName("org.jetbrains.compose.resources", "InternalResourceApi") +private val internalAnnotation = AnnotationSpec.builder(internalAnnotationClass).build() + +private val resourceContentHashAnnotationClass = ClassName("org.jetbrains.compose.resources", "ResourceContentHash") private fun CodeBlock.Builder.addQualifiers(resourceItem: ResourceItem): CodeBlock.Builder { val languageQualifier = ClassName("org.jetbrains.compose.resources", "LanguageQualifier") @@ -113,19 +128,24 @@ private fun CodeBlock.Builder.addQualifiers(resourceItem: ResourceItem): CodeBlo internal fun getResFileSpec( packageName: String, - fileName: String, + className: String, moduleDir: String, isPublic: Boolean ): FileSpec { val resModifier = if (isPublic) KModifier.PUBLIC else KModifier.INTERNAL - return FileSpec.builder(packageName, fileName).also { file -> + return FileSpec.builder(packageName, className).also { file -> file.addAnnotation( AnnotationSpec.builder(ClassName("kotlin", "OptIn")) - .addMember("org.jetbrains.compose.resources.InternalResourceApi::class") - .addMember("org.jetbrains.compose.resources.ExperimentalResourceApi::class") + .addMember("%T::class", internalAnnotationClass) + .build() + ) + file.addAnnotation( + AnnotationSpec.builder(ClassName("kotlin", "Suppress")) + .addMember("%S", "RedundantVisibilityModifier") + .addMember("%S", "REDUNDANT_VISIBILITY_MODIFIER") .build() ) - file.addType(TypeSpec.objectBuilder("Res").also { resObject -> + file.addType(TypeSpec.objectBuilder(className).also { resObject -> resObject.addModifiers(resModifier) //readFileBytes @@ -136,13 +156,12 @@ internal fun getResFileSpec( """ Reads the content of the resource file at the specified path and returns it as a byte array. - Example: `val bytes = Res.readBytes("files/key.bin")` + Example: `val bytes = ${className}.readBytes("files/key.bin")` @param path The path of the file to read in the compose resource's directory. @return The content of the file as a byte array. """.trimIndent() ) - .addAnnotation(experimentalAnnotation) .addParameter("path", String::class) .addModifiers(KModifier.SUSPEND) .returns(ByteArray::class) @@ -158,13 +177,12 @@ internal fun getResFileSpec( """ Returns the URI string of the resource file at the specified path. - Example: `val uri = Res.getUri("files/key.bin")` + Example: `val uri = ${className}.getUri("files/key.bin")` @param path The path of the file in the compose resource's directory. @return The URI string of the file. """.trimIndent() ) - .addAnnotation(experimentalAnnotation) .addParameter("path", String::class) .returns(String::class) .addStatement("""return %M("$moduleDir" + path)""", getResourceUri) @@ -186,14 +204,16 @@ internal fun getResFileSpec( // // if accessor initializers are extracted from the single object but located in the same file // then a build may fail with: org.jetbrains.org.objectweb.asm.ClassTooLargeException: Class too large: Res$drawable -private const val ITEMS_PER_FILE_LIMIT = 500 +private const val ITEMS_PER_FILE_LIMIT = 100 internal fun getAccessorsSpecs( //type -> id -> items resources: Map>>, packageName: String, sourceSetName: String, moduleDir: String, - isPublic: Boolean + resClassName: String, + isPublic: Boolean, + generateResourceContentHashAnnotation: Boolean ): List { val resModifier = if (isPublic) KModifier.PUBLIC else KModifier.INTERNAL val files = mutableListOf() @@ -210,8 +230,10 @@ internal fun getAccessorsSpecs( sourceSetName.uppercaseFirstChar() + type.accessorName.uppercaseFirstChar() + index, packageName, moduleDir, + resClassName, resModifier, - idToResources.subMap(ids.first(), true, ids.last(), true) + idToResources.subMap(ids.first(), true, ids.last(), true), + generateResourceContentHashAnnotation ) ) } @@ -226,65 +248,153 @@ private fun getChunkFileSpec( chunkClassName: String, packageName: String, moduleDir: String, + resClassName: String, resModifier: KModifier, - idToResources: Map> + idToResources: Map>, + generateResourceContentHashAnnotation: Boolean ): FileSpec { return FileSpec.builder(packageName, fileName).also { chunkFile -> chunkFile.addAnnotation( AnnotationSpec.builder(ClassName("kotlin", "OptIn")) - .addMember("org.jetbrains.compose.resources.InternalResourceApi::class") + .addMember("%T::class", internalAnnotationClass) .build() ) - val objectSpec = TypeSpec.objectBuilder(chunkClassName).also { typeObject -> - typeObject.addModifiers(KModifier.PRIVATE) - val properties = idToResources.keys.map { resName -> - PropertySpec.builder(resName, type.getClassName()) - .delegate("\nlazy·{ init_$resName() }") - .build() - } - typeObject.addProperties(properties) - }.build() - chunkFile.addType(objectSpec) + chunkFile.addProperty( + PropertySpec.builder("MD", String::class) + .addModifiers(KModifier.PRIVATE, KModifier.CONST) + .initializer("%S", moduleDir) + .build() + ) idToResources.forEach { (resName, items) -> - val accessor = PropertySpec.builder(resName, type.getClassName(), resModifier) - .receiver(ClassName(packageName, "Res", type.accessorName)) - .getter(FunSpec.getterBuilder().addStatement("return $chunkClassName.$resName").build()) + val initializer = CodeBlock.builder() + .beginControlFlow("lazy {") + .apply { + if (type.requiresKeyName()) { + add("%T(%S, %S, setOf(\n", type.getClassName(), "$type:$resName", resName) + } else { + add("%T(%S, setOf(\n", type.getClassName(), "$type:$resName") + } + items.forEach { item -> + add(" %T(setOf(", resourceItemClass) + addQualifiers(item) + add("), ") + //file separator should be '/' on all platforms + add("\"${'$'}{MD}${item.path.invariantSeparatorsPathString}\", ${item.offset}, ${item.size}") + add("),\n") + } + add("))\n") + } + .endControlFlow() .build() - chunkFile.addProperty(accessor) - - val initializer = FunSpec.builder("init_$resName") - .addModifiers(KModifier.PRIVATE) - .returns(type.getClassName()) - .addStatement( - CodeBlock.builder() - .add("return %T(\n", type.getClassName()).withIndent { - add("\"${type}:${resName}\",") - if (type.requiresKeyName()) add(" \"$resName\",") - withIndent { - add("\nsetOf(\n").withIndent { - items.forEach { item -> - add("%T(", resourceItemClass) - add("setOf(").addQualifiers(item).add("), ") - //file separator should be '/' on all platforms - add("\"$moduleDir${item.path.invariantSeparatorsPathString}\", ") - add("${item.offset}, ${item.size}") - add("),\n") - } - } - add(")\n") - } - } - .add(")") - .build().toString() + + val accessorBuilder = PropertySpec.builder(resName, type.getClassName(), resModifier) + .receiver(ClassName(packageName, resClassName, type.accessorName)) + .delegate(initializer) + if (generateResourceContentHashAnnotation) { + accessorBuilder.addAnnotation( + AnnotationSpec.builder(resourceContentHashAnnotationClass) + .useSiteTarget(AnnotationSpec.UseSiteTarget.DELEGATE) + .addMember("%L", items.fold(0) { acc, item -> ((acc * 31) + item.contentHash) }) + .build() + ) + } + chunkFile.addProperty(accessorBuilder.build()) + } + + //__collect${chunkClassName}Resources function + chunkFile.addFunction( + FunSpec.builder("_collect${chunkClassName}Resources") + .addAnnotation(internalAnnotation) + .addModifiers(KModifier.INTERNAL) + .addParameter( + "map", + MUTABLE_MAP.parameterizedBy(String::class.asClassName(), type.getClassName()) ) + .also { collectFun -> + idToResources.keys.forEach { resName -> + collectFun.addStatement("map.put(%S, %N.%N.%N)", resName, resClassName, type.accessorName, resName) + } + } .build() - chunkFile.addFunction(initializer) + ) + }.build() +} + +internal fun getExpectResourceCollectorsFileSpec( + packageName: String, + fileName: String, + resClassName: String, + isPublic: Boolean +): FileSpec { + val resModifier = if (isPublic) KModifier.PUBLIC else KModifier.INTERNAL + return FileSpec.builder(packageName, fileName).also { file -> + ResourceType.values().forEach { type -> + val typeClassName = type.getClassName() + file.addProperty( + PropertySpec + .builder( + "all${typeClassName.simpleName}s", + MAP.parameterizedBy(String::class.asClassName(), typeClassName), + KModifier.EXPECT, + resModifier + ) + .receiver(ClassName(packageName, resClassName)) + .build() + ) } }.build() } +internal fun getActualResourceCollectorsFileSpec( + packageName: String, + fileName: String, + resClassName: String, + isPublic: Boolean, + useActualModifier: Boolean, //e.g. java only project doesn't need actual modifiers + typeToCollectorFunctions: Map> +): FileSpec = FileSpec.builder(packageName, fileName).also { file -> + val resModifier = if (isPublic) KModifier.PUBLIC else KModifier.INTERNAL + + file.addAnnotation( + AnnotationSpec.builder(ClassName("kotlin", "OptIn")) + .addMember("org.jetbrains.compose.resources.InternalResourceApi::class") + .build() + ) + + ResourceType.values().forEach { type -> + val typeClassName = type.getClassName() + val initBlock = CodeBlock.builder() + .addStatement("lazy {").withIndent { + addStatement("val map = mutableMapOf()", typeClassName) + typeToCollectorFunctions.get(type).orEmpty().forEach { item -> + addStatement("%N(map)", item) + } + addStatement("return@lazy map") + } + .addStatement("}") + .build() + + val mods = if (useActualModifier) { + listOf(KModifier.ACTUAL, resModifier) + } else { + listOf(resModifier) + } + + val property = PropertySpec + .builder( + "all${typeClassName.simpleName}s", + MAP.parameterizedBy(String::class.asClassName(), typeClassName), + mods + ) + .receiver(ClassName(packageName, resClassName)) + .delegate(initBlock) + .build() + file.addProperty(property) + } +}.build() + private fun sortResources( resources: Map>> ): TreeMap>> { @@ -301,4 +411,4 @@ private fun sortResources( result[type] = typeResult } return result -} \ No newline at end of file +} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt index bdb114d4ace..0664a45896b 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt @@ -6,10 +6,15 @@ import org.gradle.api.plugins.ExtensionAware import org.gradle.api.provider.Provider import org.gradle.api.tasks.Copy import org.jetbrains.compose.desktop.application.internal.ComposeProperties -import org.jetbrains.compose.internal.utils.* +import org.jetbrains.compose.internal.utils.dependsOn +import org.jetbrains.compose.internal.utils.joinLowerCamelCase +import org.jetbrains.compose.internal.utils.registerOrConfigure +import org.jetbrains.compose.internal.utils.uppercaseFirstChar import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension -import org.jetbrains.kotlin.gradle.plugin.mpp.* +import org.jetbrains.kotlin.gradle.plugin.mpp.Framework +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.TestExecutable import org.jetbrains.kotlin.konan.target.KonanTarget import java.io.File @@ -28,7 +33,7 @@ internal fun Project.configureSyncIosComposeResources( } kotlinExtension.targets.withType(KotlinNativeTarget::class.java).all { nativeTarget -> - if (nativeTarget.isIosTarget()) { + if (nativeTarget.isIosOrMacTarget()) { nativeTarget.binaries.withType(Framework::class.java).all { iosFramework -> val frameworkClassifier = iosFramework.getClassifier() val checkNoSandboxTask = tasks.registerOrConfigure( @@ -81,19 +86,22 @@ internal fun Project.configureSyncIosComposeResources( plugins.withId(COCOAPODS_PLUGIN_ID) { (kotlinExtension as ExtensionAware).extensions.getByType(CocoapodsExtension::class.java).apply { framework { podFramework -> - val syncDir = podFramework.getFinalResourcesDir().get().asFile.relativeTo(projectDir) - val specAttr = "['${syncDir.path}']" - extraSpecAttributes["resources"] = specAttr - project.tasks.named("podInstall").configure { + val syncDir = podFramework.getFinalResourcesDir().get().asFile + val specAttr = "['${syncDir.relativeTo(projectDir).path}']" + val specAttributes = extraSpecAttributes + val buildFile = project.buildFile + val projectPath = project.path + specAttributes["resources"] = specAttr + project.tasks.named("podspec").configure { + it.outputs.dir(syncDir) it.doFirst { - if (extraSpecAttributes["resources"] != specAttr) error( + if (specAttributes["resources"] != specAttr) error( """ |Kotlin.cocoapods.extraSpecAttributes["resources"] is not compatible with Compose Multiplatform's resources management for iOS. - | * Recommended action: remove extraSpecAttributes["resources"] from '${project.buildFile}' and run '${project.path}:podInstall' once; + | * Recommended action: remove extraSpecAttributes["resources"] from '$buildFile' and run '$projectPath:podspec' once; | * Alternative action: turn off Compose Multiplatform's resources management for iOS by adding '${ComposeProperties.SYNC_RESOURCES_PROPERTY}=false' to your gradle.properties; """.trimMargin() ) - syncDir.mkdirs() } } } @@ -108,6 +116,7 @@ private fun Framework.getClassifier(): String { } internal fun Framework.getSyncResourcesTaskName() = "sync${getClassifier()}ComposeResourcesForIos" + private fun Framework.isCocoapodsFramework() = name.startsWith("pod") private fun Framework.getFinalResourcesDir(): Provider { @@ -117,9 +126,9 @@ private fun Framework.getFinalResourcesDir(): Provider { } else { providers.environmentVariable("BUILT_PRODUCTS_DIR") .zip( - providers.environmentVariable("CONTENTS_FOLDER_PATH") - ) { builtProductsDir, contentsFolderPath -> - File("$builtProductsDir/$contentsFolderPath/$IOS_COMPOSE_RESOURCES_ROOT_DIR").canonicalPath + providers.environmentVariable("UNLOCALIZED_RESOURCES_FOLDER_PATH") + ) { builtProductsDir, unlocalizedResourcesFolderPath -> + File("$builtProductsDir/$unlocalizedResourcesFolderPath/$IOS_COMPOSE_RESOURCES_ROOT_DIR").canonicalPath } .flatMap { project.objects.directoryProperty().apply { set(File(it)) } @@ -131,7 +140,13 @@ private fun KotlinNativeTarget.isIosSimulatorTarget(): Boolean = konanTarget === KonanTarget.IOS_X64 || konanTarget === KonanTarget.IOS_SIMULATOR_ARM64 private fun KotlinNativeTarget.isIosDeviceTarget(): Boolean = - konanTarget === KonanTarget.IOS_ARM64 || konanTarget === KonanTarget.IOS_ARM32 + konanTarget === KonanTarget.IOS_ARM64 private fun KotlinNativeTarget.isIosTarget(): Boolean = - isIosSimulatorTarget() || isIosDeviceTarget() \ No newline at end of file + isIosSimulatorTarget() || isIosDeviceTarget() + +private fun KotlinNativeTarget.isMacTarget(): Boolean = + konanTarget === KonanTarget.MACOS_X64 || konanTarget === KonanTarget.MACOS_ARM64 + +private fun KotlinNativeTarget.isIosOrMacTarget(): Boolean = + isIosTarget() || isMacTarget() diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt index 90681d3166d..62afc079833 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResourcesTasks.kt @@ -4,8 +4,16 @@ import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.FileCollection import org.gradle.api.model.ObjectFactory -import org.gradle.api.provider.* -import org.gradle.api.tasks.* +import org.gradle.api.provider.MapProperty +import org.gradle.api.provider.Provider +import org.gradle.api.provider.ProviderFactory +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity +import org.gradle.api.tasks.TaskAction import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject @@ -95,7 +103,6 @@ private fun getRequestedKonanTargetsByXcode(platform: String, archs: List when (arch) { "arm64", "arm64e" -> KonanTarget.IOS_ARM64 - "armv7", "armv7s" -> KonanTarget.IOS_ARM32 else -> error("Unknown iOS device arch: '$arch'") } }) @@ -111,7 +118,17 @@ private fun getRequestedKonanTargetsByXcode(platform: String, archs: List error("Unknown iOS platform: '$platform'") + platform.startsWith("macosx") -> { + targets.addAll(archs.map { arch -> + when (arch) { + "arm64" -> KonanTarget.MACOS_ARM64 + "x86_64" -> KonanTarget.MACOS_X64 + else -> error("Unknown macOS arch: '$arch'") + } + }) + } + + else -> error("Unknown Apple platform: '$platform'") } return targets.toList() diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/KmpResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/KmpResources.kt deleted file mode 100644 index 3a945db5606..00000000000 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/KmpResources.kt +++ /dev/null @@ -1,97 +0,0 @@ -package org.jetbrains.compose.resources - -import org.gradle.api.Project -import org.gradle.api.provider.Provider -import org.jetbrains.kotlin.gradle.ComposeKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension -import org.jetbrains.kotlin.gradle.plugin.* -import org.jetbrains.kotlin.gradle.plugin.mpp.* -import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication -import java.io.File - - -@OptIn(ComposeKotlinGradlePluginApi::class) -internal fun Project.configureKmpResources( - kotlinExtension: KotlinProjectExtension, - kmpResources: Any, - config: Provider -) { - kotlinExtension as KotlinMultiplatformExtension - kmpResources as KotlinTargetResourcesPublication - - logger.info("Configure KMP resources") - - val commonMain = KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME - configureComposeResourcesGeneration(kotlinExtension, commonMain, config, true) - - //configure KMP resources publishing for each supported target - kotlinExtension.targets - .matching { target -> kmpResources.canPublishResources(target) } - .all { target -> - logger.info("Configure resources publication for '${target.targetName}' target") - val packedResourceDir = config.getModuleResourcesDir(project) - - kmpResources.publishResourcesAsKotlinComponent( - target, - { sourceSet -> - KotlinTargetResourcesPublication.ResourceRoot( - getPreparedComposeResourcesDir(sourceSet), - emptyList(), - //for android target exclude fonts - if (target is KotlinAndroidTarget) listOf("**/font*/*") else emptyList() - ) - }, - packedResourceDir - ) - - if (target is KotlinAndroidTarget) { - //for android target publish fonts in assets - logger.info("Configure fonts relocation for '${target.targetName}' target") - kmpResources.publishInAndroidAssets( - target, - { sourceSet -> - KotlinTargetResourcesPublication.ResourceRoot( - getPreparedComposeResourcesDir(sourceSet), - listOf("**/font*/*"), - emptyList() - ) - }, - packedResourceDir - ) - } - } - - //add all resolved resources for browser and native compilations - val platformsForSetupCompilation = listOf(KotlinPlatformType.native, KotlinPlatformType.js, KotlinPlatformType.wasm) - kotlinExtension.targets - .matching { target -> target.platformType in platformsForSetupCompilation } - .all { target: KotlinTarget -> - val allResources = kmpResources.resolveResources(target) - target.compilations.all { compilation -> - if (compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME) { - configureResourcesForCompilation(compilation, allResources) - } - } - } -} - -/** - * Add resolved resources to a kotlin compilation to include it into a resulting platform artefact - * It is required for JS and Native targets. - * For JVM and Android it works automatically via jar files - */ -private fun Project.configureResourcesForCompilation( - compilation: KotlinCompilation<*>, - directoryWithAllResourcesForCompilation: Provider -) { - logger.info("Add all resolved resources to '${compilation.target.targetName}' target '${compilation.name}' compilation") - compilation.defaultSourceSet.resources.srcDir(directoryWithAllResourcesForCompilation) - - //JS packaging requires explicit dependency - if (compilation is KotlinJsCompilation) { - tasks.named(compilation.processResourcesTaskName).configure { processResourcesTask -> - processResourcesTask.dependsOn(directoryWithAllResourcesForCompilation) - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/MultimoduleResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/MultimoduleResources.kt new file mode 100644 index 00000000000..b34fc9accc8 --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/MultimoduleResources.kt @@ -0,0 +1,166 @@ +package org.jetbrains.compose.resources + +import com.android.build.api.dsl.KotlinMultiplatformAndroidTarget +import org.gradle.api.Project +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.SourceSet +import org.jetbrains.compose.internal.utils.registerTask +import org.jetbrains.compose.internal.utils.uppercaseFirstChar +import org.jetbrains.kotlin.gradle.ComposeKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.KotlinTarget +import org.jetbrains.kotlin.gradle.plugin.extraProperties +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication +import java.io.File + +//configure multi-module resources (with publishing and module isolation) +internal fun Project.configureMultimoduleResources( + kotlinExtension: KotlinMultiplatformExtension, + config: Provider +) { + logger.info("Configure multi-module compose resources") + + val commonMain = KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME + configureComposeResourcesGeneration(kotlinExtension, commonMain, config, true) + + val moduleIsolationDirectory = config.getModuleResourcesDir(project) + + kotlinExtension.targets + .matching { target -> !target.skipResourcesConfiguration() } + .all { target -> configureTargetResources(target, moduleIsolationDirectory) } + + + //configure ANDROID resources + onAgpApplied { agpId -> + configureAndroidComposeResources(agpId, moduleIsolationDirectory) + fixAndroidLintTaskDependencies() + } +} + +//configure java multi-module resources (with module isolation) +internal fun Project.configureJvmOnlyResources( + kotlinExtension: KotlinJvmProjectExtension, + config: Provider +) { + logger.info("Configure java-only compose resources") + + val main = SourceSet.MAIN_SOURCE_SET_NAME + configureComposeResourcesGeneration(kotlinExtension, main, config, true) + + val moduleIsolationDirectory = config.getModuleResourcesDir(project) + val javaTarget = kotlinExtension.target + + configureTargetResources(javaTarget, moduleIsolationDirectory) +} + +private fun Project.configureTargetResources( + target: KotlinTarget, + moduleIsolationDirectory: Provider +) { + target.compilations.all { compilation -> + logger.info("Configure ${compilation.name} resources for '${target.targetName}' target") + val compilationResources = files({ + compilation.allKotlinSourceSets.map { sourceSet -> getPreparedComposeResourcesDir(sourceSet) } + }) + val assembleResTask = registerTask( + name = "assemble${target.targetName.uppercaseFirstChar()}${compilation.name.uppercaseFirstChar()}Resources" + ) { + resourceDirectories.setFrom(compilationResources) + relativeResourcePlacement.set(moduleIsolationDirectory) + outputDirectory.set( + layout.buildDirectory.dir( + "$RES_GEN_DIR/assembledResources/${target.targetName}${compilation.name.uppercaseFirstChar()}" + ) + ) + } + val allCompilationResources = assembleResTask.flatMap { it.outputDirectory.asFile } + + if ( + target.platformType in platformsForSetupKmpResources + && compilation.name == KotlinCompilation.MAIN_COMPILATION_NAME + ) { + configureKmpResources(compilation, allCompilationResources) + } else { + configureResourcesForCompilation(compilation, allCompilationResources) + } + } +} + +private fun KotlinTarget.skipResourcesConfiguration(): Boolean = when { + this is KotlinMetadataTarget -> true + + //android resources should be configured via AGP + this is KotlinAndroidTarget -> true + + //new AGP library target + this.isMultiplatformAndroidTarget() -> true + + else -> false +} + +@Suppress("UnstableApiUsage") +private fun KotlinTarget.isMultiplatformAndroidTarget(): Boolean = try { + this is KotlinMultiplatformAndroidTarget +} catch (e: NoClassDefFoundError) { + false +} + +private val platformsForSetupKmpResources = listOf( + KotlinPlatformType.native, KotlinPlatformType.js, KotlinPlatformType.wasm +) + +@OptIn(ComposeKotlinGradlePluginApi::class) +private fun Project.configureKmpResources( + compilation: KotlinCompilation<*>, + allCompilationResources: Provider +) { + require(compilation.platformType in platformsForSetupKmpResources) + val kmpResources = extraProperties.get(KMP_RES_EXT) as KotlinTargetResourcesPublication + + //For Native/Js/Wasm main resources: + // 1) we have to configure new Kotlin component publication + // 2) we have to collect all transitive main resources + + //TODO temporary API misuse. will be changed on the KMP side + //https://youtrack.jetbrains.com/issue/KT-70909 + val target = compilation.target + val kmpEmptyPath = provider { File("") } + val emptyDir = layout.buildDirectory.dir("$RES_GEN_DIR/emptyResourcesDir").map { it.asFile } + logger.info("Configure KMP component publication for '${compilation.target.targetName}'") + kmpResources.publishResourcesAsKotlinComponent( + target, + { kotlinSourceSet -> + if (kotlinSourceSet == compilation.defaultSourceSet) { + KotlinTargetResourcesPublication.ResourceRoot(allCompilationResources, emptyList(), emptyList()) + } else { + KotlinTargetResourcesPublication.ResourceRoot(emptyDir, emptyList(), emptyList()) + } + }, + kmpEmptyPath + ) + + val allResources = kmpResources.resolveResources(target) + logger.info("Collect resolved ${compilation.name} resources for '${compilation.target.targetName}'") + configureResourcesForCompilation(compilation, allResources) +} + +private fun Project.configureResourcesForCompilation( + compilation: KotlinCompilation<*>, + directoryWithAllResourcesForCompilation: Provider +) { + compilation.defaultSourceSet.resources.srcDir(directoryWithAllResourcesForCompilation) + + //JS packaging requires explicit dependency + if (compilation is KotlinJsCompilation) { + tasks.named(compilation.processResourcesTaskName).configure { processResourcesTask -> + processResourcesTask.dependsOn(directoryWithAllResourcesForCompilation) + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/PrepareComposeResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/PrepareComposeResources.kt index 11131350fec..0d447b6a3cd 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/PrepareComposeResources.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/PrepareComposeResources.kt @@ -1,6 +1,7 @@ package org.jetbrains.compose.resources import org.gradle.api.Project +import org.gradle.api.file.Directory import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.FileSystemOperations import org.gradle.api.file.FileTree @@ -25,11 +26,19 @@ import javax.inject.Inject import javax.xml.parsers.DocumentBuilderFactory internal fun Project.registerPrepareComposeResourcesTask( - sourceSet: KotlinSourceSet + sourceSet: KotlinSourceSet, + config: Provider ): TaskProvider { - val resDir = "${sourceSet.name}/$COMPOSE_RESOURCES_DIR" - val userComposeResourcesDir = project.projectDir.resolve("src/$resDir") - val preparedComposeResourcesDir = layout.buildDirectory.dir("$RES_GEN_DIR/preparedResources/$resDir") + val userComposeResourcesDir: Provider = config.flatMap { ext -> + ext.customResourceDirectories[sourceSet.name] ?: provider { + //default path + layout.projectDirectory.dir("src/${sourceSet.name}/$COMPOSE_RESOURCES_DIR") + } + } + + val preparedComposeResourcesDir = layout.buildDirectory.dir( + "$RES_GEN_DIR/preparedResources/${sourceSet.name}/$COMPOSE_RESOURCES_DIR" + ) val convertXmlValueResources = tasks.register( "convertXmlValueResourcesFor${sourceSet.name.uppercaseFirstChar()}", @@ -61,11 +70,11 @@ internal fun Project.registerPrepareComposeResourcesTask( } internal fun Project.getPreparedComposeResourcesDir(sourceSet: KotlinSourceSet): Provider = tasks - .named( - getPrepareComposeResourcesTaskName(sourceSet), - PrepareComposeResourcesTask::class.java - ) - .flatMap { it.outputDir.asFile } + .named( + getPrepareComposeResourcesTaskName(sourceSet), + PrepareComposeResourcesTask::class.java + ) + .flatMap { it.outputDir.asFile } private fun getPrepareComposeResourcesTaskName(sourceSet: KotlinSourceSet) = "prepareComposeResourcesTaskFor${sourceSet.name.uppercaseFirstChar()}" diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesDSL.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesDSL.kt index 17abaf96fff..ab57f68adc9 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesDSL.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/ResourcesDSL.kt @@ -1,12 +1,13 @@ package org.jetbrains.compose.resources import org.gradle.api.Project +import org.gradle.api.file.Directory import org.gradle.api.provider.Provider import java.io.File abstract class ResourcesExtension { /** - * Whether the generated resources accessors class should be public or not. + * Whether the generated resource accessor class should be public or not. * * Default is false. */ @@ -14,13 +15,19 @@ abstract class ResourcesExtension { /** * The unique identifier of the resources in the current project. - * Uses as package for the generated Res class and for isolation resources in a final artefact. - * - * If it is empty then `{group name}.{module name}.generated.resources` will be used. + * Used as the package for the generated Res class and for isolating resources in a final artifact. * + * If it's empty, then `{group name}.{module name}.generated.resources` will be used instead. */ var packageOfResClass: String = "" + /** + * The name of the generated resource accessor class. + * + * The default is "Res". + */ + var nameOfResClass: String = "Res" + enum class ResourceClassGeneration { Auto, Always, Never } //to support groovy DSL @@ -31,11 +38,23 @@ abstract class ResourcesExtension { /** * The mode of resource class generation. * - * - `auto`: The Res class will be generated if the current project has an explicit "implementation" or "api" dependency on the resource's library. + * - `auto`: The Res class will be generated if the current project has a direct "implementation" or "api" dependency on the resources library. * - `always`: Unconditionally generate the Res class. This may be useful when the resources library is available transitively. * - `never`: Never generate the Res class. */ var generateResClass: ResourceClassGeneration = auto + + internal val customResourceDirectories: MutableMap> = mutableMapOf() + + /** + * Associates a custom resource directory with a specific source set. + * + * @param sourceSetName the name of the source set to associate the custom resource directory with + * @param directoryProvider the provider that provides the custom directory + */ + fun customDirectory(sourceSetName: String, directoryProvider: Provider) { + customResourceDirectories[sourceSetName] = directoryProvider + } } internal fun Provider.getResourcePackage(project: Project) = map { config -> @@ -46,6 +65,6 @@ internal fun Provider.getResourcePackage(project: Project) = "$id.generated.resources" } } -//the dir where resources must be placed in the final artefact +//the dir where resources must be placed in the final artifact internal fun Provider.getModuleResourcesDir(project: Project) = getResourcePackage(project).map { packageName -> File("$COMPOSE_RESOURCES_DIR/$packageName") } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/SinglemoduleResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/SinglemoduleResources.kt new file mode 100644 index 00000000000..a5a52c5e045 --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/SinglemoduleResources.kt @@ -0,0 +1,34 @@ +package org.jetbrains.compose.resources + +import org.gradle.api.Project +import org.gradle.api.provider.Provider +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet + +//configure single-module resources (no publishing, no module isolation) +internal fun Project.configureSinglemoduleResources( + kotlinExtension: KotlinMultiplatformExtension, + config: Provider +) { + logger.info("Configure single-module compose resources") + val commonMain = KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME + configureComposeResourcesGeneration(kotlinExtension, commonMain, config, false) + + // mark prepared resources as sourceSet.resources + // 1) it automatically packs the resources to JVM jars + // 2) it configures the webpack to use the resources + // 3) for native targets we will use source set resources to pack them into the final app. see IosResources.kt + // 4) for the android it DOESN'T pack resources! we copy resources to assets in AndroidResources.kt + kotlinExtension.sourceSets.all { sourceSet -> + // the HACK is here because KGP copy androidMain java resources to Android target + // if the resources were registered in the androidMain source set before the target declaration + afterEvaluate { + sourceSet.resources.srcDirs(getPreparedComposeResourcesDir(sourceSet)) + } + } + + onAgpApplied { agpId -> + configureAndroidComposeResources(agpId) + fixAndroidLintTaskDependencies() + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/XCFrameworkResources.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/XCFrameworkResources.kt new file mode 100644 index 00000000000..33fbf5fef7b --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/XCFrameworkResources.kt @@ -0,0 +1,44 @@ +package org.jetbrains.compose.resources + +import org.gradle.api.Project +import org.jetbrains.compose.internal.Version +import org.jetbrains.kotlin.gradle.ComposeKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinBasePlugin +import org.jetbrains.kotlin.gradle.plugin.extraProperties +import org.jetbrains.kotlin.gradle.plugin.mpp.Framework +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFrameworkTask +import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication + +private const val MIN_KGP_VERSION_FOR_XCFRAMEWORK_RESOURCES = "2.2.0-Beta2-1" + +@OptIn(ComposeKotlinGradlePluginApi::class) +internal fun Project.configureXCFrameworkComposeResources( + kotlinExtension: KotlinMultiplatformExtension, + kgp: KotlinBasePlugin +) { + val kgpVersion = Version.fromString(kgp.pluginVersion) + val kmpResources = extraProperties.get(KMP_RES_EXT) as KotlinTargetResourcesPublication + val requiredVersion = Version.fromString(MIN_KGP_VERSION_FOR_XCFRAMEWORK_RESOURCES) + val isAvailable = kgpVersion >= requiredVersion + + tasks.withType(XCFrameworkTask::class.java).configureEach { task -> + if (isAvailable) { + logger.info("Configure compose resources in ${task.name}") + kotlinExtension.targets + .withType(KotlinNativeTarget::class.java) + .configureEach { target -> + target.binaries.withType(Framework::class.java).configureEach { framework -> + task.addTargetResources( + resources = kmpResources.resolveResources(target), + target = framework.target.konanTarget + ) + } + } + } else { + logger.warn("Compose resources are supported in XCFrameworks " + + "since '$MIN_KGP_VERSION_FOR_XCFRAMEWORK_RESOURCES' Kotlin Gradle plugin version") + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/internal/configureWebApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/internal/configureWebApplication.kt index 2c163824fce..8d7f924419a 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/internal/configureWebApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/internal/configureWebApplication.kt @@ -11,13 +11,15 @@ import org.gradle.api.artifacts.ResolvedDependency import org.gradle.api.artifacts.UnresolvedDependency import org.gradle.api.artifacts.component.ModuleComponentIdentifier import org.gradle.api.provider.Provider +import org.gradle.api.tasks.Copy +import org.gradle.language.jvm.tasks.ProcessResources import org.jetbrains.compose.ComposeBuildConfig import org.jetbrains.compose.ComposeExtension -import org.jetbrains.compose.web.tasks.UnpackSkikoWasmRuntimeTask -import org.jetbrains.compose.internal.utils.* +import org.jetbrains.compose.internal.utils.detachedComposeDependency +import org.jetbrains.compose.internal.utils.file import org.jetbrains.compose.internal.utils.registerTask -import org.jetbrains.compose.internal.utils.uppercaseFirstChar import org.jetbrains.compose.web.WebExtension +import org.jetbrains.compose.web.tasks.UnpackSkikoWasmRuntimeTask import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget internal fun Project.configureWeb( @@ -47,12 +49,16 @@ internal fun Project.configureWeb( } } + val targets = webExt.targetsToConfigure(project) + // configure only if there is k/wasm or k/js target: - webExt.targetsToConfigure(project) - .configureWebApplication(project, shouldRunUnpackSkiko) + if (targets.isNotEmpty()) { + configureWebApplication(targets, project, shouldRunUnpackSkiko) + } } -internal fun Collection.configureWebApplication( +internal fun configureWebApplication( + targets: Collection, project: Project, shouldRunUnpackSkiko: Provider ) { @@ -63,27 +69,48 @@ internal fun Collection.configureWebApplication( skikoJsWasmRuntimeConfiguration.defaultDependencies { it.addLater(skikoJsWasmRuntimeDependency) } - forEach { - val mainCompilation = it.compilations.getByName("main") - val testCompilation = it.compilations.getByName("test") - val unpackedRuntimeDir = project.layout.buildDirectory.dir("compose/skiko-wasm/${it.targetName}") - val taskName = "unpackSkikoWasmRuntime${it.targetName.uppercaseFirstChar()}" - mainCompilation.defaultSourceSet.resources.srcDir(unpackedRuntimeDir) - testCompilation.defaultSourceSet.resources.srcDir(unpackedRuntimeDir) - - val unpackRuntime = project.registerTask(taskName) { - onlyIf { - shouldRunUnpackSkiko.get() - } - skikoRuntimeFiles = skikoJsWasmRuntimeConfiguration - outputDir.set(unpackedRuntimeDir) - } - project.tasks.named(mainCompilation.processResourcesTaskName).configure { processResourcesTask -> - processResourcesTask.dependsOn(unpackRuntime) + val unpackedRuntimeDir = project.layout.buildDirectory.dir("compose/skiko-for-web-runtime") + val processedRuntimeDir = project.layout.buildDirectory.dir("compose/skiko-runtime-processed-wasmjs") + val taskName = "unpackSkikoWasmRuntime" + + val unpackRuntime = project.registerTask(taskName) { + onlyIf { + shouldRunUnpackSkiko.get() } - project.tasks.named(testCompilation.processResourcesTaskName).configure { processResourcesTask -> - processResourcesTask.dependsOn(unpackRuntime) + + skikoRuntimeFiles = skikoJsWasmRuntimeConfiguration + outputDir.set(unpackedRuntimeDir) + } + + val processSkikoRuntimeForKWasm = project.registerTask("processSkikoRuntimeForKWasm") { + dependsOn(unpackRuntime) + from(unpackedRuntimeDir) + into(processedRuntimeDir) + } + + targets.forEach { target -> + target.compilations.all { compilation -> + // `wasmTargetType` is available starting with kotlin 1.9.2x + if (target.wasmTargetType != null) { + // Kotlin/Wasm uses ES module system to depend on skiko through skiko.mjs. + // Further bundler could process all files by its own (both skiko.mjs and skiko.wasm) and then emits its own version. + // So that’s why we need to provide skiko.mjs and skiko.wasm only for webpack, but not in the final dist. + compilation.binaries.all { + it.linkSyncTask.configure { + it.dependsOn(processSkikoRuntimeForKWasm) + it.from.from(processedRuntimeDir) + } + } + } else { + // Kotlin/JS depends on Skiko through global space. + // Bundler cannot know anything about global externals, so that’s why we need to copy it to final dist + project.tasks.named(compilation.processResourcesTaskName, ProcessResources::class.java) { + it.from(unpackedRuntimeDir) + it.dependsOn(unpackRuntime) + it.exclude("META-INF") + } + } } } } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/tasks/WebCompatibilityTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/tasks/WebCompatibilityTask.kt new file mode 100644 index 00000000000..2b5f1fc97d5 --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/web/tasks/WebCompatibilityTask.kt @@ -0,0 +1,182 @@ +package org.jetbrains.compose.web.tasks + +import org.gradle.api.DefaultTask +import org.gradle.api.Project +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.DuplicatesStrategy +import org.gradle.api.file.FileSystemOperations +import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Optional +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.TaskAction +import org.jetbrains.compose.internal.KOTLIN_MPP_PLUGIN_ID +import org.jetbrains.compose.internal.mppExt +import org.jetbrains.compose.internal.utils.clearDirs +import org.jetbrains.compose.internal.utils.joinLowerCamelCase +import org.jetbrains.compose.internal.utils.registerTask +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack +import java.io.File +import javax.inject.Inject + +abstract class WebCompatibilityTask : DefaultTask() { + @get:Inject + internal abstract val fileOperations: FileSystemOperations + + @get:OutputDirectory + abstract val outputDir: DirectoryProperty + + @get:InputFiles + abstract val jsDistFiles: ConfigurableFileCollection + + @get:InputFiles + abstract val wasmDistFiles: ConfigurableFileCollection + + @get:Input + @get:Optional + abstract val jsOutputName: Property + + @get:Input + @get:Optional + abstract val wasmOutputName: Property + + @TaskAction + fun run() { + val prefix = "origin" + val jsAppFileName = jsOutputName.orNull ?: return + val jsAppRenamed = joinLowerCamelCase(prefix, "js", jsAppFileName) + val wasmAppFileName = wasmOutputName.orNull ?: return + val wasmAppRenamed = joinLowerCamelCase(prefix, "wasm", wasmAppFileName) + + fileOperations.clearDirs(outputDir) + + fileOperations.copy { copySpec -> + copySpec.duplicatesStrategy = DuplicatesStrategy.WARN + + copySpec.from(jsDistFiles) { + it.rename { name -> + when (name) { + jsAppFileName -> jsAppRenamed + "${jsAppFileName}.map" -> "${jsAppRenamed}.map" + else -> name + } + } + } + copySpec.from(wasmDistFiles) { + it.rename { name -> + when (name) { + wasmAppFileName -> wasmAppRenamed + "${wasmAppFileName}.map" -> "${wasmAppRenamed}.map" + else -> name + } + } + } + + copySpec.into(outputDir) + } + + val fallbackResolverCode = """ + const loadApp = () => { + const simpleWasmModule = new Uint8Array([ + 0, 97, 115, 109, 1, 0, 0, 0, 1, 8, 2, 95, + 1, 120, 0, 96, 0, 0, 3, 3, 2, 1, 1, 10, + 14, 2, 6, 0, 6, 64, 25, 11, 11, 5, 0, 208, + 112, 26, 11, 0, 45, 4, 110, 97, 109, 101, 1, 15, + 2, 0, 5, 102, 117, 110, 99, 48, 1, 5, 102, 117, + 110, 99, 49, 4, 8, 1, 0, 5, 116, 121, 112, 101, + 48, 10, 11, 1, 0, 1, 0, 6, 102, 105, 101, 108, + 100, 48 + ]); + + const hasSupportOfAllRequiredWasmFeatures = () => + typeof WebAssembly !== "undefined" && + typeof WebAssembly?.validate === "function" && + WebAssembly.validate(simpleWasmModule); + + const createScript = (src) => { + const script = document.createElement("script"); + script.src = src; + script.type = "application/javascript"; + return script; + } + + document.body.appendChild(createScript(hasSupportOfAllRequiredWasmFeatures() ? "$wasmAppRenamed" : "$jsAppRenamed")); + } + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", loadApp); + } else { + loadApp(); + } + """.trimIndent() + + + val outputDir = outputDir.get().asFile + File(outputDir, jsAppFileName).writeText(fallbackResolverCode) + File(outputDir, wasmAppFileName).writeText(fallbackResolverCode) + } +} + +private fun Project.registerWebCompatibilityTask(mppPlugin: KotlinMultiplatformExtension) = + registerTask("composeCompatibilityBrowserDistribution") { + group = "compose" + description = + "This task combines both js and wasm distributions into one so that wasm application fallback to js target if modern wasm feature are not supported" + + val webProductionDist = layout.buildDirectory.dir("dist/composeWebCompatibility/productionExecutable") + outputDir.set(webProductionDist) + + mppPlugin.targets.withType(KotlinJsIrTarget::class.java).configureEach { target -> + if (target.platformType == KotlinPlatformType.wasm) { + tasks.withType(KotlinWebpack::class.java).findByName("${target.name}BrowserProductionWebpack")?.let { + wasmOutputName.set(it.mainOutputFileName) + } + + val taskDistributionName = "${target.name}BrowserDistribution" + wasmDistFiles.from(provider { + if (tasks.names.contains(taskDistributionName)) { + tasks.getByName(taskDistributionName).outputs.files + } else { + emptyList() + } + }) + } else if (target.platformType == KotlinPlatformType.js) { + tasks.withType(KotlinWebpack::class.java).findByName("${target.name}BrowserProductionWebpack")?.let { + jsOutputName.set(it.mainOutputFileName) + } + + val taskDistributionName = "${target.name}BrowserDistribution" + jsDistFiles.from(provider { + if (tasks.names.contains(taskDistributionName)) { + tasks.getByName(taskDistributionName).outputs.files + } else { + emptyList() + } + }) + } + + onlyIf { + val hasBothDistributions = !jsDistFiles.isEmpty && !wasmDistFiles.isEmpty + val hasBothOutputs = jsOutputName.orNull != null && wasmOutputName.orNull != null + + if (!hasBothDistributions) { + logger.lifecycle("Task ${this.name} skipped: no js and wasm distributions found, both are required for compatibility") + } else if (!hasBothOutputs) { + logger.lifecycle("Task ${this.name} skipped: no js and wasm output names specified") + } + hasBothDistributions && hasBothOutputs + } + + } + } + +internal fun Project.configureWebCompatibility() { + plugins.withId(KOTLIN_MPP_PLUGIN_ID) { + project.registerWebCompatibilityTask(mppExt) + } +} diff --git a/gradle-plugins/compose/src/main/resources/default-compose-desktop-rules.pro b/gradle-plugins/compose/src/main/resources/default-compose-desktop-rules.pro index 89455d78d32..01cb1d1f41e 100644 --- a/gradle-plugins/compose/src/main/resources/default-compose-desktop-rules.pro +++ b/gradle-plugins/compose/src/main/resources/default-compose-desktop-rules.pro @@ -13,7 +13,6 @@ # Kotlinx Coroutines Rules # https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/jvm/resources/META-INF/proguard/coroutines.pro - -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} -keepclassmembers class kotlinx.coroutines.** { @@ -29,6 +28,23 @@ -dontwarn java.lang.ClassValue -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement +# https://youtrack.jetbrains.com/issue/CMP-3818/Update-ProGuard-to-version-7.4-to-support-new-Java-versions +# https://youtrack.jetbrains.com/issue/CMP-7577/Desktop-runRelease-crash-when-upgrade-to-CMP-1.8.0-alpha02 +-keep,allowshrinking,allowobfuscation class kotlinx.coroutines.flow.FlowKt** { *; } +-keep,allowshrinking,allowobfuscation class kotlinx.coroutines.Job { *; } +-dontnote kotlinx.coroutines.** + +# org.jetbrains.kotlinx:kotlinx-coroutines-swing +-keep class kotlinx.coroutines.swing.SwingDispatcherFactory + +# Kotlinx Datetime +# Material3 depends on it, and it references `kotlinx.serialization`, which is optional +# Copied from https://github.com/Kotlin/kotlinx-datetime/blob/v0.6.2/core/jvm/resources/META-INF/proguard/datetime.pro +# with one additional rule +-dontwarn kotlinx.serialization.KSerializer +-dontwarn kotlinx.serialization.Serializable +-dontwarn kotlinx.datetime.serializers.** + # https://github.com/Kotlin/kotlinx.coroutines/issues/2046 -dontwarn android.annotation.SuppressLint @@ -46,3 +62,62 @@ -keep class kotlinx.coroutines.CoroutineScope # this is a weird one, but breaks build on some combinations of OS and JDK (reproduced on Windows 10 + Corretto 16) -dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet* + +# Androidx +-keep,allowshrinking,allowobfuscation class androidx.compose.runtime.SnapshotStateKt__DerivedStateKt { *; } +-keep class androidx.compose.material3.SliderDefaults { *; } +-dontnote androidx.** + +# Kotlinx serialization, included by androidx.navigation +# https://github.com/Kotlin/kotlinx.serialization/blob/master/rules/common.pro +-if @kotlinx.serialization.Serializable class ** +-keepclassmembers class <1> { + static <1>$* Companion; +} +-keepnames @kotlinx.serialization.internal.NamedCompanion class * +-if @kotlinx.serialization.internal.NamedCompanion class * +-keepclassmembernames class * { + static <1> *; +} +-if @kotlinx.serialization.Serializable class ** { + static **$* *; +} +-keepclassmembers class <2>$<3> { + kotlinx.serialization.KSerializer serializer(...); +} +# Keep `INSTANCE.serializer()` of serializable objects. +-if @kotlinx.serialization.Serializable class ** { + public static ** INSTANCE; +} +-keepclassmembers class <1> { + public static <1> INSTANCE; + kotlinx.serialization.KSerializer serializer(...); +} +-keepattributes RuntimeVisibleAnnotations,AnnotationDefault +-dontnote kotlinx.serialization.** +-dontwarn kotlinx.serialization.internal.ClassValueReferences +-keepclassmembers public class **$$serializer { + private ** descriptor; +} + +# Kotlinx serialization, additional rules + +# Fixes: +# Exception in thread "main" kotlinx.serialization.SerializationException: Serializer for class 'SomeClass' is not found. +# Please ensure that class is marked as '@Serializable' and that the serialization compiler plugin is applied. +-keep class **$$serializer { + *; +} +-dontnote **$$serializer + +# Fixes: +# Exception in thread "main" kotlinx.a.g: Serializer for class 'MyClass' is not found +# When `@InternalSerializationApi kotlinx.serialization.serializer` is used with obfuscation enabled +-if @kotlinx.serialization.Serializable class ** +-keepclassmembers class <1>$** { + kotlinx.serialization.KSerializer serializer(...); +} + +# org.jetbrains.runtime:jbr-api +-dontwarn com.jetbrains.JBR** +-dontnote com.jetbrains.JBR** diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt index 0653807888a..b0f6e04b7c1 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/DesktopApplicationTest.kt @@ -12,20 +12,31 @@ import org.jetbrains.compose.internal.utils.currentArch import org.jetbrains.compose.internal.utils.currentOS import org.jetbrains.compose.internal.utils.currentTarget import org.jetbrains.compose.internal.utils.uppercaseFirstChar -import org.jetbrains.compose.test.utils.* - -import java.io.File -import java.util.* +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.JDK_11_BYTECODE_VERSION +import org.jetbrains.compose.test.utils.ProcessRunResult +import org.jetbrains.compose.test.utils.TestProject +import org.jetbrains.compose.test.utils.assertEqualTextFiles +import org.jetbrains.compose.test.utils.assertNotEqualTextFiles +import org.jetbrains.compose.test.utils.checkContains +import org.jetbrains.compose.test.utils.checkExists +import org.jetbrains.compose.test.utils.checkNotExists +import org.jetbrains.compose.test.utils.checks +import org.jetbrains.compose.test.utils.modify +import org.jetbrains.compose.test.utils.readClassFileVersion +import org.jetbrains.compose.test.utils.runProcess import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assumptions import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test +import java.io.File +import java.util.* import java.util.jar.JarFile class DesktopApplicationTest : GradlePluginTestBase() { @Test - fun smokeTestRunTask() = with(testProject(TestProjects.jvm)) { + fun smokeTestRunTask() = with(testProject("application/jvm")) { file("build.gradle").modify { it + """ afterEvaluate { @@ -62,7 +73,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testRunMpp() = with(testProject(TestProjects.mpp)) { + fun testRunMpp() = with(testProject("application/mpp")) { val logLine = "Kotlin MPP app is running!" gradle("run").checks { check.taskSuccessful(":run") @@ -84,60 +95,8 @@ class DesktopApplicationTest : GradlePluginTestBase() { } } - /** - * Test the version of Compose Compiler published by Google. - * See https://developer.android.com/jetpack/androidx/releases/compose-kotlin - */ - @Test - fun testAndroidxCompiler() = testProject( - TestProjects.customCompiler, defaultTestEnvironment.copy( - kotlinVersion = "1.8.0", - composeCompilerPlugin = "\"androidx.compose.compiler:compiler:1.4.0\"" - ) - ).checkCustomComposeCompiler() - @Test - fun testSettingLatestCompiler() = testProject( - TestProjects.customCompiler, defaultTestEnvironment.copy( - kotlinVersion = "1.8.20", - composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.8.20\")", - ) - ).checkCustomComposeCompiler() - - @Test - fun testSettingAutoCompiler() = testProject( - TestProjects.customCompiler, defaultTestEnvironment.copy( - kotlinVersion = "1.8.10", - composeCompilerPlugin = "dependencies.compiler.auto", - ) - ).checkCustomComposeCompiler() - - @Test - fun testKotlinCheckDisabled() = testProject( - TestProjects.customCompilerArgs, defaultTestEnvironment.copy( - kotlinVersion = "1.9.21", - composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.9.20\")", - composeCompilerArgs = "\"suppressKotlinVersionCompatibilityCheck=1.9.21\"" - ) - ).checkCustomComposeCompiler(checkKJS = true) - - private fun TestProject.checkCustomComposeCompiler(checkKJS: Boolean = false) { - gradle(":runDistributable").checks { - val actualMainImage = file("main-image.actual.png") - val expectedMainImage = file("main-image.expected.png") - assert(actualMainImage.readBytes().contentEquals(expectedMainImage.readBytes())) { - "The actual image '$actualMainImage' does not match the expected image '$expectedMainImage'" - } - } - if (checkKJS) { - gradle(":jsBrowserProductionWebpack").checks { - check.taskSuccessful(":jsBrowserProductionWebpack") - } - } - } - - @Test - fun kotlinDsl(): Unit = with(testProject(TestProjects.jvmKotlinDsl)) { + fun kotlinDsl(): Unit = with(testProject("application/jvmKotlinDsl")) { gradle(":packageDistributionForCurrentOS", "--dry-run") gradle(":packageReleaseDistributionForCurrentOS", "--dry-run") } @@ -145,7 +104,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun proguard(): Unit = with( testProject( - TestProjects.proguard, + "application/proguard", testEnvironment = defaultTestEnvironment.copy(composeVerbose = false)) ) { val enableObfuscation = """ @@ -188,12 +147,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun joinOutputJarsJvm() = with(testProject(TestProjects.jvm)) { + fun joinOutputJarsJvm() = with(testProject("application/jvm")) { joinOutputJars() } @Test - fun joinOutputJarsMpp() = with(testProject(TestProjects.mpp)) { + fun joinOutputJarsMpp() = with(testProject("application/mpp")) { joinOutputJars() } @@ -220,7 +179,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun gradleBuildCache() = with(testProject(TestProjects.jvm)) { + fun gradleBuildCache() = with(testProject("application/jvm")) { modifyGradleProperties { setProperty("org.gradle.caching", "true") } @@ -246,12 +205,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun packageJvm() = with(testProject(TestProjects.jvm)) { + fun packageJvm() = with(testProject("application/jvm")) { testPackageJvmDistributions() } @Test - fun packageMpp() = with(testProject(TestProjects.mpp)) { + fun packageMpp() = with(testProject("application/mpp")) { testPackageJvmDistributions() } @@ -305,7 +264,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } private fun customJdkProject(javaVersion: Int): TestProject = - testProject(TestProjects.jvm).apply { + testProject("application/jvm").apply { appendText("build.gradle") { """ compose.desktop.application { @@ -318,22 +277,22 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun packageUberJarForCurrentOSJvm() = with(testProject(TestProjects.jvm)) { + fun packageUberJarForCurrentOSJvm() = with(testProject("application/jvm")) { testPackageUberJarForCurrentOS(false) } @Test - fun packageUberJarForCurrentOSMpp() = with(testProject(TestProjects.mpp)) { + fun packageUberJarForCurrentOSMpp() = with(testProject("application/mpp")) { testPackageUberJarForCurrentOS(false) } @Test - fun packageReleaseUberJarForCurrentOSJvm() = with(testProject(TestProjects.jvm)) { + fun packageReleaseUberJarForCurrentOSJvm() = with(testProject("application/jvm")) { testPackageUberJarForCurrentOS(true) } @Test - fun packageReleaseUberJarForCurrentOSMpp() = with(testProject(TestProjects.mpp)) { + fun packageReleaseUberJarForCurrentOSMpp() = with(testProject("application/mpp")) { testPackageUberJarForCurrentOS(true) } @@ -366,7 +325,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testModuleClash() = with(testProject(TestProjects.moduleClashCli)) { + fun testModuleClash() = with(testProject("application/moduleClashCli")) { gradle(":app:runDistributable").checks { check.taskSuccessful(":app:createDistributable") check.taskSuccessful(":app:runDistributable") @@ -376,7 +335,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testJavaLogger() = with(testProject(TestProjects.javaLogger)) { + fun testJavaLogger() = with(testProject("application/javaLogger")) { gradle(":runDistributable").checks { check.taskSuccessful(":runDistributable") check.logContains("Compose Gradle plugin test log warning!") @@ -393,7 +352,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { Assumptions.assumeTrue(currentOS == OS.MacOS) - with(testProject(TestProjects.macOptions)) { + with(testProject("application/macOptions")) { gradle(":runDistributable").checks { check.taskSuccessful(":runDistributable") check.logContains("Hello, from Mac OS!") @@ -407,19 +366,34 @@ class DesktopApplicationTest : GradlePluginTestBase() { } } + private fun macSignProject( + identity: String, + keychainFilename: String, + javaVersion: String = "17" + ) = testProject("application/macSign").apply { + modifyText("build.gradle") { + it + .replace("%IDENTITY%", identity) + .replace("%KEYCHAIN%", keychainFilename) + .replace("%JAVA_VERSION%", javaVersion) + } + } + @Test fun testMacSignConfiguration() { Assumptions.assumeTrue(currentOS == OS.MacOS) - with(testProject(TestProjects.macSign)) { + with(macSignProject(identity = "Compose Test", keychainFilename = "compose.test.keychain")) { gradle("--dry-run", ":createDistributable") } } - @Test - @Disabled - // the test does not work on CI and locally unless test keychain is opened manually - fun testMacSign() { + private fun testMacSign( + identity: String, + keychainFilename: String, + keychainPassword: String, + javaVersion: String = "17" + ) { Assumptions.assumeTrue(currentOS == OS.MacOS) fun security(vararg args: Any): ProcessRunResult { @@ -444,13 +418,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } } - with(testProject(TestProjects.macSign)) { - val keychain = file("compose.test.keychain") - val password = "compose.test" + with(macSignProject(identity = identity, keychainFilename = keychainFilename, javaVersion = javaVersion)) { + val keychain = file(keychainFilename) withNewDefaultKeychain(keychain) { security("default-keychain", "-s", keychain) - security("unlock-keychain", "-p", password, keychain) + security("unlock-keychain", "-p", keychainPassword, keychain) gradle(":createDistributable").checks { check.taskSuccessful(":createDistributable") @@ -472,9 +445,32 @@ class DesktopApplicationTest : GradlePluginTestBase() { } } + @Test + @Disabled + // the test does not work on CI and locally unless test keychain is opened manually + fun testMacSign() { + testMacSign( + identity = "Compose Test", + keychainFilename = "compose.test.keychain", + keychainPassword = "compose.test" + ) + } + + @Test + @Disabled + // the test does not work on CI and locally unless test keychain is opened manually + fun testMacSignWithNonAsciiDeveloperId() { + testMacSign( + identity = "Cömpose Test", + keychainFilename = "compose.test-non-ascii.keychain", + keychainPassword = "compose.test", + javaVersion = "21", // https://bugs.openjdk.org/browse/JDK-8308042 fixed in JDK 21 + ) + } + @Test fun testOptionsWithSpaces() { - with(testProject(TestProjects.optionsWithSpaces)) { + with(testProject("application/optionsWithSpaces")) { fun testRunTask(runTask: String) { gradle(runTask).checks { check.taskSuccessful(runTask) @@ -496,7 +492,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testDefaultArgs() { - with(testProject(TestProjects.defaultArgs)) { + with(testProject("application/defaultArgs")) { fun testRunTask(runTask: String) { gradle(runTask).checks { check.taskSuccessful(runTask) @@ -515,7 +511,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testDefaultArgsOverride() { - with(testProject(TestProjects.defaultArgsOverride)) { + with(testProject("application/defaultArgsOverride")) { fun testRunTask(runTask: String) { gradle(runTask).checks { check.taskSuccessful(runTask) @@ -534,7 +530,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { @Test fun testSuggestModules() { - with(testProject(TestProjects.jvm)) { + with(testProject("application/jvm")) { gradle(":suggestRuntimeModules").checks { check.taskSuccessful(":suggestRuntimeModules") check.logContains("Suggested runtime modules to include:") @@ -544,12 +540,12 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun testUnpackSkiko() = with(testProject(TestProjects.unpackSkiko)) { + fun testUnpackSkiko() = with(testProject("application/unpackSkiko")) { testUnpackSkiko(":runDistributable") } @Test - fun testUnpackSkikoFromUberJar() = with(testProject(TestProjects.unpackSkiko)) { + fun testUnpackSkikoFromUberJar() = with(testProject("application/unpackSkiko")) { enableJoinOutputJars() testUnpackSkiko(":runReleaseDistributable") } @@ -576,7 +572,18 @@ class DesktopApplicationTest : GradlePluginTestBase() { } @Test - fun resources() = with(testProject(TestProjects.resources)) { + fun resources() = with(testProject("application/resources")) { + gradle(":run").checks { + check.taskSuccessful(":run") + } + + gradle(":runDistributable").checks { + check.taskSuccessful(":runDistributable") + } + } + + @Test + fun emptyResources() = with(testProject("application/emptyAppResources")) { gradle(":run").checks { check.taskSuccessful(":run") } @@ -590,7 +597,7 @@ class DesktopApplicationTest : GradlePluginTestBase() { fun testWixUnzip() { Assumptions.assumeTrue(currentOS == OS.Windows) { "The test is only relevant for Windows" } - with(testProject(TestProjects.jvm)) { + with(testProject("application/jvm")) { gradle(":unzipWix").checks { check.taskSuccessful(":unzipWix") diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt index 959135780ec..0851f99c3f6 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/GradlePluginTest.kt @@ -5,166 +5,121 @@ package org.jetbrains.compose.test.tests.integration +import org.gradle.internal.impldep.junit.framework.TestCase.assertEquals +import org.gradle.internal.impldep.junit.framework.TestCase.assertTrue import org.gradle.util.GradleVersion import org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewLogger import org.jetbrains.compose.desktop.ui.tooling.preview.rpc.RemoteConnection import org.jetbrains.compose.desktop.ui.tooling.preview.rpc.receiveConfigFromGradle -import org.jetbrains.compose.experimental.internal.kotlinVersionNumbers -import org.jetbrains.compose.internal.utils.Arch -import org.jetbrains.compose.internal.utils.OS -import org.jetbrains.compose.internal.utils.currentArch -import org.jetbrains.compose.internal.utils.currentOS -import org.jetbrains.compose.test.utils.* +import org.jetbrains.compose.internal.Version +import org.jetbrains.compose.newComposeCompilerError +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.checkExists +import org.jetbrains.compose.test.utils.checks import org.junit.jupiter.api.Assumptions - +import org.junit.jupiter.api.Test import java.net.ServerSocket import java.net.Socket import java.net.SocketTimeoutException import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicInteger import kotlin.concurrent.thread -import org.junit.jupiter.api.Test -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.MethodSource -import java.io.File +import kotlin.test.assertContentEquals +import kotlin.test.assertFalse class GradlePluginTest : GradlePluginTestBase() { - @Test - fun nativeCacheKind() { - Assumptions.assumeTrue(currentOS == OS.MacOS) - val task = if (currentArch == Arch.X64) { - ":subproject:linkDebugFrameworkIosX64" - } else { - ":subproject:linkDebugFrameworkIosArm64" - } - // Note: we used to test with kotlin version 1.9.0 and 1.9.10 too, - // but since we now use Compose core libs (1.6.0-dev-1340 and newer) built using kotlin 1.9.21, - // the compiler crashed (older k/native doesn't support libs built using newer k/native): - // e: kotlin.NotImplementedError: Generation of stubs for class org.jetbrains.kotlin.ir.symbols.impl.IrTypeParameterPublicSymbolImpl is not supported yet + fun skikoWasm() = with( + testProject( + "misc/skikoWasm", + // TODO: enable the configuration cache after moving all test projects to kotlin 2.0 or newer + defaultTestEnvironment.copy(useGradleConfigurationCache = false) + ) + ) { + gradle(":build").checks { + check.taskSuccessful(":unpackSkikoWasmRuntime") + check.taskSuccessful(":processSkikoRuntimeForKWasm") + check.taskSuccessful(":compileKotlinJs") + check.taskSuccessful(":compileKotlinWasmJs") + check.taskSuccessful(":wasmJsBrowserDistribution") + check.taskSuccessful(":jsBrowserDistribution") + + file("./build/dist/wasmJs/productionExecutable").apply { + checkExists() + assertTrue(isDirectory) + val distributionFiles = listFiles()!!.map { it.name }.toList() + assertFalse( + distributionFiles.contains("skiko.wasm"), + "skiko.wasm is probably a duplicate" + ) + // one file is the app wasm file and another one is skiko wasm file with a mangled name + assertEquals(2, distributionFiles.filter { it.endsWith(".wasm") }.size) + } - if (kotlinVersionNumbers(defaultTestEnvironment.kotlinVersion) >= KotlinVersion(1, 9, 20)) { - testWorkDir.deleteRecursively() - testWorkDir.mkdirs() - val project = TestProject( - TestProjects.nativeCacheKind, - defaultTestEnvironment.copy(useGradleConfigurationCache = false) - ) - with(project) { - gradle(task, "--info").checks { - check.taskSuccessful(task) - check.logContains("-Xauto-cache-from=") - } + file("./build/dist/js/productionExecutable").apply { + checkExists() + assertTrue(isDirectory) + val distributionFiles = listFiles()!!.map { it.name }.toList() + assertTrue(distributionFiles.contains("skiko.wasm")) + assertTrue(distributionFiles.contains("skiko.mjs")) } } } @Test - fun nativeCacheKindError() { - Assumptions.assumeTrue(currentOS == OS.MacOS) - fun withNativeCacheKindErrorProject(kotlinVersion: String, fn: TestProject.() -> Unit) { - with(testProject( - TestProjects.nativeCacheKindError, - defaultTestEnvironment.copy(kotlinVersion = kotlinVersion) - )) { - fn() - testWorkDir.deleteRecursively() - testWorkDir.mkdirs() + fun newAndroidTarget() { + Assumptions.assumeTrue(defaultTestEnvironment.parsedGradleVersion >= GradleVersion.version("8.10.2")) + Assumptions.assumeTrue(Version.fromString(defaultTestEnvironment.agpVersion) >= Version.fromString("8.8.0-alpha08")) + with(testProject("application/newAndroidTarget")) { + gradle("build", "--dry-run").checks { } } + } - fun testKotlinVersion(kotlinVersion: String) { - val args = arrayOf("help") - val commonPartOfWarning = "Compose Multiplatform Gradle plugin manages this property automatically" - withNativeCacheKindErrorProject(kotlinVersion = kotlinVersion) { - gradle(*args).checks { - check.logDoesntContain("Error: 'kotlin.native.cacheKind") - check.logDoesntContain(commonPartOfWarning) - } - } - withNativeCacheKindErrorProject(kotlinVersion = kotlinVersion) { - gradleFailure(*args, "-Pkotlin.native.cacheKind=none").checks { - check.logContains("Error: 'kotlin.native.cacheKind' is explicitly set to 'none'") - check.logContains(commonPartOfWarning) - } - - gradleFailure(*args, "-Pkotlin.native.cacheKind=none").checks { - check.logContains("Error: 'kotlin.native.cacheKind' is explicitly set to 'none'") - check.logContains(commonPartOfWarning) - } - } - withNativeCacheKindErrorProject(kotlinVersion = kotlinVersion) { - gradleFailure(*args, "-Pkotlin.native.cacheKind=static").checks { - check.logContains("Error: 'kotlin.native.cacheKind' is explicitly set to 'static'") - check.logContains(commonPartOfWarning) - } - } - withNativeCacheKindErrorProject(kotlinVersion = kotlinVersion) { - gradleFailure(*args, "-Pkotlin.native.cacheKind.iosX64=none").checks { - check.logContains("Error: 'kotlin.native.cacheKind.iosX64' is explicitly set to 'none'") - check.logContains(commonPartOfWarning) - } - } - withNativeCacheKindErrorProject(kotlinVersion = kotlinVersion) { - gradleFailure(*args, "-Pkotlin.native.cacheKind.iosX64=static").checks { - check.logContains("Error: 'kotlin.native.cacheKind.iosX64' is explicitly set to 'static'") - check.logContains(commonPartOfWarning) - } + @Test + fun jsMppIsNotBroken() = + with( + testProject("misc/jsMpp") + ) { + gradle(":compileKotlinJs").checks { + check.taskSuccessful(":compileKotlinJs") } } - testKotlinVersion("1.9.21") - } - + // Note: we can't test non-jvm targets with Kotlin older than 2.2.0, because of klib abi version bump in 2.2.0 + private val oldestSupportedKotlinVersion = "2.2.0" @Test - fun skikoWasm() = with( + fun testOldestKotlinMpp() = with( testProject( - TestProjects.skikoWasm, - // configuration cache is disabled as a temporary workaround for KT-58057 - // todo: enable once KT-58057 is fixed - testEnvironment = defaultTestEnvironment.copy(useGradleConfigurationCache = false) + "application/mpp", + testEnvironment = defaultTestEnvironment.copy(kotlinVersion = oldestSupportedKotlinVersion) ) ) { - fun jsCanvasEnabled(value: Boolean) { - modifyGradleProperties { put("org.jetbrains.compose.experimental.jscanvas.enabled", value.toString()) } - - } - - jsCanvasEnabled(false) - gradleFailure(":build").checks { - check.logContains("ERROR: Compose targets '[jscanvas]' are experimental and may have bugs!") - } - - jsCanvasEnabled(true) - gradle(":build").checks { - check.taskSuccessful(":unpackSkikoWasmRuntimeJs") - check.taskSuccessful(":compileKotlinJs") + val logLine = "Kotlin MPP app is running!" + gradle("run").checks { + check.taskSuccessful(":run") + check.logContains(logLine) } } @Test - fun newAndroidTarget() { - Assumptions.assumeTrue(defaultTestEnvironment.parsedGradleVersion >= GradleVersion.version("8.0.0")) - with(testProject(TestProjects.newAndroidTarget)) { - gradle("build", "--dry-run").checks { - } + fun testOldestKotlinJsMpp() = with( + testProject( + "application/jsMpp", + testEnvironment = defaultTestEnvironment.copy(kotlinVersion = oldestSupportedKotlinVersion) + ) + ) { + gradle(":compileKotlinJs").checks { + check.taskSuccessful(":compileKotlinJs") } } @Test - fun jsMppIsNotBroken() = - with( - testProject( - TestProjects.jsMpp, - testEnvironment = defaultTestEnvironment.copy( - kotlinVersion = TestProperties.composeJsCompilerCompatibleKotlinVersion - ) - ) - ) { - gradle(":compileKotlinJs").checks { - check.taskSuccessful(":compileKotlinJs") - } + fun testOldComposePluginError() = with(testProject("misc/oldComposePlugin")) { + gradleFailure("tasks").checks { + check.logContains(newComposeCompilerError) } + } @Test fun configurePreview() { @@ -224,7 +179,7 @@ class GradlePluginTest : GradlePluginTestBase() { private fun testConfigureDesktopPreviewImpl(port: Int) { check(port > 0) { "Invalid port: $port" } - with(testProject(TestProjects.jvmPreview)) { + with(testProject("misc/jvmPreview")) { val portProperty = "-Pcompose.desktop.preview.ide.port=$port" val previewTargetProperty = "-Pcompose.desktop.preview.target=PreviewKt.ExamplePreview" val jvmTask = ":jvm:configureDesktopPreview" diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/HotReloadTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/HotReloadTest.kt new file mode 100644 index 00000000000..534578704c5 --- /dev/null +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/HotReloadTest.kt @@ -0,0 +1,124 @@ +package org.jetbrains.compose.test.tests.integration + +import org.gradle.testkit.runner.BuildResult +import org.gradle.testkit.runner.TaskOutcome +import org.jetbrains.compose.ComposeBuildConfig +import org.jetbrains.compose.desktop.application.internal.ComposeProperties +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.checks +import org.junit.jupiter.api.fail +import org.junit.jupiter.api.Test +import kotlin.concurrent.thread + +class HotReloadTest : GradlePluginTestBase() { + @Test + fun testHotReloadTaskRegisteredInJvmProject() = with(testProject("application/jvm")) { + gradle("hotRun", "--dry-run").checks { + check.taskSkipped(":hotRun") + } + } + + @Test + fun testHotReloadTaskRegisteredInKmpProject() = with(testProject("application/mpp")) { + gradle("hotRunJvm", "--dry-run").checks { + check.taskSkipped(":hotRunJvm") + } + } + + @Test + fun testDisableHotReload() = with(testProject("application/jvm")) { + gradleFailure("hotRun", "-P${ComposeProperties.DISABLE_HOT_RELOAD}=true").checks { + check.logContains("Task 'hotRun' not found") + } + } + + @Test + fun testNonJvmProject() = with(testProject("application/nonJvm")) { + gradleFailure("hotRun").checks { + check.logContains("Task 'hotRun' not found") + } + } + + private fun gradleRunnerWorkaround() { + // Gradle seems not waiting for spawned processes to complete (see related https://github.com/gradle/gradle/issues/7603). + // which block test directory on Windows, and a test may fail because of it. + // We use this dirty workaround to handle this. + Thread.sleep(1000) + } + + @Test + fun testHotReload() = with(testProject("application/hotReload")) { + var result: BuildResult? = null + val hotRunThread = thread { + result = gradle("hotRunJvm", "-Pcompose.reload.headless=true") + } + + val timeoutMs = 300000L + val startTimeMs = System.currentTimeMillis() + // wait until the test is ready for hot reload + while (!file("started").exists()) { + if (!hotRunThread.isAlive) { + if (result?.task(":hotRunJvm")?.outcome != TaskOutcome.SUCCESS) { + fail("hotRunJvm task failed") + } else { + fail("hotRunJvm task completed unexpectedly") + } + } + Thread.sleep(200) + if (System.currentTimeMillis() - startTimeMs > timeoutMs) { + hotRunThread.interrupt() + fail("timeout: hotRunJvm task did not start within $timeoutMs ms") + } + } + + modifyText("src/jvmMain/kotlin/main.kt") { + it.replace("Kotlin MPP", "KMP") + } + + gradle("reload").checks { + check.taskSuccessful(":reload") + check.logContains("MainKt.class: modified") + } + + hotRunThread.join() + check(result != null) + result.checks { + check.taskSuccessful(":hotRunJvm") + check.logContains("Kotlin MPP app is running!") + check.logContains("KMP app is running!") + check.logContains("Compose Hot Reload (${ComposeBuildConfig.composeHotReloadVersion})") + } + gradleRunnerWorkaround() + } + + @Test + fun testExternalHotReload() = with(testProject("application/mpp")) { + val externalHotReloadVersion = "1.0.0-rc01" + modifyText("settings.gradle") { + // Set the explicit version of Compose Hot Reload in the "pluginManagement {" block + it.replace( + "plugins {", + """ + plugins { + id 'org.jetbrains.compose.hot-reload' version '$externalHotReloadVersion' + """.trimIndent() + ) + } + modifyText("build.gradle") { + // Apply hot reload plugin explicitly + it.replace( + "plugins {", + """ + plugins { + id "org.jetbrains.compose.hot-reload" + """.trimIndent() + ) + } + gradle("hotRunJvm", "-Pcompose.reload.headless=true").checks { + check.taskSuccessful(":hotRunJvm") + check.logContains("Compose Hot Reload ($externalHotReloadVersion)") + check.logContains("Kotlin MPP app is running!") + } + gradleRunnerWorkaround() + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt deleted file mode 100644 index a1987fd9ec7..00000000000 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.test.tests.integration - -import org.jetbrains.compose.newCompilerIsAvailableVersion -import org.jetbrains.compose.newComposeCompilerError -import org.jetbrains.compose.test.utils.GradlePluginTestBase -import org.jetbrains.compose.test.utils.TestProjects -import org.jetbrains.compose.test.utils.checks -import org.junit.jupiter.api.Test - -class KotlinCompatibilityTest : GradlePluginTestBase() { - @Test - fun testKotlinMpp_1_9_10() = testMpp("1.9.10") - - @Test - fun testKotlinJsMpp_1_9_10() = testJsMpp("1.9.10") - - @Test - fun testKotlinMpp_1_9_20() = testMpp("1.9.20") - - @Test - fun testKotlinJsMpp_1_9_20() = testJsMpp("1.9.20") - - private fun testMpp(kotlinVersion: String) = with( - testProject( - TestProjects.mpp, - testEnvironment = defaultTestEnvironment.copy(kotlinVersion = kotlinVersion) - ) - ) { - val logLine = "Kotlin MPP app is running!" - gradle("run").checks { - check.taskSuccessful(":run") - check.logContains(logLine) - } - } - - private fun testJsMpp(kotlinVersion: String) = with( - testProject( - TestProjects.jsMpp, - testEnvironment = defaultTestEnvironment.copy(kotlinVersion = kotlinVersion) - ) - ) { - gradle(":compileKotlinJs").checks { - check.taskSuccessful(":compileKotlinJs") - } - } - - @Test - fun testNewCompilerPluginError() { - val testProject = testProject( - TestProjects.mpp, - testEnvironment = defaultTestEnvironment.copy(kotlinVersion = "2.0.0") - ) - testProject.gradleFailure("tasks").checks { - check.logContains(newComposeCompilerError) - } - } -} diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt index 3a3da032cf0..bc451f161bc 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt @@ -2,15 +2,32 @@ package org.jetbrains.compose.test.tests.integration import org.gradle.util.GradleVersion import org.jetbrains.compose.desktop.application.internal.ComposeProperties -import org.jetbrains.compose.internal.utils.* +import org.jetbrains.compose.internal.Version +import org.jetbrains.compose.internal.utils.Arch +import org.jetbrains.compose.internal.utils.OS +import org.jetbrains.compose.internal.utils.currentArch +import org.jetbrains.compose.internal.utils.currentOS import org.jetbrains.compose.resources.XmlValuesConverterTask -import org.jetbrains.compose.test.utils.* +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.TestProject +import org.jetbrains.compose.test.utils.assertEqualTextFiles +import org.jetbrains.compose.test.utils.assertNotEqualTextFiles +import org.jetbrains.compose.test.utils.checkExists +import org.jetbrains.compose.test.utils.checkNotExists +import org.jetbrains.compose.test.utils.checks +import org.jetbrains.compose.test.utils.modify import org.junit.jupiter.api.Assumptions import org.junit.jupiter.api.Test import java.io.File import java.util.zip.ZipFile +import kotlin.io.path.Path +import kotlin.io.path.invariantSeparatorsPathString import kotlin.io.path.relativeTo -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotNull +import kotlin.test.assertNull +import kotlin.test.assertTrue class ResourcesTest : GradlePluginTestBase() { @Test @@ -213,6 +230,7 @@ class ResourcesTest : GradlePluginTestBase() { compose.resources { publicResClass = true packageOfResClass = "my.lib.res" + nameOfResClass = "MyRes" } """.trimIndent() } @@ -227,9 +245,7 @@ class ResourcesTest : GradlePluginTestBase() { @Test fun testMultiModuleResources() { - val environment = defaultTestEnvironment.copy( - kotlinVersion = "2.0.0-RC2" - ) + val environment = defaultTestEnvironment with( testProject("misc/kmpResourcePublication", environment) ) { @@ -241,62 +257,43 @@ class ResourcesTest : GradlePluginTestBase() { } gradle(":cmplib:publishAllPublicationsToMavenRepository").checks { - check.logContains("Configure KMP resources") + check.logContains("Configure multi-module compose resources") val resDir = file("cmplib/src/commonMain/composeResources") val resourcesFiles = resDir.walkTopDown() .filter { !it.isDirectory && !it.isHidden } - .getConvertedResources(resDir) - val subdir = "me.sample.library.resources" + .getConvertedResources(resDir, "composeResources/me.sample.library.resources") fun libpath(target: String, ext: String) = "my-mvn/me/sample/library/cmplib-$target/1.0/cmplib-$target-1.0$ext" val aar = file(libpath("android", ".aar")) - val innerClassesJar = aar.parentFile.resolve("aar-inner-classes.jar") - assertTrue(aar.exists(), "File not found: " + aar.path) - ZipFile(aar).use { zip -> - resourcesFiles - .filter { it.startsWith("font") } - .forEach { fontRes -> - assertNotNull( - zip.getEntry("assets/composeResources/$subdir/$fontRes"), - "Resource not found: '$fontRes' in aar '${aar.path}'" - ) - } - - innerClassesJar.writeBytes( - zip.getInputStream(zip.getEntry("classes.jar")).readBytes() - ) - } - ZipFile(innerClassesJar).use { zip -> - resourcesFiles - .filterNot { it.startsWith("font") } - .forEach { res -> - assertNotNull( - zip.getEntry("composeResources/$subdir/$res"), - "Resource not found: '$res' in aar/classes.jar '${aar.path}'" - ) - } - } + checkResourcesZip(aar, resourcesFiles, true) val jar = file(libpath("jvm", ".jar")) - checkResourcesZip(jar, resourcesFiles, subdir) + checkResourcesZip(jar, resourcesFiles, false) if (currentOS == OS.MacOS) { val iosx64ResZip = file(libpath("iosx64", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(iosx64ResZip, resourcesFiles, subdir) + checkResourcesZip(iosx64ResZip, resourcesFiles, false) val iosarm64ResZip = file(libpath("iosarm64", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(iosarm64ResZip, resourcesFiles, subdir) + checkResourcesZip(iosarm64ResZip, resourcesFiles, false) val iossimulatorarm64ResZip = file( libpath("iossimulatorarm64", "-kotlin_resources.kotlin_resources.zip") ) - checkResourcesZip(iossimulatorarm64ResZip, resourcesFiles, subdir) + checkResourcesZip(iossimulatorarm64ResZip, resourcesFiles, false) + + val macosx64ResZip = + file(libpath("macosx64", "-kotlin_resources.kotlin_resources.zip")) + checkResourcesZip(macosx64ResZip, resourcesFiles, false) + val macosarm64ResZip = + file(libpath("macosarm64", "-kotlin_resources.kotlin_resources.zip")) + checkResourcesZip(macosarm64ResZip, resourcesFiles, false) } val jsResZip = file(libpath("js", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(jsResZip, resourcesFiles, subdir) + checkResourcesZip(jsResZip, resourcesFiles, false) val wasmjsResZip = file(libpath("wasm-js", "-kotlin_resources.kotlin_resources.zip")) - checkResourcesZip(wasmjsResZip, resourcesFiles, subdir) + checkResourcesZip(wasmjsResZip, resourcesFiles, false) } file("settings.gradle.kts").modify { content -> @@ -312,6 +309,13 @@ class ResourcesTest : GradlePluginTestBase() { ":appModule:iosSimulatorArm64Test" } gradle(iosTask) + + val macosTask = if (currentArch == Arch.X64) { + ":appModule:macosX64Test" + } else { + ":appModule:macosArm64Test" + } + gradle(macosTask) } file("featureModule/src/commonMain/kotlin/me/sample/app/Feature.kt").modify { content -> @@ -329,33 +333,86 @@ class ResourcesTest : GradlePluginTestBase() { } @Test - fun testDisableMultimoduleResourcesWithNewKotlin() { - val environment = defaultTestEnvironment.copy( - kotlinVersion = "2.0.0-RC2" - ) + fun testNewAgpResources() { + Assumptions.assumeTrue(defaultTestEnvironment.parsedGradleVersion >= GradleVersion.version("8.10.2")) + + val agpVersion = Version.fromString(defaultTestEnvironment.agpVersion) + Assumptions.assumeTrue(agpVersion >= Version.fromString("8.8.0-alpha08")) + + with(testProject("misc/newAgpResources", defaultTestEnvironment)) { + gradle(":appModule:assembleDebug").checks { + if (agpVersion >= Version.fromString("8.10")) { + check.logContains("Configure compose resources with KotlinMultiplatformAndroidComponentsExtension") + } else { + check.logContains("Configure compose resources with outdated KotlinMultiplatformAndroidComponentsExtension < 8.10") + } + + val resourcesFiles = sequenceOf( + "composeResources/newagpresources.appmodule.generated.resources/values/strings.commonMain.cvr", + "composeResources/newagpresources.featuremodule.generated.resources/values/strings.commonMain.cvr" + ) + val apk = file("appModule/build/outputs/apk/debug/appModule-debug.apk") + checkResourcesZip(apk, resourcesFiles, true) + } + } + } - with(testProject("misc/kmpResourcePublication", environment)) { + @Test + fun testDisableMultimoduleResources() { + with(testProject("misc/commonResources")) { file("gradle.properties").modify { content -> content + "\n" + ComposeProperties.DISABLE_MULTIMODULE_RESOURCES + "=true" } - gradle(":cmplib:build").checks { - check.logContains("Configure compose resources") + gradle("desktopJar").checks { + check.logContains("Configure single-module compose resources") + + val resDir = file("src/commonMain/composeResources") + val resourcesFiles = resDir.walkTopDown() + .filter { !it.isDirectory && !it.isHidden } + .getConvertedResources(resDir, "") + + val jar = file("build/libs/Resources-Test-desktop.jar") + checkResourcesZip(jar, resourcesFiles, false) } } } - private fun checkResourcesZip(zipFile: File, resourcesFiles: Sequence, subdir: String) { + private fun checkResourcesZip(zipFile: File, resourcesFiles: Sequence, isAndroid: Boolean) { + println("check ZIP: '${zipFile.path}'") assertTrue(zipFile.exists(), "File not found: " + zipFile.path) ZipFile(zipFile).use { zip -> resourcesFiles.forEach { res -> - assertNotNull( - zip.getEntry("composeResources/$subdir/$res"), - "Resource not found: '$res' in zip '${zipFile.path}'" - ) + println("check '$res' file") + if (isAndroid) { + //android resources should be only in assets + assertNull(zip.getEntry(res), "file = '$res'") + assertNotNull(zip.getEntry("assets/$res"), "file = 'assets/$res'") + } else { + assertNotNull(zip.getEntry(res), "file = '$res'") + } } } } + + @Test + fun testJvmBuildWithResourcesCustomization(): Unit = with(testProject("misc/commonResources")) { + file("build.gradle.kts").appendText( + """ + compose.resources { + publicResClass = true + packageOfResClass = "io.customized" + nameOfResClass = "CustomName" + } + """.trimIndent() + ) + file("src/commonMain/kotlin").deleteRecursively() //empty project + + gradle("desktopJar").checks { + check.logContains("Generate CustomName.kt") + } + } + @Test fun testFinalArtefacts(): Unit = with(testProject("misc/commonResources")) { //https://developer.android.com/build/build-variants?utm_source=android-studio#product-flavors @@ -390,50 +447,51 @@ class ResourcesTest : GradlePluginTestBase() { file("src/jsMain/composeResources/files/platform.txt").writeNewFile("js") val commonResourcesDir = file("src/commonMain/composeResources") + val repackDir = "composeResources/app.group.resources_test.generated.resources" val commonResourcesFiles = commonResourcesDir.walkTopDown() .filter { !it.isDirectory && !it.isHidden } - .getConvertedResources(commonResourcesDir) + .getConvertedResources(commonResourcesDir, repackDir) gradle("build").checks { - check.taskSuccessful(":copyDemoDebugFontsToAndroidAssets") - check.taskSuccessful(":copyDemoReleaseFontsToAndroidAssets") - check.taskSuccessful(":copyFullDebugFontsToAndroidAssets") - check.taskSuccessful(":copyFullReleaseFontsToAndroidAssets") + check.taskSuccessful(":copyDemoDebugComposeResourcesToAndroidAssets") + check.taskSuccessful(":copyDemoReleaseComposeResourcesToAndroidAssets") + check.taskSuccessful(":copyFullDebugComposeResourcesToAndroidAssets") + check.taskSuccessful(":copyFullReleaseComposeResourcesToAndroidAssets") getAndroidApk("demo", "debug", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android demo-debug", - readFileInZip(apk, "files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } getAndroidApk("demo", "release", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android demo-release", - readFileInZip(apk, "files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } getAndroidApk("full", "debug", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android full-debug", - readFileInZip(apk, "files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } getAndroidApk("full", "release", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) + checkResourcesZip(apk, commonResourcesFiles, true) assertEquals( "android full-release", - readFileInZip(apk, "files/platform.txt").decodeToString() + readFileInZip(apk, "assets/$repackDir/files/platform.txt").decodeToString() ) } file("build/libs/Resources-Test-desktop.jar").let { jar -> - checkResourcesInZip(jar, commonResourcesFiles, false) + checkResourcesZip(jar, commonResourcesFiles, false) assertEquals( "desktop", - readFileInZip(jar, "files/platform.txt").decodeToString() + readFileInZip(jar, "$repackDir/files/platform.txt").decodeToString() ) } @@ -441,41 +499,11 @@ class ResourcesTest : GradlePluginTestBase() { commonResourcesFiles.forEach { res -> assertTrue(jsBuildDir.resolve(res).exists()) } - assertEquals("js", jsBuildDir.resolve("files/platform.txt").readText()) - } - } - - @Test - fun testAndroidFonts(): Unit = with(testProject("misc/commonResources")) { - val commonResourcesDir = file("src/commonMain/composeResources") - val commonResourcesFiles = commonResourcesDir.walkTopDown() - .filter { !it.isDirectory && !it.isHidden } - .getConvertedResources(commonResourcesDir) - - gradle("assembleDebug").checks { - check.taskSuccessful(":copyDebugFontsToAndroidAssets") - - getAndroidApk("", "debug", "Resources-Test").let { apk -> - checkResourcesInZip(apk, commonResourcesFiles, true) - } - } - - file("src/commonMain/composeResources/font-en").renameTo( - file("src/commonMain/composeResources/font-mdpi") - ) - val newCommonResourcesFiles = commonResourcesDir.walkTopDown() - .filter { !it.isDirectory && !it.isHidden } - .getConvertedResources(commonResourcesDir) - gradle("assembleDebug").checks { - check.taskSuccessful(":copyDebugFontsToAndroidAssets") - - getAndroidApk("", "debug", "Resources-Test").let { apk -> - checkResourcesInZip(apk, newCommonResourcesFiles, true) - } + assertEquals("js", jsBuildDir.resolve("$repackDir/files/platform.txt").readText()) } } - private fun Sequence.getConvertedResources(baseDir: File) = map { file -> + private fun Sequence.getConvertedResources(baseDir: File, repackDir: String) = map { file -> val newFile = if ( file.parentFile.name.startsWith("value") && file.extension.equals("xml", true) @@ -485,10 +513,9 @@ class ResourcesTest : GradlePluginTestBase() { } else { file } - newFile.relativeTo(baseDir).invariantSeparatorsPath + Path(repackDir, newFile.relativeTo(baseDir).path).invariantSeparatorsPathString } - private fun File.writeNewFile(text: String) { parentFile.mkdirs() createNewFile() @@ -503,23 +530,6 @@ class ResourcesTest : GradlePluginTestBase() { } } - private fun checkResourcesInZip(file: File, commonResourcesFiles: Sequence, isAndroid: Boolean) { - println("check ZIP: '${file.path}'") - assertTrue(file.exists()) - ZipFile(file).use { zip -> - commonResourcesFiles.forEach { res -> - println("check '$res' file") - if (isAndroid && res.startsWith("font")) { - //android fonts should be only in assets - assertNull(zip.getEntry(res), "file = '$res'") - assertNotNull(zip.getEntry("assets/$res"), "file = 'assets/$res'") - } else { - assertNotNull(zip.getEntry(res), "file = '$res'") - } - } - } - } - private fun readFileInZip(file: File, path: String): ByteArray = ZipFile(file).use { zip -> val platformTxt = zip.getEntry(path) assertNotNull(platformTxt, "file = '$path'") @@ -543,8 +553,7 @@ class ResourcesTest : GradlePluginTestBase() { ) } gradle("prepareKotlinIdeaImport").checks { - check.taskSuccessful(":generateComposeResClass") - assertFalse(file("build/generated/compose/resourceGenerator/kotlin/commonResClass/app/group/resources_test/generated/resources/Res.kt").exists()) + check.taskSkipped(":generateComposeResClass") } modifyText("build.gradle.kts") { str -> @@ -568,9 +577,27 @@ class ResourcesTest : GradlePluginTestBase() { @Test fun testEmptyResClass(): Unit = with(testProject("misc/emptyResources")) { - gradle("generateComposeResClass").checks { + gradle("prepareKotlinIdeaImport").checks { + assertDirectoriesContentEquals( + file("build/generated/compose/resourceGenerator/kotlin"), + file("expected") + ) + } + } + + @Test + fun testGeneratedAccessorsAnnotatedWithResourceContentHash(): Unit = with(testProject("misc/commonResources")) { + val disableProperty = ComposeProperties.DISABLE_RESOURCE_CONTENT_HASH_GENERATION + gradle("prepareKotlinIdeaImport", "-P$disableProperty=false").checks { assertDirectoriesContentEquals( - file("build/generated/compose/resourceGenerator/kotlin/commonResClass/app/group/empty_res/generated/resources"), + file("build/generated/compose/resourceGenerator/kotlin"), + file("expected-with-hash") + ) + } + + gradle("prepareKotlinIdeaImport", "-P$disableProperty=true").checks { + assertDirectoriesContentEquals( + file("build/generated/compose/resourceGenerator/kotlin"), file("expected") ) } @@ -579,6 +606,7 @@ class ResourcesTest : GradlePluginTestBase() { @Test fun testJvmOnlyProject(): Unit = with(testProject("misc/jvmOnlyResources")) { gradle("jar").checks { + check.logContains("Configure java-only compose resources") assertDirectoriesContentEquals( file("build/generated/compose/resourceGenerator/kotlin"), file("expected") @@ -592,6 +620,27 @@ class ResourcesTest : GradlePluginTestBase() { gradle("generateBuildConfig") } + //https://github.com/JetBrains/compose-multiplatform/issues/4194 + //https://github.com/JetBrains/compose-multiplatform/issues/4285 + //https://youtrack.jetbrains.com/issue/CMP-7934 + // + // 25_000 icons + (25_000 * 80) strings!!! + @Test + fun testHugeNumberOfResources(): Unit = with(testProject("misc/hugeResources")) { + gradle(":generateResourceFiles") + gradle(":generateResourceAccessorsForCommonMain").checks { + val buildPath = "build/generated/compose/resourceGenerator/kotlin/commonMainResourceAccessors/app/group/huge/generated/resources" + assertEqualTextFiles(file("$buildPath/Drawable0.commonMain.kt"), file("expected/Drawable0.commonMain.kt")) + assertEqualTextFiles(file("$buildPath/Drawable100.commonMain.kt"), file("expected/Drawable100.commonMain.kt")) + assertEqualTextFiles(file("$buildPath/String0.commonMain.kt"), file("expected/String0.commonMain.kt")) + assertEqualTextFiles(file("$buildPath/String100.commonMain.kt"), file("expected/String100.commonMain.kt")) + } + gradle(":generateActualResourceCollectorsForDesktopMain").checks { + val desktopPath = "build/generated/compose/resourceGenerator/kotlin/desktopMainResourceCollectors/app/group/huge/generated/resources" + assertEqualTextFiles(file("$desktopPath/ActualResourceCollectors.kt"), file("expected/ActualResourceCollectors.kt")) + } + } + private fun assertDirectoriesContentEquals(actual: File, expected: File) { require(expected.isDirectory) require(actual.isDirectory) @@ -626,8 +675,132 @@ class ResourcesTest : GradlePluginTestBase() { } """.trimIndent() ) - gradle("generateComposeResClass").checks { - check.logContains("Generation Res class is disabled") + gradle("prepareKotlinIdeaImport").checks { + check.taskSkipped(":generateComposeResClass") + check.taskSkipped(":generateResourceAccessorsForCommonMain") + check.taskSkipped(":generateResourceAccessorsForDesktopMain") + check.taskSkipped(":generateResourceAccessorsForAndroidMain") + check.taskSkipped(":generateExpectResourceCollectorsForCommonMain") + check.taskSkipped(":generateActualResourceCollectorsForDesktopMain") + check.taskSkipped(":generateActualResourceCollectorsForAndroidMain") + } + } + + @Test + fun xcframeworkResourcesAreNotSupported() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + + with( + testProject( + "misc/appleResources", + defaultTestEnvironment.copy(kotlinVersion = "2.1.21")) + ) { + file("build.gradle.kts").modify { content -> + """ + |import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework + | + |plugins { + | kotlin("multiplatform") + | kotlin("plugin.compose") + | id("org.jetbrains.compose") + |} + | + |kotlin { + | val xcf = XCFramework("ComposeApp") + | + | macosArm64() + | + | listOf( + | iosX64(), + | iosArm64(), + | iosSimulatorArm64() + | ).forEach { + | it.binaries.framework { + | baseName = "ComposeApp" + | isStatic = true + | xcf.add(this) + | } + | } + | + | sourceSets { + | commonMain { + | dependencies { + | implementation(compose.runtime) + | implementation(compose.material) + | implementation(compose.components.resources) + | } + | } + | } + |} + | + """.trimMargin() + } + gradle(":assembleComposeAppDebugXCFramework", "--dry-run").checks { + check.logContains("Compose resources are supported in XCFrameworks since '2.2.0-Beta2-1' Kotlin Gradle plugin version") + } + } + } + + @Test + fun xcframeworkResources() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + with( + testProject( + "misc/appleResources", + defaultTestEnvironment.copy(kotlinVersion = "2.2.0-RC2")) + ) { + file("build.gradle.kts").modify { content -> + """ + |import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework + | + |plugins { + | kotlin("multiplatform") + | kotlin("plugin.compose") + | id("org.jetbrains.compose") + |} + | + |kotlin { + | val xcf = XCFramework("ComposeApp") + | + | macosX64() + | + | listOf( + | macosArm64(), + | iosArm64() + | ).forEach { + | it.binaries.framework { + | baseName = "ComposeApp" + | isStatic = true + | xcf.add(this) + | } + | } + | + | sourceSets { + | commonMain { + | dependencies { + | implementation(compose.runtime) + | implementation(compose.material) + | implementation(compose.components.resources) + | } + | } + | } + |} + | + """.trimMargin() + } + gradle(":assembleComposeAppDebugXCFramework", "--dry-run").checks { + check.logContains("Configure compose resources in assembleComposeAppDebugXCFramework") + } + gradle(":assembleComposeAppDebugXCFramework").checks { + assertDirectoriesContentEquals( + file("build/XCFrameworks/debug/ComposeApp.xcframework/ios-arm64/ComposeApp.framework/composeResources"), + file("expected/XCFrameworks/iosComposeResources") + ) + assertDirectoriesContentEquals( + file("build/XCFrameworks/debug/ComposeApp.xcframework/macos-arm64/ComposeApp.framework/composeResources"), + file("expected/XCFrameworks/macosComposeResources") + ) + } } } @@ -643,7 +816,15 @@ class ResourcesTest : GradlePluginTestBase() { additionalEnvVars = iosEnv ) - with(TestProject("misc/iosResources", testEnv)) { + with(TestProject("misc/appleResources", testEnv)) { + gradle(":podspec", "-Pkotlin.native.cocoapods.generate.wrapper=true").checks { + assertEqualTextFiles( + file("appleResources.podspec"), + file("expected/appleResources.podspec") + ) + file("build/compose/cocoapods/compose-resources").checkExists() + } + gradle( ":syncFramework", "-Pkotlin.native.cocoapods.platform=${iosEnv["PLATFORM_NAME"]}", @@ -706,15 +887,216 @@ class ResourcesTest : GradlePluginTestBase() { check.taskNoSource(":prepareComposeResourcesTaskForIosX64Main") check.taskSkipped(":generateResourceAccessorsForIosX64Main") - file("build/compose/cocoapods/compose-resources/drawable/compose-multiplatform.xml").checkExists() - file("build/compose/cocoapods/compose-resources/drawable/icon.xml").checkExists() + file("build/compose/cocoapods/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("build/compose/cocoapods/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() + } + } + } + + @Test + fun cocoapodsIosXCFrameworkResources() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + + with( + testProject( + "misc/appleResources", + defaultTestEnvironment.copy(kotlinVersion = "2.2.0-RC2")) + ) { + gradle(":podPublishDebugXCFramework").checks { + assertDirectoriesContentEquals( + file("build/cocoapods/publish/debug/shared.xcframework/ios-arm64/shared.framework/composeResources"), + file("expected/XCFrameworks/iosComposeResources") + ) + assertDirectoriesContentEquals( + file("build/cocoapods/publish/debug/shared.xcframework/ios-arm64_x86_64-simulator/shared.framework/composeResources"), + file("expected/XCFrameworks/iosComposeResources") + ) + } + } + } + + @Test + fun macosResources() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + val macosEnv = mapOf( + "PLATFORM_NAME" to "macosx", + "ARCHS" to "arm64", + "CONFIGURATION" to "Debug", + ) + val testEnv = defaultTestEnvironment.copy( + additionalEnvVars = macosEnv + ) + + with(TestProject("misc/appleResources", testEnv)) { + file("build.gradle.kts").modify { content -> + content.replace( + """ + | iosX64() + | iosArm64() + | iosSimulatorArm64() + """.trimMargin(), + """ + | macosX64() + | macosArm64() + """.trimMargin() + ) } + file("src/iosMain").renameTo(file("src/macosMain")) gradle(":podspec", "-Pkotlin.native.cocoapods.generate.wrapper=true").checks { assertEqualTextFiles( - file("iosResources.podspec"), - file("expected/iosResources.podspec") + file("appleResources.podspec"), + file("expected/appleResources.podspec") ) + file("build/compose/cocoapods/compose-resources").checkExists() + } + + gradle( + ":syncFramework", + "-Pkotlin.native.cocoapods.platform=${macosEnv["PLATFORM_NAME"]}", + "-Pkotlin.native.cocoapods.archs=${macosEnv["ARCHS"]}", + "-Pkotlin.native.cocoapods.configuration=${macosEnv["CONFIGURATION"]}", + "--dry-run" + ).checks { + check.taskSkipped(":generateComposeResClass") + + check.taskSkipped(":convertXmlValueResourcesForCommonMain") + check.taskSkipped(":copyNonXmlValueResourcesForCommonMain") + check.taskSkipped(":prepareComposeResourcesTaskForCommonMain") + check.taskSkipped(":generateResourceAccessorsForCommonMain") + + check.taskSkipped(":convertXmlValueResourcesForNativeMain") + check.taskSkipped(":copyNonXmlValueResourcesForNativeMain") + check.taskSkipped(":prepareComposeResourcesTaskForNativeMain") + check.taskSkipped(":generateResourceAccessorsForNativeMain") + + check.taskSkipped(":convertXmlValueResourcesForAppleMain") + check.taskSkipped(":copyNonXmlValueResourcesForAppleMain") + check.taskSkipped(":prepareComposeResourcesTaskForAppleMain") + check.taskSkipped(":generateResourceAccessorsForAppleMain") + + check.taskSkipped(":convertXmlValueResourcesForMacosMain") + check.taskSkipped(":copyNonXmlValueResourcesForMacosMain") + check.taskSkipped(":prepareComposeResourcesTaskForMacosMain") + check.taskSkipped(":generateResourceAccessorsForMacosMain") + + check.taskSkipped(":convertXmlValueResourcesForMacosX64Main") + check.taskSkipped(":copyNonXmlValueResourcesForMacosX64Main") + check.taskSkipped(":prepareComposeResourcesTaskForMacosX64Main") + check.taskSkipped(":generateResourceAccessorsForMacosX64Main") + + check.taskSkipped(":syncPodComposeResourcesForIos") + } + gradle(":syncPodComposeResourcesForIos").checks { + check.taskNoSource(":convertXmlValueResourcesForCommonMain") + check.taskSuccessful(":copyNonXmlValueResourcesForCommonMain") + check.taskSuccessful(":prepareComposeResourcesTaskForCommonMain") + check.taskSkipped(":generateResourceAccessorsForCommonMain") + + check.taskNoSource(":convertXmlValueResourcesForNativeMain") + check.taskNoSource(":copyNonXmlValueResourcesForNativeMain") + check.taskNoSource(":prepareComposeResourcesTaskForNativeMain") + check.taskSkipped(":generateResourceAccessorsForNativeMain") + + check.taskNoSource(":convertXmlValueResourcesForAppleMain") + check.taskNoSource(":copyNonXmlValueResourcesForAppleMain") + check.taskNoSource(":prepareComposeResourcesTaskForAppleMain") + check.taskSkipped(":generateResourceAccessorsForAppleMain") + + check.taskNoSource(":convertXmlValueResourcesForMacosMain") + check.taskSuccessful(":copyNonXmlValueResourcesForMacosMain") + check.taskSuccessful(":prepareComposeResourcesTaskForMacosMain") + check.taskSkipped(":generateResourceAccessorsForMacosMain") + + check.taskNoSource(":convertXmlValueResourcesForMacosX64Main") + check.taskNoSource(":copyNonXmlValueResourcesForMacosX64Main") + check.taskNoSource(":prepareComposeResourcesTaskForMacosX64Main") + check.taskSkipped(":generateResourceAccessorsForMacosX64Main") + + file("build/compose/cocoapods/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("build/compose/cocoapods/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() + } + } + } + + @Test + fun macosExecutableResources() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + with(testProject("misc/macosNativeResources")) { + val appName = "Test Resources" + gradle(":createDistributableNativeDebugMacosX64").checks { + val targetResourcesDir = "build/compose/binaries/main/native-macosX64-debug-app-image/${appName}.app/Contents/Resources" + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() + } + } + } + + @Test + fun macosExecutableResourcesWithResourceChanged() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + with(testProject("misc/macosNativeResources")) { + val appName = "Test Resources" + val taskName = ":createDistributableNativeDebugMacosX64" + val comment = "" + val fileNames = listOf( + "compose-multiplatform.xml", + "icon.xml" + ) + val targetResourcesDir = "build/compose/binaries/main/native-macosX64-debug-app-image/${appName}.app/Contents/Resources/compose-resources/composeResources/appleresources.generated.resources/drawable/" + gradle(taskName).checks { + fileNames.forEach { name -> + check(!file(targetResourcesDir + name).readText().startsWith(comment)) { + "The resources file contains the test content before change" + } + } + } + + listOf( + "src/commonMain/composeResources/drawable/compose-multiplatform.xml", + "src/macosMain/composeResources/drawable/icon.xml" + ).forEach { path -> + file(path).modify { + comment + it + } + } + gradle(taskName).checks { + check.taskSuccessful(taskName) + fileNames.forEach { name -> + check(file(targetResourcesDir + name).readText().startsWith(comment)) { + "The resources file does not contain the test content after changed" + } + } + } + } + } + + @Test + fun macosExecutableResourcesWithResourceDeleted() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + with(testProject("misc/macosNativeResources")) { + val appName = "Test Resources" + val taskName = ":createDistributableNativeDebugMacosX64" + + val targetResource = "src/commonMain/composeResources/drawable/compose-multiplatform2.xml" + file(targetResource).apply { + check(createNewFile()) + writeText(file(targetResource.replace("compose-multiplatform2", "compose-multiplatform")).readText()) + } + + gradle(taskName).checks { + val targetResourcesDir = "build/compose/binaries/main/native-macosX64-debug-app-image/${appName}.app/Contents/Resources" + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform2.xml").checkExists() + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() + } + check(file(targetResource).delete()) + gradle(taskName).checks { + check.taskSuccessful(taskName) + val targetResourcesDir = "build/compose/binaries/main/native-macosX64-debug-app-image/${appName}.app/Contents/Resources" + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform2.xml").checkNotExists() + file("$targetResourcesDir/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() } } } @@ -722,14 +1104,65 @@ class ResourcesTest : GradlePluginTestBase() { @Test fun iosTestResources() { Assumptions.assumeTrue(currentOS == OS.MacOS) - with(testProject("misc/iosResources")) { + with(testProject("misc/appleResources")) { gradle(":linkDebugTestIosX64", "--dry-run").checks { check.taskSkipped(":copyTestComposeResourcesForIosX64") check.taskSkipped(":linkDebugTestIosX64") } gradle(":copyTestComposeResourcesForIosX64").checks { - file("build/bin/iosX64/debugTest/compose-resources/drawable/compose-multiplatform.xml").checkExists() - file("build/bin/iosX64/debugTest/compose-resources/drawable/icon.xml").checkExists() + file("build/bin/iosX64/debugTest/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("build/bin/iosX64/debugTest/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() + } + } + } + + @Test + fun macosTestResources() { + Assumptions.assumeTrue(currentOS == OS.MacOS) + with(testProject("misc/appleResources")) { + file("build.gradle.kts").modify { content -> + content.replace( + """ + | iosX64() + | iosArm64() + | iosSimulatorArm64() + """.trimMargin(), + """ + | macosX64() + | macosArm64() + """.trimMargin() + ) + } + file("src/iosMain").renameTo(file("src/macosMain")) + gradle(":linkDebugTestMacosX64", "--dry-run").checks { + check.taskSkipped(":copyTestComposeResourcesForMacosX64") + check.taskSkipped(":linkDebugTestMacosX64") + } + gradle(":copyTestComposeResourcesForMacosX64").checks { + file("build/bin/macosX64/debugTest/compose-resources/composeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml").checkExists() + file("build/bin/macosX64/debugTest/compose-resources/composeResources/appleresources.generated.resources/drawable/icon.xml").checkExists() + } + } + } + + @Test + fun checkTestResources() { + with(testProject("misc/testResources")) { + gradle("check").checks { + check.logContains("Configure main resources for 'desktop' target") + check.logContains("Configure test resources for 'desktop' target") + check.logContains("Configure main resources for 'iosX64' target") + check.logContains("Configure test resources for 'iosX64' target") + check.logContains("Configure main resources for 'iosArm64' target") + check.logContains("Configure test resources for 'iosArm64' target") + check.logContains("Configure main resources for 'iosSimulatorArm64' target") + check.logContains("Configure test resources for 'iosSimulatorArm64' target") + check.logContains("Configure main resources for 'macosX64' target") + check.logContains("Configure test resources for 'macosX64' target") + check.logContains("Configure main resources for 'macosArm64' target") + check.logContains("Configure test resources for 'macosArm64' target") + + check.taskSuccessful(":desktopTest") } } } diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/UnsupportedCompilerPluginWarningTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/UnsupportedCompilerPluginWarningTest.kt deleted file mode 100644 index 36ee19a06a0..00000000000 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/UnsupportedCompilerPluginWarningTest.kt +++ /dev/null @@ -1,52 +0,0 @@ -package org.jetbrains.compose.test.tests.integration - -import org.jetbrains.compose.createWarningAboutNonCompatibleCompiler -import org.jetbrains.compose.test.utils.GradlePluginTestBase -import org.jetbrains.compose.test.utils.TestProjects -import org.jetbrains.compose.test.utils.checks -import org.junit.jupiter.api.Test - -class UnsupportedCompilerPluginWarningTest : GradlePluginTestBase() { - - private val androidxComposeCompilerGroupId = "androidx.compose.compiler" - private val androidxComposeCompilerPlugin = "$androidxComposeCompilerGroupId:compiler:1.4.8" - - private fun testCustomCompilerUnsupportedPlatformsWarning( - platforms: String, - warningIsExpected: Boolean - ) { - testProject( - TestProjects.customCompilerUnsupportedPlatformsWarning, defaultTestEnvironment.copy( - kotlinVersion = "1.8.22", - composeCompilerPlugin = "\"$androidxComposeCompilerPlugin\"", - ) - ).apply { - // repeat twice to check that configuration cache hit does not affect the result - repeat(2) { - gradle("-Pplatforms=$platforms").checks { - val warning = createWarningAboutNonCompatibleCompiler(androidxComposeCompilerGroupId) - if (warningIsExpected) { - check.logContainsOnce(warning) - } else { - check.logDoesntContain(warning) - } - } - } - } - } - - @Test - fun testJs() { - testCustomCompilerUnsupportedPlatformsWarning("js", warningIsExpected = true) - } - - @Test - fun testIos() { - testCustomCompilerUnsupportedPlatformsWarning("ios", warningIsExpected = true) - } - - @Test - fun testJvm() { - testCustomCompilerUnsupportedPlatformsWarning("jvm", warningIsExpected = false) - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/WebCompatibilityDistributionTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/WebCompatibilityDistributionTest.kt new file mode 100644 index 00000000000..bf60f6d23a5 --- /dev/null +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/WebCompatibilityDistributionTest.kt @@ -0,0 +1,212 @@ +package org.jetbrains.compose.test.tests.integration + +import org.jetbrains.compose.test.utils.GradlePluginTestBase +import org.jetbrains.compose.test.utils.TestProject +import org.jetbrains.compose.test.utils.checkExists +import org.jetbrains.compose.test.utils.checks +import org.junit.jupiter.api.Test +import kotlin.test.Ignore +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class WebCompatibilityDistributionTest : GradlePluginTestBase() { + + private fun TestProject.assertCompatibilityDistribution( + dirPath: String = "./build/dist/composeWebCompatibility/productionExecutable", + expectedFileNames: Set + ) { + file(dirPath).apply { + checkExists() + assertTrue(isDirectory, "Expected $dirPath to be a directory") + + val listed = listFiles() + ?: error("Expected to list files in $dirPath but got null") + val distributionNames = listed.map { it.name } + + assertTrue( + distributionNames.any { it.endsWith(".wasm") }, + "Expected at least one .wasm file in $dirPath, found: $distributionNames" + ) + + val actualFiles = distributionNames.filterNot { it.endsWith(".wasm") }.toSet() + assertEquals(expectedFileNames, actualFiles, "files mismatch in $dirPath") + } + } + + private fun TestProject.applyBuildConfig(caseName: String) { + file("build.gradle.kts.${caseName}").renameTo(file("build.gradle.kts")) + } + + @Test + fun checkWebCompatibilityDistribution() { + with(testProject("application/webApp")) { + applyBuildConfig("WebApp") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSuccessful(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":jsBrowserDistribution") + check.taskSuccessful(":wasmJsBrowserDistribution") + } + assertCompatibilityDistribution( + expectedFileNames = setOf( + "composeApp.js", + "composeResources", + "index.html", + "originJsComposeApp.js", + "originJsComposeApp.js.map", + "originWasmComposeApp.js", + "originWasmComposeApp.js.map", + "styles.css" + ) + ) + } + } + + @Test + fun testWebJsOnly() { + with(testProject("application/webApp")) { + applyBuildConfig("WebJsOnly") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSkipped(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":jsBrowserDistribution") + check.logContains("no js and wasm distributions found, both are required for compatibility") + } + } + } + + @Test + fun testWebWasmOnly() { + with(testProject("application/webApp")) { + applyBuildConfig("WebWasmOnly") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSkipped(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":wasmJsBrowserDistribution") + check.logContains("no js and wasm distributions found, both are required for compatibility") + } + } + } + + @Test + fun testWebJsNonExecutable() { + with(testProject("application/webApp")) { + applyBuildConfig("WebJsNonExecutable") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSkipped(":composeCompatibilityBrowserDistribution") + check.logContains("no js and wasm distributions found, both are required for compatibility") + } + } + } + + @Test + fun testWebSingleExecutable() { + with(testProject("application/webApp")) { + applyBuildConfig("WebSingleExecutable") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSkipped(":composeCompatibilityBrowserDistribution") + check.logContains("no js and wasm distributions found, both are required for compatibility") + } + } + } + + @Test + fun testWebJsWasmNonStandardTargetNames() { + with(testProject("application/webApp")) { + applyBuildConfig("WebJsWasmNonStandardTargetNames") + file("src/jsMain").renameTo(file("src/webJsMain")) + file("src/wasmJsMain").renameTo(file("src/webWasmMain")) + + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSuccessful(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":webJsBrowserDistribution") + check.taskSuccessful(":webWasmBrowserDistribution") + } + assertCompatibilityDistribution( + expectedFileNames = setOf( + "composeApp.js", + "composeResources", + "index.html", + "originJsComposeApp.js", + "originJsComposeApp.js.map", + "originWasmComposeApp.js", + "originWasmComposeApp.js.map", + "styles.css" + ) + ) + } + } + + @Test + @Ignore("WebPack outputFileName doesn't reflect a real name of the bundle.") + fun testWebJsWasmNonStandardBundleNames() { + with(testProject("application/webApp")) { + applyBuildConfig("WebJsWasmNonStandardBundleNames") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSuccessful(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":jsBrowserDistribution") + check.taskSuccessful(":wasmJsBrowserDistribution") + } + assertCompatibilityDistribution( + expectedFileNames = setOf( + "myApp.js", + "composeResources", + "index.html", + "originJsMyApp.js", + "originJsMyApp.js.map", + "originWasmMyApp.js", + "originWasmMyApp.js.map", + "styles.css" + ) + ) + } + } + + @Test + fun testWebJsWasmRepacked() { + with(testProject("application/webApp")) { + applyBuildConfig("WebJsWasmRepacked") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSuccessful(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":jsBrowserDistribution") + check.taskSuccessful(":wasmJsBrowserDistribution") + check.taskSuccessful(":jsRepack") + check.taskSuccessful(":wasmRepack") + } + assertCompatibilityDistribution( + expectedFileNames = setOf( + "composeResources", + "index.html", + "originJsRepackedApp.js", + "originJsRepackedApp.js.map", + "originWasmRepackedApp.js", + "originWasmRepackedApp.js.map", + "repackedApp.js", + "styles.css" + ) + ) + } + } + + //https://youtrack.jetbrains.com/issue/CMP-8760 + @Test + fun checkWebAppWithKmmBridge() { + with(testProject("application/webApp")) { + applyBuildConfig("WebAppWithKmmBridge") + gradle(":composeCompatibilityBrowserDistribution").checks { + check.taskSuccessful(":composeCompatibilityBrowserDistribution") + check.taskSuccessful(":jsBrowserDistribution") + check.taskSuccessful(":wasmJsBrowserDistribution") + } + assertCompatibilityDistribution( + expectedFileNames = setOf( + "composeApp.js", + "composeResources", + "index.html", + "originJsComposeApp.js", + "originJsComposeApp.js.map", + "originWasmComposeApp.js", + "originWasmComposeApp.js.map", + "styles.css" + ) + ) + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt index eb9e2e7879e..d6d93797ff8 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/unit/ComposeCompilerArtifactProviderTest.kt @@ -7,12 +7,10 @@ package org.jetbrains.compose.test.tests.unit import org.jetbrains.compose.internal.ComposeCompilerArtifactProvider import org.jetbrains.compose.internal.copy -import org.jetbrains.compose.test.utils.TestProperties import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact +import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Assertions.* - internal class ComposeCompilerArtifactProviderTest { @Test fun customVersion() { @@ -69,12 +67,9 @@ internal class ComposeCompilerArtifactProviderTest { get() = SubpluginArtifact( groupId = "org.jetbrains.compose.compiler", artifactId = "compiler", - version = TestProperties.composeCompilerVersion + version = "1.9.20" ) - val jbCompilerHosted: SubpluginArtifact - get() = jbCompiler.copy(artifactId = "compiler-hosted") - val googleCompiler: SubpluginArtifact get() = jbCompiler.copy(groupId = "androidx.compose.compiler") } diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt index cfb9b0984a5..760db9d166a 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/GradleTestNameGenerator.kt @@ -13,7 +13,7 @@ class GradleTestNameGenerator : DisplayNameGenerator.Standard() { override fun generateDisplayNameForMethod(testClass: Class<*>, testMethod: Method) = testMethod.name + with(TestProperties) { mutableListOf().apply { - muteException { add("kotlin=$composeCompilerCompatibleKotlinVersion") } + muteException { add("kotlin=$kotlinVersion") } muteException { add("gradle=$gradleVersion") } muteException { add("agp=$agpVersion") } }.joinToString(prefix = "(", separator = ", ", postfix = ")") diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt index a48097a0949..c8db18f9555 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProject.kt @@ -9,14 +9,12 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.GradleRunner import org.gradle.util.GradleVersion import org.jetbrains.compose.desktop.application.internal.ComposeProperties -import org.junit.jupiter.params.provider.Arguments import java.io.File -import java.util.Properties -import java.util.stream.Stream +import java.util.* data class TestEnvironment( val workingDir: File, - val kotlinVersion: String = TestProperties.composeCompilerCompatibleKotlinVersion, + val kotlinVersion: String = TestProperties.kotlinVersion, val gradleVersion: String = TestProperties.gradleVersion, val agpVersion: String = TestProperties.agpVersion, val composeGradlePluginVersion: String = TestProperties.composeGradlePluginVersion, diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProjects.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProjects.kt deleted file mode 100644 index 24f59310edf..00000000000 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProjects.kt +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. - * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. - */ - -package org.jetbrains.compose.test.utils - -object TestProjects { - const val jvm = "application/jvm" - const val mpp = "application/mpp" - const val newAndroidTarget = "application/newAndroidTarget" - const val proguard = "application/proguard" - const val customCompiler = "application/custom-compiler" - const val customCompilerArgs = "application/custom-compiler-args" - const val customCompilerUnsupportedPlatformsWarning = "application/customCompilerUnsupportedPlatformsWarning" - const val jvmKotlinDsl = "application/jvmKotlinDsl" - const val moduleClashCli = "application/moduleClashCli" - const val javaLogger = "application/javaLogger" - const val macOptions = "application/macOptions" - const val macSign = "application/macSign" - const val optionsWithSpaces = "application/optionsWithSpaces" - const val defaultArgs = "application/defaultArgs" - const val defaultArgsOverride = "application/defaultArgsOverride" - const val unpackSkiko = "application/unpackSkiko" - const val resources = "application/resources" - const val jsMpp = "misc/jsMpp" - const val skikoWasm = "misc/skikoWasm" - const val jvmPreview = "misc/jvmPreview" - const val iosResources = "misc/iosResources" - const val iosMokoResources = "misc/iosMokoResources" - const val nativeCacheKind = "misc/nativeCacheKind" - const val nativeCacheKindError = "misc/nativeCacheKindError" -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt index 11caa750366..3f4be6cbb8a 100644 --- a/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt +++ b/gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/utils/TestProperties.kt @@ -8,14 +8,8 @@ package org.jetbrains.compose.test.utils import java.io.File object TestProperties { - val composeCompilerVersion: String - get() = notNullSystemProperty("compose.tests.compiler.version") - - val composeCompilerCompatibleKotlinVersion: String - get() = notNullSystemProperty("compose.tests.compiler.compatible.kotlin.version") - - val composeJsCompilerCompatibleKotlinVersion: String - get() = notNullSystemProperty("compose.tests.js.compiler.compatible.kotlin.version") + val kotlinVersion: String + get() = notNullSystemProperty("compose.tests.kotlin.version") val composeGradlePluginVersion: String get() = notNullSystemProperty("compose.tests.compose.gradle.plugin.version") diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/build.gradle deleted file mode 100644 index 2949d9367f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/build.gradle +++ /dev/null @@ -1,50 +0,0 @@ -import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - jvm("desktop") - js(IR) { - browser() - binaries.executable() - } - sourceSets { - desktopMain { - dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib" - implementation compose.desktop.currentOs - } - } - - jsMain { - dependencies { - implementation compose.runtime - implementation compose.web.core - } - } - } -} - -compose { - kotlinCompilerPlugin.set(COMPOSE_COMPILER_PLUGIN_PLACEHOLDER) - kotlinCompilerPluginArgs.add(COMPOSE_COMPILER_PLUGIN_ARGS_PLACEHOLDER) - - desktop { - application { - mainClass = "Main" - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - } - - def projectPath = project.projectDir.absolutePath - if (DefaultNativePlatform.currentOperatingSystem.isWindows()) { - projectPath = projectPath.replace("\\", "\\\\") - } - args(projectPath) - } - } -} diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/main-image.expected.png b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/main-image.expected.png deleted file mode 100644 index 10bbd926673..00000000000 Binary files a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/main-image.expected.png and /dev/null differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/settings.gradle deleted file mode 100644 index 083b143a651..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/settings.gradle +++ /dev/null @@ -1,26 +0,0 @@ -pluginManagement { - plugins { - id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' - id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - } - repositories { - mavenLocal() - gradlePluginPortal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -dependencyResolutionManagement { - repositories { - mavenLocal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -rootProject.name = "simple" diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/desktopMain/kotlin/Main.kt b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/desktopMain/kotlin/Main.kt deleted file mode 100644 index e7d73f0092f..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/desktopMain/kotlin/Main.kt +++ /dev/null @@ -1,76 +0,0 @@ -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.GenericShape -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.renderComposeScene -import org.jetbrains.skia.EncodedImageFormat -import java.io.File -import java.util.* - -object Main { - @JvmStatic - @OptIn(ExperimentalComposeUiApi::class) - fun main(args: Array) { - val workingDir = args.getOrNull(0)?.let { File(it) } - workingDir?.mkdirs() - if (workingDir == null || !workingDir.isDirectory) { - error("Working directory must be passes as the first argument. '$workingDir' is not a directory") - } - - val image = renderComposeScene(height = 10, width = 10) { - mainShape() - } - val encodedImage = image.encodeToData(EncodedImageFormat.PNG) ?: error("Could not encode image as png") - workingDir.resolve("main-image.actual.png").writeBytes(encodedImage.bytes) - - val mainMethods = this.javaClass.declaredMethods - .mapTo(TreeSet()) { it.name } - .joinToString("\n") - workingDir.resolve("main-methods.actual.txt").writeText(mainMethods) - } - - @Composable - fun mainShape() { - triangle(Color.Magenta) - } - - @Composable - fun unused() { - transitivelyUnused() - } - - @Composable - fun transitivelyUnused() { - triangle(Color.Gray) - } - - @Composable - fun keptByKeepRule() { - fillShape(Color.Blue, CircleShape) - } -} - -@Composable -fun triangle(color: Color) { - fillShape(color, GenericShape { size, _ -> - moveTo(size.width / 2f, 0f) - lineTo(size.width, size.height) - lineTo(0f, size.height) - }) -} - -@Composable -fun fillShape(color: Color, shape: Shape){ - Column(modifier = Modifier.fillMaxWidth().wrapContentSize(Alignment.Center)) { - Box( - modifier = Modifier.clip(shape).fillMaxSize().background(color) - ) - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/jsMain/kotlin/Main.js.kt b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/jsMain/kotlin/Main.js.kt deleted file mode 100644 index 0dfe5d88d7d..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler-args/src/jsMain/kotlin/Main.js.kt +++ /dev/null @@ -1,7 +0,0 @@ -import org.jetbrains.compose.web.* -import org.jetbrains.compose.web.dom.* -fun main() { - renderComposableInBody { - Div { } - } -} diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/build.gradle deleted file mode 100644 index dada61fc6f3..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/build.gradle +++ /dev/null @@ -1,40 +0,0 @@ -import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - id "org.jetbrains.kotlin.jvm" - id "org.jetbrains.compose" -} - -repositories { - mavenLocal() - mavenCentral() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - google() -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib" - implementation compose.desktop.currentOs -} - -compose { - kotlinCompilerPlugin.set(COMPOSE_COMPILER_PLUGIN_PLACEHOLDER) - - desktop { - application { - mainClass = "Main" - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - } - - def projectPath = project.projectDir.absolutePath - if (DefaultNativePlatform.currentOperatingSystem.isWindows()) { - projectPath = projectPath.replace("\\", "\\\\") - } - args(projectPath) - } - } -} diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/main-image.expected.png b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/main-image.expected.png deleted file mode 100644 index 10bbd926673..00000000000 Binary files a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/main-image.expected.png and /dev/null differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/settings.gradle deleted file mode 100644 index 43d540efb8c..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -pluginManagement { - plugins { - id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' - id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - } - repositories { - mavenLocal() - gradlePluginPortal() - } -} -rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/src/main/kotlin/Main.kt b/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/src/main/kotlin/Main.kt deleted file mode 100644 index e7d73f0092f..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/custom-compiler/src/main/kotlin/Main.kt +++ /dev/null @@ -1,76 +0,0 @@ -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.GenericShape -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.renderComposeScene -import org.jetbrains.skia.EncodedImageFormat -import java.io.File -import java.util.* - -object Main { - @JvmStatic - @OptIn(ExperimentalComposeUiApi::class) - fun main(args: Array) { - val workingDir = args.getOrNull(0)?.let { File(it) } - workingDir?.mkdirs() - if (workingDir == null || !workingDir.isDirectory) { - error("Working directory must be passes as the first argument. '$workingDir' is not a directory") - } - - val image = renderComposeScene(height = 10, width = 10) { - mainShape() - } - val encodedImage = image.encodeToData(EncodedImageFormat.PNG) ?: error("Could not encode image as png") - workingDir.resolve("main-image.actual.png").writeBytes(encodedImage.bytes) - - val mainMethods = this.javaClass.declaredMethods - .mapTo(TreeSet()) { it.name } - .joinToString("\n") - workingDir.resolve("main-methods.actual.txt").writeText(mainMethods) - } - - @Composable - fun mainShape() { - triangle(Color.Magenta) - } - - @Composable - fun unused() { - transitivelyUnused() - } - - @Composable - fun transitivelyUnused() { - triangle(Color.Gray) - } - - @Composable - fun keptByKeepRule() { - fillShape(Color.Blue, CircleShape) - } -} - -@Composable -fun triangle(color: Color) { - fillShape(color, GenericShape { size, _ -> - moveTo(size.width / 2f, 0f) - lineTo(size.width, size.height) - lineTo(0f, size.height) - }) -} - -@Composable -fun fillShape(color: Color, shape: Shape){ - Column(modifier = Modifier.fillMaxWidth().wrapContentSize(Alignment.Center)) { - Box( - modifier = Modifier.clip(shape).fillMaxSize().background(color) - ) - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/build.gradle deleted file mode 100644 index 04c2be309bb..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - def platforms = project.property("platforms").split(",") - if (platforms.contains("jvm")) { - jvm() - } - if (platforms.contains("js")) { - js(IR) { - browser() - binaries.executable() - } - } - if (platforms.contains("ios")) { - ios() - } - - sourceSets { - commonMain { - dependencies { - implementation compose.runtime - implementation compose.material - implementation compose.foundation - } - } - } -} - -compose { - kotlinCompilerPlugin.set(COMPOSE_COMPILER_PLUGIN_PLACEHOLDER) -} diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/gradle.properties b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/gradle.properties deleted file mode 100644 index e209558321a..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -org.jetbrains.compose.experimental.jscanvas.enabled=true -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/settings.gradle deleted file mode 100644 index fe85d46d013..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/settings.gradle +++ /dev/null @@ -1,26 +0,0 @@ -pluginManagement { - plugins { - id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' - id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - } - repositories { - mavenLocal() - gradlePluginPortal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -dependencyResolutionManagement { - repositories { - mavenLocal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -rootProject.name = "customCompilerUnsupportedPlatformsWarning" diff --git a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/src/commonMain/kotlin/App.kt deleted file mode 100644 index 79dcb39588c..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/application/customCompilerUnsupportedPlatformsWarning/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,19 +0,0 @@ -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember - -@Composable -fun App() { - MaterialTheme { - var message by remember { mutableStateOf("Press the button!") } - - Button( - onClick = { message = "Welcome to Compose Multiplatform!" } - ) { - Text(message) - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle index 9d1d21d1cdc..0cd904a78fc 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle index 1531cffa135..ec73a975fed 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgs/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,11 +16,11 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle index 427b63b1ad0..af907c42970 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle index 1531cffa135..ec73a975fed 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/defaultArgsOverride/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,11 +16,11 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/build.gradle new file mode 100644 index 00000000000..616c3825c7a --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/build.gradle @@ -0,0 +1,24 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat + +plugins { + id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" + id "org.jetbrains.compose" +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib" + implementation compose.desktop.currentOs +} + +compose.desktop { + application { + mainClass = "MainKt" + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + packageVersion = "1.0.0" + + appResourcesRootDir.set(project.layout.projectDirectory.dir("resources")) + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/settings.gradle new file mode 100644 index 00000000000..9428fbafab2 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/settings.gradle @@ -0,0 +1,27 @@ +pluginManagement { + plugins { + id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + } + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + } +} +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + mavenLocal() + } +} +rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/src/main/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/src/main/kotlin/main.kt new file mode 100644 index 00000000000..b585ff88912 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/emptyAppResources/src/main/kotlin/main.kt @@ -0,0 +1,3 @@ +fun main() { + println("main") +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/hotReload/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/hotReload/build.gradle new file mode 100644 index 00000000000..9b47a19f515 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/hotReload/build.gradle @@ -0,0 +1,39 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat + +plugins { + id "com.android.application" + id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" + id "org.jetbrains.compose" +} + +kotlin { + // empty stub (no actual android app) to detect configuration conflicts + // like https://github.com/JetBrains/compose-jb/issues/2345 + androidTarget() + + jvm() + sourceSets { + jvmMain { + dependencies { + implementation(compose.desktop.currentOs) + } + } + } +} + +android { + namespace = "org.jetbrains.compose.testapp" + compileSdk = 35 + + defaultConfig { + minSdk = 23 + targetSdk = 35 + } +} + +compose.desktop { + application { + mainClass = "MainKt" + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/hotReload/gradle.properties b/gradle-plugins/compose/src/test/test-projects/application/hotReload/gradle.properties new file mode 100644 index 00000000000..2d8d1e4dd15 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/hotReload/gradle.properties @@ -0,0 +1 @@ +android.useAndroidX=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/hotReload/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/hotReload/settings.gradle new file mode 100644 index 00000000000..4c218907728 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/hotReload/settings.gradle @@ -0,0 +1,34 @@ +pluginManagement { + plugins { + id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + id 'com.android.application' version 'AGP_VERSION_PLACEHOLDER' + } + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } + } +} +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } + mavenLocal() + } +} +rootProject.name = "hotReload" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/hotReload/src/jvmMain/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/application/hotReload/src/jvmMain/kotlin/main.kt new file mode 100644 index 00000000000..c4e3ed3a3d8 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/hotReload/src/jvmMain/kotlin/main.kt @@ -0,0 +1,13 @@ +import java.io.File + +fun message() = "Kotlin MPP app is running!" + +fun main() { + println(message()) + File("started").createNewFile() + //wait for reload + while(!message().startsWith("KMP")){ + Thread.sleep(200) + } + println(message()) +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle index 87fbb5d4de6..28b9e0c6234 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/build.gradle @@ -1,5 +1,6 @@ plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle index de29cd85445..8dbdff829e5 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/javaLogger/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "javaLogger" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/jsMpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/build.gradle new file mode 100644 index 00000000000..32e45d82f04 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/build.gradle @@ -0,0 +1,28 @@ +plugins { + id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.compose" + id "org.jetbrains.kotlin.plugin.compose" +} + +kotlin { + js(IR) { + browser() + } + jvm {} + + sourceSets { + named("commonMain") { + } + named("jsMain") { + dependencies { + implementation(compose.html.core) + implementation(compose.runtime) + } + } + named("jvmMain") { + dependencies { + implementation(compose.desktop.currentOs) + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/jsMpp/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/settings.gradle new file mode 100644 index 00000000000..a749850576e --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/settings.gradle @@ -0,0 +1,27 @@ +pluginManagement { + plugins { + id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + } + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + } +} +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + mavenLocal() + } +} +rootProject.name = "jsMpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/commonMain/kotlin/platform.kt b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/commonMain/kotlin/platform.kt new file mode 100644 index 00000000000..f60eab5ff69 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/commonMain/kotlin/platform.kt @@ -0,0 +1 @@ +expect fun getPlatformName(): String \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jsMain/kotlin/platform.kt b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jsMain/kotlin/platform.kt new file mode 100644 index 00000000000..b6d4a07a09b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jsMain/kotlin/platform.kt @@ -0,0 +1 @@ +actual fun getPlatformName(): String = "js" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jvmMain/kotlin/platform.kt b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jvmMain/kotlin/platform.kt new file mode 100644 index 00000000000..144ba292915 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jvmMain/kotlin/platform.kt @@ -0,0 +1 @@ +actual fun getPlatformName(): String = "jvm" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle index 4ac0b9f8b21..6b93854d0c5 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/jvm/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle index 9df72a09ce6..9428fbafab2 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/jvm/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts index c8f6ac82b5d..10a756b3ae8 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id("org.jetbrains.kotlin.jvm") + id("org.jetbrains.kotlin.plugin.compose") id("org.jetbrains.compose") } @@ -18,6 +19,21 @@ compose.desktop { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) packageVersion = "1.0.0" + + val resourcesRoot = project.layout.projectDirectory.dir("resources") + macOS { + iconFile = resourcesRoot.file("icons/macos.icns") + entitlementsFile = resourcesRoot.file("entitlements.plist") + runtimeEntitlementsFile = resourcesRoot.file("entitlements.plist") + } + + windows { + iconFile = resourcesRoot.file("icons/windows.ico") + } + + linux { + iconFile = resourcesRoot.file("icons/linux.png") + } } } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/entitlements.plist b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/entitlements.plist new file mode 100644 index 00000000000..ee5a121fc86 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/entitlements.plist @@ -0,0 +1,24 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.cs.disable-library-validation + + com.apple.security.network.client + + com.apple.security.assets.movies.read-only + + com.apple.security.assets.music.read-only + + com.apple.security.assets.pictures.read-only + + com.apple.security.files.downloads.read-only + + com.apple.security.files.user-selected.read-only + + + diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/linux.png b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/linux.png new file mode 100644 index 00000000000..1f93755e752 Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/linux.png differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/macos.icns b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/macos.icns new file mode 100644 index 00000000000..fedf6a3f2ff Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/macos.icns differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/windows.ico b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/windows.ico new file mode 100644 index 00000000000..3e9c11bb6d7 Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/resources/icons/windows.ico differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle index 9df72a09ce6..9428fbafab2 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/jvmKotlinDsl/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/Expected-Info.plist b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Expected-Info.plist index a54a6e2a565..9f703cf88c7 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macOptions/Expected-Info.plist +++ b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Expected-Info.plist @@ -1,48 +1,123 @@ - - LSMinimumSystemVersion - 12.0 - CFBundleDevelopmentRegion - English - CFBundleAllowMixedLocalizations - true - CFBundleExecutable - TestPackage - CFBundleIconFile - TestPackage.icns - CFBundleIdentifier - MainKt - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - TestPackage - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0.0 - LSApplicationCategoryType - Unknown - CFBundleVersion - 1.0.0 - NSHumanReadableCopyright - Copyright (C) CURRENT_YEAR - NSSupportsAutomaticGraphicsSwitching - true - NSHighResolutionCapable - true + + LSMinimumSystemVersion + 12.0 + CFBundleDevelopmentRegion + English + CFBundleAllowMixedLocalizations + true + CFBundleExecutable + TestPackage + CFBundleIconFile + TestPackage.icns + CFBundleIdentifier + MainKt + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + TestPackage + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.0 + LSApplicationCategoryType + Unknown + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + Copyright (C) CURRENT_YEAR + NSSupportsAutomaticGraphicsSwitching + true + NSHighResolutionCapable + true + CFBundleDocumentTypes + + + CFBundleTypeRole + Editor + CFBundleTypeExtensions + + kot + + CFBundleTypeIconFile + Kotlin_icon_big.icns + CFBundleTypeMIMETypes + text/kotlin + CFBundleTypeName + Kotlin Source File0 + CFBundleTypeOSTypes + + **** + + + + CFBundleTypeRole + Editor + CFBundleTypeExtensions + + kot1 + + CFBundleTypeIconFile + TestPackage.icns + CFBundleTypeMIMETypes + text/kotlin + CFBundleTypeName + Kotlin Source File1 + CFBundleTypeOSTypes + + **** + + + + CFBundleTypeRole + Editor + CFBundleTypeExtensions + + kott + + CFBundleTypeIconFile + Kotlin_icon_big (1).icns + CFBundleTypeMIMETypes + text/kotlin + CFBundleTypeName + Kotlin Source File2 + CFBundleTypeOSTypes + + **** + + + + CFBundleTypeRole + Editor + CFBundleTypeExtensions + + kott1 + + CFBundleTypeIconFile + TestPackage.icns + CFBundleTypeMIMETypes + text/kotlin + CFBundleTypeName + Kotlin Source File3 + CFBundleTypeOSTypes + + **** + + + - CFBundleURLTypes - - - CFBundleURLName - Exameple URL - CFBundleURLSchemes - - exampleUrl - - - - + CFBundleURLTypes + + + CFBundleURLName + Example URL + CFBundleURLSchemes + + exampleUrl + + + + diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.icns b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.icns new file mode 100644 index 00000000000..fedf6a3f2ff Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.icns differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.ico b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.ico new file mode 100644 index 00000000000..3e9c11bb6d7 Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.ico differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.png b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.png new file mode 100644 index 00000000000..1f93755e752 Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/macOptions/Kotlin_icon_big.png differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle index 122189c0344..754636aa75a 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macOptions/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } @@ -11,29 +10,53 @@ dependencies { } def extraInfoPlistKeys = """ - CFBundleURLTypes - - - CFBundleURLName - Exameple URL - CFBundleURLSchemes - - exampleUrl - - - """ + CFBundleURLTypes + + + CFBundleURLName + Example URL + CFBundleURLSchemes + + exampleUrl + + + """ compose.desktop { application { mainClass = "MainKt" nativeDistributions { packageName = "TestPackage" + fileAssociation( + "text/kotlin", + "kot", + "Kotlin Source File0", + project.file("Kotlin_icon_big.png"), + project.file("Kotlin_icon_big.ico"), + project.file("Kotlin_icon_big.icns"), + ) + fileAssociation( + "text/kotlin", + "kot1", + "Kotlin Source File1", + ) macOS { dockName = "CustomDockName" minimumSystemVersion = "12.0" infoPlist { extraKeysRawXml = extraInfoPlistKeys } + fileAssociation( + "text/kotlin", + "kott", + "Kotlin Source File2", + project.file("subdir/Kotlin_icon_big.icns"), + ) + fileAssociation( + "text/kotlin", + "kott1", + "Kotlin Source File3", + ) } } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle index 1531cffa135..ec73a975fed 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macOptions/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,11 +16,11 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/macOptions/subdir/Kotlin_icon_big.icns b/gradle-plugins/compose/src/test/test-projects/application/macOptions/subdir/Kotlin_icon_big.icns new file mode 100644 index 00000000000..fedf6a3f2ff Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/macOptions/subdir/Kotlin_icon_big.icns differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle index 25af20375d7..44baafec90a 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macSign/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } @@ -14,14 +13,18 @@ compose.desktop { application { mainClass = "MainKt" nativeDistributions { + javaHome = javaToolchains.launcherFor { + languageVersion.set(JavaLanguageVersion.of(%JAVA_VERSION%)) + }.get().metadata.installationPath.asFile.absolutePath + packageName = "TestPackage" macOS { bundleID = "signing.test.package" signing { sign.set(true) - identity.set("Compose Test") - keychain.set("compose.test.keychain") + identity.set("%IDENTITY%") + keychain.set("%KEYCHAIN%") } } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/macSign/compose.test-non-ascii.keychain b/gradle-plugins/compose/src/test/test-projects/application/macSign/compose.test-non-ascii.keychain new file mode 100644 index 00000000000..a8cacd722fc Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/application/macSign/compose.test-non-ascii.keychain differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle index 1531cffa135..72965125a73 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/macSign/settings.gradle @@ -1,7 +1,9 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' } repositories { mavenLocal() @@ -13,13 +15,16 @@ pluginManagement { } } } +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' +} dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle index 67919354736..7265e9830df 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/app/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle index 89f91ba82fc..281c158a5b0 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/moduleClashCli/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } include ':lib1:utils', ':lib2:utils', ':app' \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle index 33fc77b2844..5a5fe777e79 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/mpp/build.gradle @@ -3,13 +3,14 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "com.android.application" id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } kotlin { // empty stub (no actual android app) to detect configuration conflicts // like https://github.com/JetBrains/compose-jb/issues/2345 - android() + androidTarget() jvm() sourceSets { @@ -21,23 +22,18 @@ kotlin { } } } + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } } android { namespace = "org.jetbrains.compose.testapp" - compileSdk = 31 + compileSdk = 35 defaultConfig { - minSdk = 21 - targetSdk = 31 - } -} - -kotlin { - jvm { - jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - } + minSdk = 23 + targetSdk = 35 } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle index 0276bf4c39b..f56d133772d 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/mpp/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' id 'com.android.application' version 'AGP_VERSION_PLACEHOLDER' } @@ -19,7 +20,6 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { @@ -28,6 +28,7 @@ dependencyResolutionManagement { maven { url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' } + mavenLocal() } } rootProject.name = "mpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle index 33188819c9f..9faff0a6f6f 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "com.android.kotlin.multiplatform.library" id "org.jetbrains.compose" } @@ -11,7 +10,7 @@ kotlin { androidLibrary { namespace = "com.google.samples.apps.diceroller.shared" - compileSdk = 34 + compileSdk = 35 } jvm() diff --git a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle index 142c0d28b47..cfe1812436e 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/newAndroidTarget/settings.gradle @@ -1,8 +1,9 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - id 'com.android.kotlin.multiplatform.library' version '8.2.0-alpha13' + id 'com.android.kotlin.multiplatform.library' version 'AGP_VERSION_PLACEHOLDER' } repositories { mavenLocal() @@ -16,12 +17,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "mpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/nonJvm/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/build.gradle new file mode 100644 index 00000000000..f708194b124 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/build.gradle @@ -0,0 +1,23 @@ +plugins { + id "com.android.application" + id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" + id "org.jetbrains.compose" +} + +kotlin { + androidTarget() + iosX64() + iosArm64() + iosSimulatorArm64() +} + +android { + namespace = "org.jetbrains.compose.testapp" + compileSdk = 35 + + defaultConfig { + minSdk = 23 + targetSdk = 35 + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/nonJvm/gradle.properties b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/gradle.properties new file mode 100644 index 00000000000..2d8d1e4dd15 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/gradle.properties @@ -0,0 +1 @@ +android.useAndroidX=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/nonJvm/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/settings.gradle new file mode 100644 index 00000000000..3b6258c789e --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/settings.gradle @@ -0,0 +1,34 @@ +pluginManagement { + plugins { + id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + id 'com.android.application' version 'AGP_VERSION_PLACEHOLDER' + } + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } + } +} +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } + mavenLocal() + } +} +rootProject.name = "nonJvm" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/nonJvm/src/jvmMain/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/src/jvmMain/kotlin/main.kt new file mode 100644 index 00000000000..4d7210e2bef --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/nonJvm/src/jvmMain/kotlin/main.kt @@ -0,0 +1,3 @@ +fun main() { + println("Kotlin MPP app is running!") +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle index f0df53799ff..2451e05bede 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle index 1531cffa135..ec73a975fed 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/optionsWithSpaces/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,11 +16,11 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle index 7fe038689d2..9ac7551ccaf 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/build.gradle @@ -3,18 +3,25 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" + id "org.jetbrains.kotlin.plugin.serialization" } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0" implementation compose.desktop.currentOs + implementation compose.material3 } compose.desktop { application { mainClass = "Main" nativeDistributions { + windows { + console = true + } targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) } diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/main-image.expected.png b/gradle-plugins/compose/src/test/test-projects/application/proguard/main-image.expected.png index 10bbd926673..a8ed1ade6ff 100644 Binary files a/gradle-plugins/compose/src/test/test-projects/application/proguard/main-image.expected.png and b/gradle-plugins/compose/src/test/test-projects/application/proguard/main-image.expected.png differ diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt b/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt index 3fc7a4f8c76..93f20371e0a 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/main-methods.expected.txt @@ -1,3 +1,5 @@ keptByKeepRule +keptByKeepRule$lambda$0 main -mainShape \ No newline at end of file +mainShape +mainShape$lambda$0 diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle index 9df72a09ce6..e2399a0bc09 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/settings.gradle @@ -1,6 +1,8 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.serialization' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +17,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/proguard/src/main/kotlin/Main.kt b/gradle-plugins/compose/src/test/test-projects/application/proguard/src/main/kotlin/Main.kt index e7d73f0092f..f6e383b92b2 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/proguard/src/main/kotlin/Main.kt +++ b/gradle-plugins/compose/src/test/test-projects/application/proguard/src/main/kotlin/Main.kt @@ -10,6 +10,9 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.renderComposeScene +import kotlinx.serialization.InternalSerializationApi +import kotlinx.serialization.Serializable +import kotlinx.serialization.serializer import org.jetbrains.skia.EncodedImageFormat import java.io.File import java.util.* @@ -34,6 +37,8 @@ object Main { .mapTo(TreeSet()) { it.name } .joinToString("\n") workingDir.resolve("main-methods.actual.txt").writeText(mainMethods) + + serializer() } @Composable @@ -55,6 +60,13 @@ object Main { fun keptByKeepRule() { fillShape(Color.Blue, CircleShape) } + + // https://youtrack.jetbrains.com/issue/CMP-8050/Desktop-runRelease-crash-when-upgrade-to-CMP-1.8.0-rc01#focus=Comments-27-11963863.0-0 + @OptIn(InternalSerializationApi::class) + fun serializer() { + LoginRoute::class.serializer() + LoginRoute.serializer() + } } @Composable @@ -73,4 +85,7 @@ fun fillShape(color: Color, shape: Shape){ modifier = Modifier.clip(shape).fillMaxSize().background(color) ) } -} \ No newline at end of file +} + +@Serializable +data class LoginRoute(val id: Long? = null) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle index 9db2a01e22f..616c3825c7a 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/resources/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle index 9df72a09ce6..9428fbafab2 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/resources/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle index d49191985ce..2ccc034b0f8 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/build.gradle @@ -2,6 +2,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle index 9df72a09ce6..9428fbafab2 100644 --- a/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/application/unpackSkiko/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "simple" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/.yarnrc b/gradle-plugins/compose/src/test/test-projects/application/webApp/.yarnrc new file mode 100644 index 00000000000..6a904ab643c --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/.yarnrc @@ -0,0 +1 @@ +--install.mutex network diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebApp b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebApp new file mode 100644 index 00000000000..113e3fba80c --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebApp @@ -0,0 +1,27 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js { + browser { } + binaries.executable() + } + + wasmJs { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + wasmJsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebAppWithKmmBridge b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebAppWithKmmBridge new file mode 100644 index 00000000000..932b71b3d8e --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebAppWithKmmBridge @@ -0,0 +1,28 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.kotlin.plugin.compose") + id("org.jetbrains.compose") + id("co.touchlab.kmmbridge").version("0.5.7") +} + +kotlin { + js { + browser { } + binaries.executable() + } + + wasmJs { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + wasmJsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsNonExecutable b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsNonExecutable new file mode 100644 index 00000000000..95e5405ad0b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsNonExecutable @@ -0,0 +1,25 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js { + browser { } + } + + wasmJs { + browser { } + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + wasmJsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsOnly b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsOnly new file mode 100644 index 00000000000..5c8e4ec7c59 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsOnly @@ -0,0 +1,21 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmNonStandardBundleNames b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmNonStandardBundleNames new file mode 100644 index 00000000000..4def39bf165 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmNonStandardBundleNames @@ -0,0 +1,31 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js { + browser { + commonWebpackConfig { outputFileName = "myApp.js" } + } + binaries.executable() + } + + wasmJs { + browser { + commonWebpackConfig { outputFileName = "myApp.js" } + } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + wasmJsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmNonStandardTargetNames b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmNonStandardTargetNames new file mode 100644 index 00000000000..45937802924 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmNonStandardTargetNames @@ -0,0 +1,27 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js("webJs") { + browser { } + binaries.executable() + } + + wasmJs("webWasm") { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + val webJsMain by getting { dependsOn(webMain) } + val webWasmMain by getting { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmRepacked b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmRepacked new file mode 100644 index 00000000000..b9d3e916d8d --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebJsWasmRepacked @@ -0,0 +1,71 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js { + browser { } + binaries.executable() + } + + wasmJs { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + wasmJsMain { dependsOn(webMain) } + } +} + +val wasmRepack = tasks.register("wasmRepack") { + sourceFiles.from(project.tasks.named("wasmJsBrowserDistribution").map { it.outputs.files }) + outputDir.set(project.layout.buildDirectory.dir("dist/repackedWasm")) +} + +val jsRepack = tasks.register("jsRepack") { + sourceFiles.from(project.tasks.named("jsBrowserDistribution").map { it.outputs.files }) + outputDir.set(project.layout.buildDirectory.dir("dist/repackedJs")) +} + +project.tasks.withType().configureEach { + jsOutputName.set("repackedApp.js") + wasmOutputName.set("repackedApp.js") + jsDistFiles.setFrom(jsRepack) + wasmDistFiles.setFrom(wasmRepack) +} + +abstract class RepackTask : DefaultTask() { + @get:Inject + internal abstract val fileOperations: FileSystemOperations + + @get:InputFiles + abstract val sourceFiles: ConfigurableFileCollection + + @get:OutputDirectory + abstract val outputDir: DirectoryProperty + + @TaskAction + fun run() { + fileOperations.copy { + from(sourceFiles) { + this.rename { name -> + when (name) { + "composeApp.js" -> "repackedApp.js" + "composeApp.js.map" -> "repackedApp.js.map" + else -> name + } + } + } + into(outputDir) + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebSingleExecutable b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebSingleExecutable new file mode 100644 index 00000000000..2d46e17ad4d --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebSingleExecutable @@ -0,0 +1,26 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + js { + browser { } + } + + wasmJs { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + jsMain { dependsOn(webMain) } + wasmJsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebWasmOnly b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebWasmOnly new file mode 100644 index 00000000000..d751fdd3a9e --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/build.gradle.kts.WebWasmOnly @@ -0,0 +1,21 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") +} + +kotlin { + wasmJs { + browser { } + binaries.executable() + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + + val webMain by creating { dependsOn(commonMain.get()) } + wasmJsMain { dependsOn(webMain) } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/application/webApp/settings.gradle.kts new file mode 100644 index 00000000000..1a899d64f28 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/settings.gradle.kts @@ -0,0 +1,38 @@ +rootProject.name = "composeApp" + +pluginManagement { + plugins { + id("org.jetbrains.kotlin.multiplatform") version "KOTLIN_VERSION_PLACEHOLDER" + id("org.jetbrains.kotlin.plugin.compose") version "KOTLIN_VERSION_PLACEHOLDER" + id("org.jetbrains.compose") version "COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER" + } + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + gradlePluginPortal() + mavenLocal() + } +} + +dependencyResolutionManagement { + repositories { + maven { + url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") + } + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + mavenLocal() + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/jsMain/kotlin/org/example/project/Platform.kt b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/jsMain/kotlin/org/example/project/Platform.kt new file mode 100644 index 00000000000..f60190bca10 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/jsMain/kotlin/org/example/project/Platform.kt @@ -0,0 +1,7 @@ +package org.example.project + +private class JsPlatform : Platform { + override val name: String = "Web with Kotlin/JS" +} + +actual fun getPlatform(): Platform = JsPlatform() \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/wasmJsMain/kotlin/org/example/project/Platform.kt b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/wasmJsMain/kotlin/org/example/project/Platform.kt new file mode 100644 index 00000000000..7bba337893b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/wasmJsMain/kotlin/org/example/project/Platform.kt @@ -0,0 +1,7 @@ +package org.example.project + +private class WasmPlatform : Platform { + override val name: String = "Web with Kotlin/Wasm" +} + +actual fun getPlatform(): Platform = WasmPlatform() \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/Greeting.kt b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/Greeting.kt new file mode 100644 index 00000000000..d49d31928bc --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/Greeting.kt @@ -0,0 +1,9 @@ +package org.example.project + +class Greeting { + private val platform = getPlatform() + + fun greet(): String { + return "Hello, ${platform.name}!" + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/Platform.kt b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/Platform.kt new file mode 100644 index 00000000000..6018b28e0ad --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/Platform.kt @@ -0,0 +1,7 @@ +package org.example.project + +interface Platform { + val name: String +} + +expect fun getPlatform(): Platform \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/main.kt new file mode 100644 index 00000000000..47abc6559b3 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/kotlin/main.kt @@ -0,0 +1,5 @@ +package org.example.project + +fun main() { + println(Greeting().greet()) +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/resources/index.html b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/resources/index.html new file mode 100644 index 00000000000..a6a76b1ded0 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/resources/index.html @@ -0,0 +1,13 @@ + + + + + + KotlinProject + + + + + + + \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/resources/styles.css b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/resources/styles.css new file mode 100644 index 00000000000..0549b10f86d --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/application/webApp/src/webMain/resources/styles.css @@ -0,0 +1,7 @@ +html, body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/appleResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/build.gradle.kts new file mode 100644 index 00000000000..e8f759c1b8b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/build.gradle.kts @@ -0,0 +1,33 @@ +plugins { + kotlin("multiplatform") + kotlin("plugin.compose") + kotlin("native.cocoapods") + id("org.jetbrains.compose") +} + +kotlin { + cocoapods { + version = "1.0" + summary = "Some description for a Kotlin/Native module" + homepage = "Link to a Kotlin/Native module homepage" + pod("Base64", "1.1.2") + framework { + baseName = "shared" + isStatic = true + } + } + + iosX64() + iosArm64() + iosSimulatorArm64() + + sourceSets { + commonMain { + dependencies { + implementation(compose.runtime) + implementation(compose.material) + implementation(compose.components.resources) + } + } + } +} diff --git a/benchmarks/ios/animation-from-template/shared/src/commonMain/resources/compose-multiplatform.xml b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/XCFrameworks/iosComposeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml similarity index 100% rename from benchmarks/ios/animation-from-template/shared/src/commonMain/resources/compose-multiplatform.xml rename to gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/XCFrameworks/iosComposeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/iosMain/composeResources/drawable/icon.xml b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/XCFrameworks/iosComposeResources/appleresources.generated.resources/drawable/icon.xml similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/iosMain/composeResources/drawable/icon.xml rename to gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/XCFrameworks/iosComposeResources/appleresources.generated.resources/drawable/icon.xml diff --git a/benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/resources/compose-multiplatform.xml b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/XCFrameworks/macosComposeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml similarity index 100% rename from benchmarks/ios/jvm-vs-kotlin-native/src/commonMain/resources/compose-multiplatform.xml rename to gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/XCFrameworks/macosComposeResources/appleresources.generated.resources/drawable/compose-multiplatform.xml diff --git a/gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/appleResources.podspec b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/appleResources.podspec new file mode 100644 index 00000000000..ae6a8954e84 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/expected/appleResources.podspec @@ -0,0 +1,54 @@ +Pod::Spec.new do |spec| + spec.name = 'appleResources' + spec.version = '1.0' + spec.homepage = 'Link to a Kotlin/Native module homepage' + spec.source = { :http=> ''} + spec.authors = '' + spec.license = '' + spec.summary = 'Some description for a Kotlin/Native module' + spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework' + spec.libraries = 'c++' + + spec.dependency 'Base64', '1.1.2' + + if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') + raise " + + Kotlin framework 'shared' doesn't exist yet, so a proper Xcode project can't be generated. + 'pod install' should be executed after running ':generateDummyFramework' Gradle task: + + ./gradlew :generateDummyFramework + + Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" + end + + spec.xcconfig = { + 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', + } + + spec.pod_target_xcconfig = { + 'KOTLIN_PROJECT_PATH' => '', + 'PRODUCT_MODULE_NAME' => 'shared', + } + + spec.script_phases = [ + { + :name => 'Build appleResources', + :execution_position => :before_compile, + :shell_path => '/bin/sh', + :script => <<-SCRIPT + if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then + echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"" + exit 0 + fi + set -ev + REPO_ROOT="$PODS_TARGET_SRCROOT" + "$REPO_ROOT/gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ + -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \ + -Pkotlin.native.cocoapods.archs="$ARCHS" \ + -Pkotlin.native.cocoapods.configuration="$CONFIGURATION" + SCRIPT + } + ] + spec.resources = ['build/compose/cocoapods/compose-resources'] +end \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/appleResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/gradle.properties new file mode 100644 index 00000000000..dc1dcfb61b8 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8096M +org.jetbrains.compose.experimental.macos.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/appleResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/settings.gradle.kts new file mode 100644 index 00000000000..a9407f5c395 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/settings.gradle.kts @@ -0,0 +1,26 @@ +rootProject.name = "appleResources" +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + google() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://packages.jetbrains.team/maven/p/kt/dev") + } + plugins { + id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.native.cocoapods").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") + } +} +dependencyResolutionManagement { + repositories { + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://packages.jetbrains.team/maven/p/kt/dev") + mavenCentral() + gradlePluginPortal() + google() + mavenLocal() + } +} \ No newline at end of file diff --git a/benchmarks/kn-performance/src/commonMain/resources/compose-multiplatform.xml b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml similarity index 100% rename from benchmarks/kn-performance/src/commonMain/resources/compose-multiplatform.xml rename to gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml diff --git a/gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/commonMain/kotlin/App.kt new file mode 100644 index 00000000000..504f3cf5137 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/commonMain/kotlin/App.kt @@ -0,0 +1,37 @@ +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import org.jetbrains.compose.resources.painterResource +import appleresources.generated.resources.* + +@Composable +fun App() { + MaterialTheme { + var greetingText by remember { mutableStateOf("Hello, World!") } + var showImage by remember { mutableStateOf(false) } + Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { + Button(onClick = { + showImage = !showImage + }) { + Text(greetingText) + } + AnimatedVisibility(showImage) { + Image( + painterResource(Res.drawable.compose_multiplatform), + null + ) + } + } + } +} diff --git a/examples/cocoapods-ios-example/shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml b/gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/iosMain/composeResources/drawable/icon.xml similarity index 100% rename from examples/cocoapods-ios-example/shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml rename to gradle-plugins/compose/src/test/test-projects/misc/appleResources/src/iosMain/composeResources/drawable/icon.xml diff --git a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts index 5e0fd3e9fa9..c139eff8a7d 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/app/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") id("org.jetbrains.compose") id("com.github.gmazzo.buildconfig") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts index 53f913fce78..f31c0a79f54 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/build.gradle.kts @@ -1,4 +1,5 @@ plugins { kotlin("multiplatform").apply(false) + kotlin("plugin.compose").apply(false) id("org.jetbrains.compose").apply(false) } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts index af0c57f19b6..c4d642da8de 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/bundledKotlinPoet/settings.gradle.kts @@ -9,16 +9,17 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") id("com.github.gmazzo.buildconfig").version("5.3.5") } } dependencyResolutionManagement { repositories { - mavenLocal() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") mavenCentral() gradlePluginPortal() google() + mavenLocal() } } \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts index beda4225bf4..ea9ed3f5d60 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") id("com.android.application") id("org.jetbrains.compose") } @@ -9,8 +10,10 @@ group = "app.group" kotlin { androidTarget { compilations.all { - kotlinOptions { - jvmTarget = "11" + compileTaskProvider { + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11) + } } } } @@ -30,13 +33,13 @@ kotlin { } android { - compileSdk = 34 + compileSdk = 35 namespace = "org.jetbrains.compose.resources.test" sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { applicationId = "org.example.project" - minSdk = 21 - targetSdk = 34 + minSdk = 23 + targetSdk = 35 versionCode = 1 versionName = "1.0" } @@ -61,4 +64,35 @@ android { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } + lint { + checkReleaseBuilds = false + } +} + +abstract class GenerateAndroidRes : DefaultTask() { + @get:Inject + abstract val layout: ProjectLayout + + @get:OutputDirectory + val outputDir = layout.buildDirectory.dir("generatedAndroidResources") + + @TaskAction + fun run() { + val dir = outputDir.get().asFile + dir.deleteRecursively() + File(dir, "values/strings.xml").apply { + parentFile.mkdirs() + writeText( + """ + + Android string + + """.trimIndent() + ) + } + } } +compose.resources.customDirectory( + sourceSetName = "androidMain", + directoryProvider = tasks.register("generateAndroidRes").map { it.outputDir.get() } +) diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt index 4c07207da06..5616407f890 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceAccessors/my/lib/res/String0.androidMain.kt @@ -1,22 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package my.lib.res import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem import org.jetbrains.compose.resources.StringResource -private object AndroidMainString0 { - public val android_str: StringResource by - lazy { init_android_str() } -} +private const val MD: String = "composeResources/my.lib.res/" -public val Res.string.android_str: StringResource - get() = AndroidMainString0.android_str +public val MyRes.string.android_str: StringResource by lazy { + StringResource("string:android_str", "android_str", setOf( + ResourceItem(setOf(), "${MD}values/strings.androidMain.cvr", 10, 39), + )) + } -private fun init_android_str(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:android_str", "android_str", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.androidMain.cvr", 10, - 39), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectAndroidMainString0Resources(map: MutableMap) { + map.put("android_str", MyRes.string.android_str) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt new file mode 100644 index 00000000000..54417071550 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/androidMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt @@ -0,0 +1,42 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package my.lib.res + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +public actual val MyRes.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + return@lazy map +} + +public actual val MyRes.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectAndroidMainString0Resources(map) + _collectCommonMainString0Resources(map) + return@lazy map +} + +public actual val MyRes.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +public actual val MyRes.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainPlurals0Resources(map) + return@lazy map +} + +public actual val MyRes.allFontResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainFont0Resources(map) + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt index 408e508f377..b7dc96de4ba 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Drawable0.commonMain.kt @@ -1,75 +1,72 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package my.lib.res import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap import org.jetbrains.compose.resources.DrawableResource - -private object CommonMainDrawable0 { - public val _3_strange_name: DrawableResource by - lazy { init__3_strange_name() } - - public val camelCaseName: DrawableResource by - lazy { init_camelCaseName() } - - public val vector: DrawableResource by - lazy { init_vector() } - - public val vector_2: DrawableResource by - lazy { init_vector_2() } +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.RegionQualifier +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.ThemeQualifier + +private const val MD: String = "composeResources/my.lib.res/" + +public val MyRes.drawable._3_strange_name: DrawableResource by lazy { + DrawableResource("drawable:_3_strange_name", setOf( + ResourceItem(setOf(), "${MD}drawable/3-strange-name.xml", -1, -1), + )) + } + +public val MyRes.drawable.camelCaseName: DrawableResource by lazy { + DrawableResource("drawable:camelCaseName", setOf( + ResourceItem(setOf(), "${MD}drawable/camelCaseName.xml", -1, -1), + )) + } + +public val MyRes.drawable.`is`: DrawableResource by lazy { + DrawableResource("drawable:is", setOf( + ResourceItem(setOf(), "${MD}drawable/is.xml", -1, -1), + )) + } + +public val MyRes.drawable.raster: DrawableResource by lazy { + DrawableResource("drawable:raster", setOf( + ResourceItem(setOf(), "${MD}drawable/raster.webp", -1, -1), + )) + } + +public val MyRes.drawable.svg: DrawableResource by lazy { + DrawableResource("drawable:svg", setOf( + ResourceItem(setOf(), "${MD}drawable/svg.svg", -1, -1), + )) + } + +public val MyRes.drawable.vector: DrawableResource by lazy { + DrawableResource("drawable:vector", setOf( + ResourceItem(setOf(LanguageQualifier("ast"), ), "${MD}drawable-ast/vector.xml", -1, -1), + ResourceItem(setOf(LanguageQualifier("au"), RegionQualifier("US"), ), "${MD}drawable-au-rUS/vector.xml", -1, -1), + ResourceItem(setOf(ThemeQualifier.DARK, LanguageQualifier("ge"), ), "${MD}drawable-dark-ge/vector.xml", -1, -1), + ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}drawable-en/vector.xml", -1, -1), + ResourceItem(setOf(), "${MD}drawable/vector.xml", -1, -1), + )) + } + +public val MyRes.drawable.vector_2: DrawableResource by lazy { + DrawableResource("drawable:vector_2", setOf( + ResourceItem(setOf(), "${MD}drawable/vector_2.xml", -1, -1), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainDrawable0Resources(map: MutableMap) { + map.put("_3_strange_name", MyRes.drawable._3_strange_name) + map.put("camelCaseName", MyRes.drawable.camelCaseName) + map.put("is", MyRes.drawable.`is`) + map.put("raster", MyRes.drawable.raster) + map.put("svg", MyRes.drawable.svg) + map.put("vector", MyRes.drawable.vector) + map.put("vector_2", MyRes.drawable.vector_2) } - -public val Res.drawable._3_strange_name: DrawableResource - get() = CommonMainDrawable0._3_strange_name - -private fun init__3_strange_name(): DrawableResource = - org.jetbrains.compose.resources.DrawableResource( - "drawable:_3_strange_name", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/3-strange-name.xml", -1, -1), - ) - ) - -public val Res.drawable.camelCaseName: DrawableResource - get() = CommonMainDrawable0.camelCaseName - -private fun init_camelCaseName(): DrawableResource = - org.jetbrains.compose.resources.DrawableResource( - "drawable:camelCaseName", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/camelCaseName.xml", -1, -1), - ) - ) - -public val Res.drawable.vector: DrawableResource - get() = CommonMainDrawable0.vector - -private fun init_vector(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( - "drawable:vector", - setOf( - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("ast"), - ), "drawable-ast/vector.xml", -1, -1), - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("au"), - org.jetbrains.compose.resources.RegionQualifier("US"), ), "drawable-au-rUS/vector.xml", -1, -1), - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.ThemeQualifier.DARK, - org.jetbrains.compose.resources.LanguageQualifier("ge"), ), - "drawable-dark-ge/vector.xml", -1, -1), - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "drawable-en/vector.xml", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector.xml", -1, -1), - ) -) - -public val Res.drawable.vector_2: DrawableResource - get() = CommonMainDrawable0.vector_2 - -private fun init_vector_2(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( - "drawable:vector_2", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector_2.xml", -1, -1), - ) -) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt index 1d69a111bbf..0fcb1967bd8 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Font0.commonMain.kt @@ -1,24 +1,25 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package my.lib.res import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.ResourceItem -private object CommonMainFont0 { - public val emptyFont: FontResource by - lazy { init_emptyFont() } -} - -public val Res.font.emptyFont: FontResource - get() = CommonMainFont0.emptyFont +private const val MD: String = "composeResources/my.lib.res/" -private fun init_emptyFont(): FontResource = org.jetbrains.compose.resources.FontResource( - "font:emptyFont", - setOf( +public val MyRes.font.emptyFont: FontResource by lazy { + FontResource("font:emptyFont", setOf( + ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}font-en/emptyFont.otf", -1, -1), + ResourceItem(setOf(), "${MD}font/emptyFont.otf", -1, -1), + )) + } - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "font-en/emptyFont.otf", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "font/emptyFont.otf", -1, -1), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectCommonMainFont0Resources(map: MutableMap) { + map.put("emptyFont", MyRes.font.emptyFont) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt index 95ecbbca591..3ed83df0753 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/Plurals0.commonMain.kt @@ -1,23 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package my.lib.res import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.ResourceItem -private object CommonMainPlurals0 { - public val numberOfSongsAvailable: PluralStringResource by - lazy { init_numberOfSongsAvailable() } -} +private const val MD: String = "composeResources/my.lib.res/" -public val Res.plurals.numberOfSongsAvailable: PluralStringResource - get() = CommonMainPlurals0.numberOfSongsAvailable +public val MyRes.plurals.numberOfSongsAvailable: PluralStringResource by lazy { + PluralStringResource("plurals:numberOfSongsAvailable", "numberOfSongsAvailable", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 10, 124), + )) + } -private fun init_numberOfSongsAvailable(): PluralStringResource = - org.jetbrains.compose.resources.PluralStringResource( - "plurals:numberOfSongsAvailable", "numberOfSongsAvailable", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 10, - 124), - ) - ) \ No newline at end of file +@InternalResourceApi +internal fun _collectCommonMainPlurals0Resources(map: MutableMap) { + map.put("numberOfSongsAvailable", MyRes.plurals.numberOfSongsAvailable) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt index d3a70bb1f25..4be822c2868 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceAccessors/my/lib/res/String0.commonMain.kt @@ -1,106 +1,72 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package my.lib.res import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem import org.jetbrains.compose.resources.StringResource -private object CommonMainString0 { - public val PascalCase: StringResource by - lazy { init_PascalCase() } - - public val _1_kebab_case: StringResource by - lazy { init__1_kebab_case() } - - public val app_name: StringResource by - lazy { init_app_name() } - - public val camelCase: StringResource by - lazy { init_camelCase() } - - public val hello: StringResource by - lazy { init_hello() } - - public val multi_line: StringResource by - lazy { init_multi_line() } - - public val str_template: StringResource by - lazy { init_str_template() } +private const val MD: String = "composeResources/my.lib.res/" + +public val MyRes.string.PascalCase: StringResource by lazy { + StringResource("string:PascalCase", "PascalCase", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 172, 34), + )) + } + +public val MyRes.string._1_kebab_case: StringResource by lazy { + StringResource("string:_1_kebab_case", "_1_kebab_case", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 135, 36), + )) + } + +public val MyRes.string.app_name: StringResource by lazy { + StringResource("string:app_name", "app_name", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 207, 44), + )) + } + +public val MyRes.string.camelCase: StringResource by lazy { + StringResource("string:camelCase", "camelCase", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 252, 29), + )) + } + +public val MyRes.string.hello: StringResource by lazy { + StringResource("string:hello", "hello", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 282, 37), + )) + } + +public val MyRes.string.`info_using_release_$x`: StringResource by lazy { + StringResource("string:info_using_release_${'$'}x", "info_using_release_${'$'}x", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 320, 57), + )) + } + +public val MyRes.string.multi_line: StringResource by lazy { + StringResource("string:multi_line", "multi_line", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 378, 178), + )) + } + +public val MyRes.string.str_template: StringResource by lazy { + StringResource("string:str_template", "str_template", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 557, 76), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainString0Resources(map: MutableMap) { + map.put("PascalCase", MyRes.string.PascalCase) + map.put("_1_kebab_case", MyRes.string._1_kebab_case) + map.put("app_name", MyRes.string.app_name) + map.put("camelCase", MyRes.string.camelCase) + map.put("hello", MyRes.string.hello) + map.put("info_using_release_${'$'}x", MyRes.string.`info_using_release_$x`) + map.put("multi_line", MyRes.string.multi_line) + map.put("str_template", MyRes.string.str_template) } - -public val Res.string.PascalCase: StringResource - get() = CommonMainString0.PascalCase - -private fun init_PascalCase(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:PascalCase", "PascalCase", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 172, - 34), - ) -) - -public val Res.string._1_kebab_case: StringResource - get() = CommonMainString0._1_kebab_case - -private fun init__1_kebab_case(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:_1_kebab_case", "_1_kebab_case", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 135, - 36), - ) -) - -public val Res.string.app_name: StringResource - get() = CommonMainString0.app_name - -private fun init_app_name(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:app_name", "app_name", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 207, - 44), - ) -) - -public val Res.string.camelCase: StringResource - get() = CommonMainString0.camelCase - -private fun init_camelCase(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:camelCase", "camelCase", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 252, - 29), - ) -) - -public val Res.string.hello: StringResource - get() = CommonMainString0.hello - -private fun init_hello(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:hello", "hello", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 282, - 37), - ) -) - -public val Res.string.multi_line: StringResource - get() = CommonMainString0.multi_line - -private fun init_multi_line(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:multi_line", "multi_line", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 320, - 178), - ) -) - -public val Res.string.str_template: StringResource - get() = CommonMainString0.str_template - -private fun init_str_template(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:str_template", "str_template", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 499, - 76), - ) -) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceCollectors/my/lib/res/ExpectResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceCollectors/my/lib/res/ExpectResourceCollectors.kt new file mode 100644 index 00000000000..a05683d4687 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonMainResourceCollectors/my/lib/res/ExpectResourceCollectors.kt @@ -0,0 +1,19 @@ +package my.lib.res + +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +public expect val MyRes.allDrawableResources: Map + +public expect val MyRes.allStringResources: Map + +public expect val MyRes.allStringArrayResources: Map + +public expect val MyRes.allPluralStringResources: Map + +public expect val MyRes.allFontResources: Map diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/MyRes.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/MyRes.kt new file mode 100644 index 00000000000..d47fe8bcea7 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/MyRes.kt @@ -0,0 +1,47 @@ +@file:OptIn(InternalResourceApi::class) +@file:Suppress( + "RedundantVisibilityModifier", + "REDUNDANT_VISIBILITY_MODIFIER", +) + +package my.lib.res + +import kotlin.ByteArray +import kotlin.OptIn +import kotlin.String +import kotlin.Suppress +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.getResourceUri +import org.jetbrains.compose.resources.readResourceBytes + +public object MyRes { + /** + * Reads the content of the resource file at the specified path and returns it as a byte array. + * + * Example: `val bytes = MyRes.readBytes("files/key.bin")` + * + * @param path The path of the file to read in the compose resource's directory. + * @return The content of the file as a byte array. + */ + public suspend fun readBytes(path: String): ByteArray = readResourceBytes("composeResources/my.lib.res/" + path) + + /** + * Returns the URI string of the resource file at the specified path. + * + * Example: `val uri = MyRes.getUri("files/key.bin")` + * + * @param path The path of the file in the compose resource's directory. + * @return The URI string of the file. + */ + public fun getUri(path: String): String = getResourceUri("composeResources/my.lib.res/" + path) + + public object drawable + + public object string + + public object array + + public object plurals + + public object font +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt deleted file mode 100644 index e5a14096343..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/commonResClass/my/lib/res/Res.kt +++ /dev/null @@ -1,47 +0,0 @@ -@file:OptIn( - org.jetbrains.compose.resources.InternalResourceApi::class, - org.jetbrains.compose.resources.ExperimentalResourceApi::class, -) - -package my.lib.res - -import kotlin.ByteArray -import kotlin.OptIn -import kotlin.String -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.getResourceUri -import org.jetbrains.compose.resources.readResourceBytes - -public object Res { - /** - * Reads the content of the resource file at the specified path and returns it as a byte array. - * - * Example: `val bytes = Res.readBytes("files/key.bin")` - * - * @param path The path of the file to read in the compose resource's directory. - * @return The content of the file as a byte array. - */ - @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) - - /** - * Returns the URI string of the resource file at the specified path. - * - * Example: `val uri = Res.getUri("files/key.bin")` - * - * @param path The path of the file in the compose resource's directory. - * @return The URI string of the file. - */ - @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) - - public object drawable - - public object string - - public object array - - public object plurals - - public object font -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt index 4fcecd75b6c..a2e9545e12e 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceAccessors/my/lib/res/String0.desktopMain.kt @@ -1,22 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package my.lib.res import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem import org.jetbrains.compose.resources.StringResource -private object DesktopMainString0 { - public val desktop_str: StringResource by - lazy { init_desktop_str() } -} +private const val MD: String = "composeResources/my.lib.res/" -public val Res.string.desktop_str: StringResource - get() = DesktopMainString0.desktop_str +public val MyRes.string.desktop_str: StringResource by lazy { + StringResource("string:desktop_str", "desktop_str", setOf( + ResourceItem(setOf(), "${MD}values/desktop_strings.desktopMain.cvr", 10, 39), + )) + } -private fun init_desktop_str(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:desktop_str", "desktop_str", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), - "values/desktop_strings.desktopMain.cvr", 10, 39), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectDesktopMainString0Resources(map: MutableMap) { + map.put("desktop_str", MyRes.string.desktop_str) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt new file mode 100644 index 00000000000..b03a8a303d1 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-open-res/desktopMainResourceCollectors/my/lib/res/ActualResourceCollectors.kt @@ -0,0 +1,42 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package my.lib.res + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +public actual val MyRes.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + return@lazy map +} + +public actual val MyRes.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainString0Resources(map) + _collectDesktopMainString0Resources(map) + return@lazy map +} + +public actual val MyRes.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +public actual val MyRes.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainPlurals0Resources(map) + return@lazy map +} + +public actual val MyRes.allFontResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainFont0Resources(map) + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt new file mode 100644 index 00000000000..48465d6f14e --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt @@ -0,0 +1,25 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceContentHash +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.StringResource + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +@delegate:ResourceContentHash(50_967_853) +internal val Res.string.android_str: StringResource by lazy { + StringResource("string:android_str", "android_str", setOf( + ResourceItem(setOf(), "${MD}values/strings.androidMain.cvr", 10, 39), + )) + } + +@InternalResourceApi +internal fun _collectAndroidMainString0Resources(map: MutableMap) { + map.put("android_str", Res.string.android_str) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/androidMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/androidMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt new file mode 100644 index 00000000000..5e0f6217bd1 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/androidMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt @@ -0,0 +1,42 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal actual val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + return@lazy map +} + +internal actual val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectAndroidMainString0Resources(map) + _collectCommonMainString0Resources(map) + return@lazy map +} + +internal actual val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainPlurals0Resources(map) + return@lazy map +} + +internal actual val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainFont0Resources(map) + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt new file mode 100644 index 00000000000..4a25b00f382 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt @@ -0,0 +1,80 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.RegionQualifier +import org.jetbrains.compose.resources.ResourceContentHash +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.ThemeQualifier + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +@delegate:ResourceContentHash(1_620_038_668) +internal val Res.drawable._3_strange_name: DrawableResource by lazy { + DrawableResource("drawable:_3_strange_name", setOf( + ResourceItem(setOf(), "${MD}drawable/3-strange-name.xml", -1, -1), + )) + } + +@delegate:ResourceContentHash(1_620_038_668) +internal val Res.drawable.camelCaseName: DrawableResource by lazy { + DrawableResource("drawable:camelCaseName", setOf( + ResourceItem(setOf(), "${MD}drawable/camelCaseName.xml", -1, -1), + )) + } + +@delegate:ResourceContentHash(1_620_038_668) +internal val Res.drawable.`is`: DrawableResource by lazy { + DrawableResource("drawable:is", setOf( + ResourceItem(setOf(), "${MD}drawable/is.xml", -1, -1), + )) + } + +@delegate:ResourceContentHash(-1_048_824_350) +internal val Res.drawable.raster: DrawableResource by lazy { + DrawableResource("drawable:raster", setOf( + ResourceItem(setOf(), "${MD}drawable/raster.webp", -1, -1), + )) + } + +@delegate:ResourceContentHash(2_043_149_192) +internal val Res.drawable.svg: DrawableResource by lazy { + DrawableResource("drawable:svg", setOf( + ResourceItem(setOf(), "${MD}drawable/svg.svg", -1, -1), + )) + } + +@delegate:ResourceContentHash(-1_131_835_124) +internal val Res.drawable.vector: DrawableResource by lazy { + DrawableResource("drawable:vector", setOf( + ResourceItem(setOf(LanguageQualifier("ast"), ), "${MD}drawable-ast/vector.xml", -1, -1), + ResourceItem(setOf(LanguageQualifier("au"), RegionQualifier("US"), ), "${MD}drawable-au-rUS/vector.xml", -1, -1), + ResourceItem(setOf(ThemeQualifier.DARK, LanguageQualifier("ge"), ), "${MD}drawable-dark-ge/vector.xml", -1, -1), + ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}drawable-en/vector.xml", -1, -1), + ResourceItem(setOf(), "${MD}drawable/vector.xml", -1, -1), + )) + } + +@delegate:ResourceContentHash(1_620_038_668) +internal val Res.drawable.vector_2: DrawableResource by lazy { + DrawableResource("drawable:vector_2", setOf( + ResourceItem(setOf(), "${MD}drawable/vector_2.xml", -1, -1), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainDrawable0Resources(map: MutableMap) { + map.put("_3_strange_name", Res.drawable._3_strange_name) + map.put("camelCaseName", Res.drawable.camelCaseName) + map.put("is", Res.drawable.`is`) + map.put("raster", Res.drawable.raster) + map.put("svg", Res.drawable.svg) + map.put("vector", Res.drawable.vector) + map.put("vector_2", Res.drawable.vector_2) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt new file mode 100644 index 00000000000..5a45993e9f6 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt @@ -0,0 +1,27 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.ResourceContentHash +import org.jetbrains.compose.resources.ResourceItem + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +@delegate:ResourceContentHash(1_893_715_104) +internal val Res.font.emptyFont: FontResource by lazy { + FontResource("font:emptyFont", setOf( + ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}font-en/emptyFont.otf", -1, -1), + ResourceItem(setOf(), "${MD}font/emptyFont.otf", -1, -1), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainFont0Resources(map: MutableMap) { + map.put("emptyFont", Res.font.emptyFont) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt new file mode 100644 index 00000000000..34f1ce67b4f --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt @@ -0,0 +1,25 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.ResourceContentHash +import org.jetbrains.compose.resources.ResourceItem + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +@delegate:ResourceContentHash(-199_361_196) +internal val Res.plurals.numberOfSongsAvailable: PluralStringResource by lazy { + PluralStringResource("plurals:numberOfSongsAvailable", "numberOfSongsAvailable", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 10, 124), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainPlurals0Resources(map: MutableMap) { + map.put("numberOfSongsAvailable", Res.plurals.numberOfSongsAvailable) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt new file mode 100644 index 00000000000..56a51332460 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt @@ -0,0 +1,81 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceContentHash +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.StringResource + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +@delegate:ResourceContentHash(405_464_824) +internal val Res.string.PascalCase: StringResource by lazy { + StringResource("string:PascalCase", "PascalCase", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 172, 34), + )) + } + +@delegate:ResourceContentHash(-1_118_290_776) +internal val Res.string._1_kebab_case: StringResource by lazy { + StringResource("string:_1_kebab_case", "_1_kebab_case", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 135, 36), + )) + } + +@delegate:ResourceContentHash(64_828_505) +internal val Res.string.app_name: StringResource by lazy { + StringResource("string:app_name", "app_name", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 207, 44), + )) + } + +@delegate:ResourceContentHash(211_426_861) +internal val Res.string.camelCase: StringResource by lazy { + StringResource("string:camelCase", "camelCase", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 252, 29), + )) + } + +@delegate:ResourceContentHash(466_457_346) +internal val Res.string.hello: StringResource by lazy { + StringResource("string:hello", "hello", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 282, 37), + )) + } + +@delegate:ResourceContentHash(-1_288_591_563) +internal val Res.string.`info_using_release_$x`: StringResource by lazy { + StringResource("string:info_using_release_${'$'}x", "info_using_release_${'$'}x", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 320, 57), + )) + } + +@delegate:ResourceContentHash(-624_025_575) +internal val Res.string.multi_line: StringResource by lazy { + StringResource("string:multi_line", "multi_line", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 378, 178), + )) + } + +@delegate:ResourceContentHash(-1_332_636_786) +internal val Res.string.str_template: StringResource by lazy { + StringResource("string:str_template", "str_template", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 557, 76), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainString0Resources(map: MutableMap) { + map.put("PascalCase", Res.string.PascalCase) + map.put("_1_kebab_case", Res.string._1_kebab_case) + map.put("app_name", Res.string.app_name) + map.put("camelCase", Res.string.camelCase) + map.put("hello", Res.string.hello) + map.put("info_using_release_${'$'}x", Res.string.`info_using_release_$x`) + map.put("multi_line", Res.string.multi_line) + map.put("str_template", Res.string.str_template) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceCollectors/app/group/resources_test/generated/resources/ExpectResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceCollectors/app/group/resources_test/generated/resources/ExpectResourceCollectors.kt new file mode 100644 index 00000000000..43a88baf721 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonMainResourceCollectors/app/group/resources_test/generated/resources/ExpectResourceCollectors.kt @@ -0,0 +1,19 @@ +package app.group.resources_test.generated.resources + +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal expect val Res.allDrawableResources: Map + +internal expect val Res.allStringResources: Map + +internal expect val Res.allStringArrayResources: Map + +internal expect val Res.allPluralStringResources: Map + +internal expect val Res.allFontResources: Map diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonResClass/app/group/resources_test/generated/resources/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonResClass/app/group/resources_test/generated/resources/Res.kt new file mode 100644 index 00000000000..64511b9bc95 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/commonResClass/app/group/resources_test/generated/resources/Res.kt @@ -0,0 +1,47 @@ +@file:OptIn(InternalResourceApi::class) +@file:Suppress( + "RedundantVisibilityModifier", + "REDUNDANT_VISIBILITY_MODIFIER", +) + +package app.group.resources_test.generated.resources + +import kotlin.ByteArray +import kotlin.OptIn +import kotlin.String +import kotlin.Suppress +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.getResourceUri +import org.jetbrains.compose.resources.readResourceBytes + +internal object Res { + /** + * Reads the content of the resource file at the specified path and returns it as a byte array. + * + * Example: `val bytes = Res.readBytes("files/key.bin")` + * + * @param path The path of the file to read in the compose resource's directory. + * @return The content of the file as a byte array. + */ + public suspend fun readBytes(path: String): ByteArray = readResourceBytes("composeResources/app.group.resources_test.generated.resources/" + path) + + /** + * Returns the URI string of the resource file at the specified path. + * + * Example: `val uri = Res.getUri("files/key.bin")` + * + * @param path The path of the file in the compose resource's directory. + * @return The URI string of the file. + */ + public fun getUri(path: String): String = getResourceUri("composeResources/app.group.resources_test.generated.resources/" + path) + + public object drawable + + public object string + + public object array + + public object plurals + + public object font +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt new file mode 100644 index 00000000000..b0a858e89bc --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt @@ -0,0 +1,25 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceContentHash +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.StringResource + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +@delegate:ResourceContentHash(-320_376_586) +internal val Res.string.desktop_str: StringResource by lazy { + StringResource("string:desktop_str", "desktop_str", setOf( + ResourceItem(setOf(), "${MD}values/desktop_strings.desktopMain.cvr", 10, 39), + )) + } + +@InternalResourceApi +internal fun _collectDesktopMainString0Resources(map: MutableMap) { + map.put("desktop_str", Res.string.desktop_str) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt new file mode 100644 index 00000000000..a0fcad20f96 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected-with-hash/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt @@ -0,0 +1,42 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal actual val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + return@lazy map +} + +internal actual val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainString0Resources(map) + _collectDesktopMainString0Resources(map) + return@lazy map +} + +internal actual val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainPlurals0Resources(map) + return@lazy map +} + +internal actual val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainFont0Resources(map) + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt index 98e03554540..7373f904b65 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceAccessors/app/group/resources_test/generated/resources/String0.androidMain.kt @@ -1,22 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package app.group.resources_test.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem import org.jetbrains.compose.resources.StringResource -private object AndroidMainString0 { - public val android_str: StringResource by - lazy { init_android_str() } -} +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" -internal val Res.string.android_str: StringResource - get() = AndroidMainString0.android_str +internal val Res.string.android_str: StringResource by lazy { + StringResource("string:android_str", "android_str", setOf( + ResourceItem(setOf(), "${MD}values/strings.androidMain.cvr", 10, 39), + )) + } -private fun init_android_str(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:android_str", "android_str", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.androidMain.cvr", 10, - 39), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectAndroidMainString0Resources(map: MutableMap) { + map.put("android_str", Res.string.android_str) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt new file mode 100644 index 00000000000..5e0f6217bd1 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/androidMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt @@ -0,0 +1,42 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal actual val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + return@lazy map +} + +internal actual val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectAndroidMainString0Resources(map) + _collectCommonMainString0Resources(map) + return@lazy map +} + +internal actual val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainPlurals0Resources(map) + return@lazy map +} + +internal actual val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainFont0Resources(map) + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt index 5e7a25ac0ed..0b2514eeae3 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Drawable0.commonMain.kt @@ -1,75 +1,72 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package app.group.resources_test.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap import org.jetbrains.compose.resources.DrawableResource - -private object CommonMainDrawable0 { - public val _3_strange_name: DrawableResource by - lazy { init__3_strange_name() } - - public val camelCaseName: DrawableResource by - lazy { init_camelCaseName() } - - public val vector: DrawableResource by - lazy { init_vector() } - - public val vector_2: DrawableResource by - lazy { init_vector_2() } +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.RegionQualifier +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.ThemeQualifier + +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +internal val Res.drawable._3_strange_name: DrawableResource by lazy { + DrawableResource("drawable:_3_strange_name", setOf( + ResourceItem(setOf(), "${MD}drawable/3-strange-name.xml", -1, -1), + )) + } + +internal val Res.drawable.camelCaseName: DrawableResource by lazy { + DrawableResource("drawable:camelCaseName", setOf( + ResourceItem(setOf(), "${MD}drawable/camelCaseName.xml", -1, -1), + )) + } + +internal val Res.drawable.`is`: DrawableResource by lazy { + DrawableResource("drawable:is", setOf( + ResourceItem(setOf(), "${MD}drawable/is.xml", -1, -1), + )) + } + +internal val Res.drawable.raster: DrawableResource by lazy { + DrawableResource("drawable:raster", setOf( + ResourceItem(setOf(), "${MD}drawable/raster.webp", -1, -1), + )) + } + +internal val Res.drawable.svg: DrawableResource by lazy { + DrawableResource("drawable:svg", setOf( + ResourceItem(setOf(), "${MD}drawable/svg.svg", -1, -1), + )) + } + +internal val Res.drawable.vector: DrawableResource by lazy { + DrawableResource("drawable:vector", setOf( + ResourceItem(setOf(LanguageQualifier("ast"), ), "${MD}drawable-ast/vector.xml", -1, -1), + ResourceItem(setOf(LanguageQualifier("au"), RegionQualifier("US"), ), "${MD}drawable-au-rUS/vector.xml", -1, -1), + ResourceItem(setOf(ThemeQualifier.DARK, LanguageQualifier("ge"), ), "${MD}drawable-dark-ge/vector.xml", -1, -1), + ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}drawable-en/vector.xml", -1, -1), + ResourceItem(setOf(), "${MD}drawable/vector.xml", -1, -1), + )) + } + +internal val Res.drawable.vector_2: DrawableResource by lazy { + DrawableResource("drawable:vector_2", setOf( + ResourceItem(setOf(), "${MD}drawable/vector_2.xml", -1, -1), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainDrawable0Resources(map: MutableMap) { + map.put("_3_strange_name", Res.drawable._3_strange_name) + map.put("camelCaseName", Res.drawable.camelCaseName) + map.put("is", Res.drawable.`is`) + map.put("raster", Res.drawable.raster) + map.put("svg", Res.drawable.svg) + map.put("vector", Res.drawable.vector) + map.put("vector_2", Res.drawable.vector_2) } - -internal val Res.drawable._3_strange_name: DrawableResource - get() = CommonMainDrawable0._3_strange_name - -private fun init__3_strange_name(): DrawableResource = - org.jetbrains.compose.resources.DrawableResource( - "drawable:_3_strange_name", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/3-strange-name.xml", -1, -1), - ) - ) - -internal val Res.drawable.camelCaseName: DrawableResource - get() = CommonMainDrawable0.camelCaseName - -private fun init_camelCaseName(): DrawableResource = - org.jetbrains.compose.resources.DrawableResource( - "drawable:camelCaseName", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/camelCaseName.xml", -1, -1), - ) - ) - -internal val Res.drawable.vector: DrawableResource - get() = CommonMainDrawable0.vector - -private fun init_vector(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( - "drawable:vector", - setOf( - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("ast"), - ), "drawable-ast/vector.xml", -1, -1), - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("au"), - org.jetbrains.compose.resources.RegionQualifier("US"), ), "drawable-au-rUS/vector.xml", -1, -1), - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.ThemeQualifier.DARK, - org.jetbrains.compose.resources.LanguageQualifier("ge"), ), - "drawable-dark-ge/vector.xml", -1, -1), - - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "drawable-en/vector.xml", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector.xml", -1, -1), - ) -) - -internal val Res.drawable.vector_2: DrawableResource - get() = CommonMainDrawable0.vector_2 - -private fun init_vector_2(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( - "drawable:vector_2", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector_2.xml", -1, -1), - ) -) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt index 89ff6eb7b8b..5cdaef9d8c4 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Font0.commonMain.kt @@ -1,24 +1,25 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package app.group.resources_test.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.ResourceItem -private object CommonMainFont0 { - public val emptyFont: FontResource by - lazy { init_emptyFont() } -} - -internal val Res.font.emptyFont: FontResource - get() = CommonMainFont0.emptyFont +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" -private fun init_emptyFont(): FontResource = org.jetbrains.compose.resources.FontResource( - "font:emptyFont", - setOf( +internal val Res.font.emptyFont: FontResource by lazy { + FontResource("font:emptyFont", setOf( + ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}font-en/emptyFont.otf", -1, -1), + ResourceItem(setOf(), "${MD}font/emptyFont.otf", -1, -1), + )) + } - org.jetbrains.compose.resources.ResourceItem(setOf(org.jetbrains.compose.resources.LanguageQualifier("en"), - ), "font-en/emptyFont.otf", -1, -1), - org.jetbrains.compose.resources.ResourceItem(setOf(), "font/emptyFont.otf", -1, -1), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectCommonMainFont0Resources(map: MutableMap) { + map.put("emptyFont", Res.font.emptyFont) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt index 9674a83744d..3d1bd8a796c 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/Plurals0.commonMain.kt @@ -1,23 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package app.group.resources_test.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.ResourceItem -private object CommonMainPlurals0 { - public val numberOfSongsAvailable: PluralStringResource by - lazy { init_numberOfSongsAvailable() } -} +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" -internal val Res.plurals.numberOfSongsAvailable: PluralStringResource - get() = CommonMainPlurals0.numberOfSongsAvailable +internal val Res.plurals.numberOfSongsAvailable: PluralStringResource by lazy { + PluralStringResource("plurals:numberOfSongsAvailable", "numberOfSongsAvailable", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 10, 124), + )) + } -private fun init_numberOfSongsAvailable(): PluralStringResource = - org.jetbrains.compose.resources.PluralStringResource( - "plurals:numberOfSongsAvailable", "numberOfSongsAvailable", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 10, - 124), - ) - ) \ No newline at end of file +@InternalResourceApi +internal fun _collectCommonMainPlurals0Resources(map: MutableMap) { + map.put("numberOfSongsAvailable", Res.plurals.numberOfSongsAvailable) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt index c57944b0039..522aa1e99f2 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceAccessors/app/group/resources_test/generated/resources/String0.commonMain.kt @@ -1,106 +1,72 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package app.group.resources_test.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem import org.jetbrains.compose.resources.StringResource -private object CommonMainString0 { - public val PascalCase: StringResource by - lazy { init_PascalCase() } - - public val _1_kebab_case: StringResource by - lazy { init__1_kebab_case() } - - public val app_name: StringResource by - lazy { init_app_name() } - - public val camelCase: StringResource by - lazy { init_camelCase() } - - public val hello: StringResource by - lazy { init_hello() } - - public val multi_line: StringResource by - lazy { init_multi_line() } - - public val str_template: StringResource by - lazy { init_str_template() } +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" + +internal val Res.string.PascalCase: StringResource by lazy { + StringResource("string:PascalCase", "PascalCase", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 172, 34), + )) + } + +internal val Res.string._1_kebab_case: StringResource by lazy { + StringResource("string:_1_kebab_case", "_1_kebab_case", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 135, 36), + )) + } + +internal val Res.string.app_name: StringResource by lazy { + StringResource("string:app_name", "app_name", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 207, 44), + )) + } + +internal val Res.string.camelCase: StringResource by lazy { + StringResource("string:camelCase", "camelCase", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 252, 29), + )) + } + +internal val Res.string.hello: StringResource by lazy { + StringResource("string:hello", "hello", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 282, 37), + )) + } + +internal val Res.string.`info_using_release_$x`: StringResource by lazy { + StringResource("string:info_using_release_${'$'}x", "info_using_release_${'$'}x", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 320, 57), + )) + } + +internal val Res.string.multi_line: StringResource by lazy { + StringResource("string:multi_line", "multi_line", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 378, 178), + )) + } + +internal val Res.string.str_template: StringResource by lazy { + StringResource("string:str_template", "str_template", setOf( + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 557, 76), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainString0Resources(map: MutableMap) { + map.put("PascalCase", Res.string.PascalCase) + map.put("_1_kebab_case", Res.string._1_kebab_case) + map.put("app_name", Res.string.app_name) + map.put("camelCase", Res.string.camelCase) + map.put("hello", Res.string.hello) + map.put("info_using_release_${'$'}x", Res.string.`info_using_release_$x`) + map.put("multi_line", Res.string.multi_line) + map.put("str_template", Res.string.str_template) } - -internal val Res.string.PascalCase: StringResource - get() = CommonMainString0.PascalCase - -private fun init_PascalCase(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:PascalCase", "PascalCase", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 172, - 34), - ) -) - -internal val Res.string._1_kebab_case: StringResource - get() = CommonMainString0._1_kebab_case - -private fun init__1_kebab_case(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:_1_kebab_case", "_1_kebab_case", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 135, - 36), - ) -) - -internal val Res.string.app_name: StringResource - get() = CommonMainString0.app_name - -private fun init_app_name(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:app_name", "app_name", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 207, - 44), - ) -) - -internal val Res.string.camelCase: StringResource - get() = CommonMainString0.camelCase - -private fun init_camelCase(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:camelCase", "camelCase", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 252, - 29), - ) -) - -internal val Res.string.hello: StringResource - get() = CommonMainString0.hello - -private fun init_hello(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:hello", "hello", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 282, - 37), - ) -) - -internal val Res.string.multi_line: StringResource - get() = CommonMainString0.multi_line - -private fun init_multi_line(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:multi_line", "multi_line", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 320, - 178), - ) -) - -internal val Res.string.str_template: StringResource - get() = CommonMainString0.str_template - -private fun init_str_template(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:str_template", "str_template", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "values/strings.commonMain.cvr", 499, - 76), - ) -) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceCollectors/app/group/resources_test/generated/resources/ExpectResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceCollectors/app/group/resources_test/generated/resources/ExpectResourceCollectors.kt new file mode 100644 index 00000000000..43a88baf721 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonMainResourceCollectors/app/group/resources_test/generated/resources/ExpectResourceCollectors.kt @@ -0,0 +1,19 @@ +package app.group.resources_test.generated.resources + +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal expect val Res.allDrawableResources: Map + +internal expect val Res.allStringResources: Map + +internal expect val Res.allStringArrayResources: Map + +internal expect val Res.allPluralStringResources: Map + +internal expect val Res.allFontResources: Map diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt index 9b19cafa4cd..64511b9bc95 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/commonResClass/app/group/resources_test/generated/resources/Res.kt @@ -1,6 +1,7 @@ -@file:OptIn( - org.jetbrains.compose.resources.InternalResourceApi::class, - org.jetbrains.compose.resources.ExperimentalResourceApi::class, +@file:OptIn(InternalResourceApi::class) +@file:Suppress( + "RedundantVisibilityModifier", + "REDUNDANT_VISIBILITY_MODIFIER", ) package app.group.resources_test.generated.resources @@ -8,7 +9,8 @@ package app.group.resources_test.generated.resources import kotlin.ByteArray import kotlin.OptIn import kotlin.String -import org.jetbrains.compose.resources.ExperimentalResourceApi +import kotlin.Suppress +import org.jetbrains.compose.resources.InternalResourceApi import org.jetbrains.compose.resources.getResourceUri import org.jetbrains.compose.resources.readResourceBytes @@ -21,8 +23,7 @@ internal object Res { * @param path The path of the file to read in the compose resource's directory. * @return The content of the file as a byte array. */ - @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) + public suspend fun readBytes(path: String): ByteArray = readResourceBytes("composeResources/app.group.resources_test.generated.resources/" + path) /** * Returns the URI string of the resource file at the specified path. @@ -32,8 +33,7 @@ internal object Res { * @param path The path of the file in the compose resource's directory. * @return The URI string of the file. */ - @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) + public fun getUri(path: String): String = getResourceUri("composeResources/app.group.resources_test.generated.resources/" + path) public object drawable @@ -44,4 +44,4 @@ internal object Res { public object plurals public object font -} \ No newline at end of file +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt index badfa7b5b20..5d6f8e53f32 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceAccessors/app/group/resources_test/generated/resources/String0.desktopMain.kt @@ -1,22 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package app.group.resources_test.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem import org.jetbrains.compose.resources.StringResource -private object DesktopMainString0 { - public val desktop_str: StringResource by - lazy { init_desktop_str() } -} +private const val MD: String = "composeResources/app.group.resources_test.generated.resources/" -internal val Res.string.desktop_str: StringResource - get() = DesktopMainString0.desktop_str +internal val Res.string.desktop_str: StringResource by lazy { + StringResource("string:desktop_str", "desktop_str", setOf( + ResourceItem(setOf(), "${MD}values/desktop_strings.desktopMain.cvr", 10, 39), + )) + } -private fun init_desktop_str(): StringResource = org.jetbrains.compose.resources.StringResource( - "string:desktop_str", "desktop_str", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), - "values/desktop_strings.desktopMain.cvr", 10, 39), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectDesktopMainString0Resources(map: MutableMap) { + map.put("desktop_str", Res.string.desktop_str) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt new file mode 100644 index 00000000000..a0fcad20f96 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/expected/desktopMainResourceCollectors/app/group/resources_test/generated/resources/ActualResourceCollectors.kt @@ -0,0 +1,42 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package app.group.resources_test.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal actual val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + return@lazy map +} + +internal actual val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainString0Resources(map) + _collectDesktopMainString0Resources(map) + return@lazy map +} + +internal actual val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainPlurals0Resources(map) + return@lazy map +} + +internal actual val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainFont0Resources(map) + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/gradle.properties index f4d71096639..be233bd3534 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/gradle.properties +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx8096M android.useAndroidX=true -org.jetbrains.compose.experimental.jscanvas.enabled=true \ No newline at end of file +org.jetbrains.compose.experimental.jscanvas.enabled=true +org.jetbrains.compose.resources.content.hash.generation.disable=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts index 19b673273f1..b2556043422 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/settings.gradle.kts @@ -9,15 +9,16 @@ pluginManagement { plugins { id("com.android.application").version("AGP_VERSION_PLACEHOLDER") id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } } dependencyResolutionManagement { repositories { - mavenLocal() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") mavenCentral() gradlePluginPortal() google() + mavenLocal() } } \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/androidMain/composeResources/values/strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/androidMain/composeResources/values/strings.xml deleted file mode 100644 index 4855fd3e033..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/androidMain/composeResources/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - Android string - \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/is.xml similarity index 100% rename from gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml rename to gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/is.xml diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/raster.webp b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/raster.webp new file mode 100644 index 00000000000..0da983e2ce5 Binary files /dev/null and b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/raster.webp differ diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/svg.svg b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/svg.svg new file mode 100644 index 00000000000..ba23d0fe090 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/drawable/svg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/values/strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/values/strings.xml index 2afea688cf0..06e9e906547 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/values/strings.xml +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/composeResources/values/strings.xml @@ -8,6 +8,7 @@ PascalCase 1-kebab-case camelCase + info_using_release_$x %d zero diff --git a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/kotlin/App.kt index 3e82a2c195b..d76028929f7 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/kotlin/App.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/commonResources/src/commonMain/kotlin/App.kt @@ -11,7 +11,6 @@ import app.group.resources_test.generated.resources.emptyFont import app.group.resources_test.generated.resources.vector import org.jetbrains.compose.resources.* -@OptIn(ExperimentalResourceApi::class) @Composable fun App() { Column { diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts index 699c9aa0f2b..f321450f7ca 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("multiplatform") + kotlin("plugin.compose") id("org.jetbrains.compose") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt deleted file mode 100644 index b6fbefa22ea..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/Res.kt +++ /dev/null @@ -1,47 +0,0 @@ -@file:OptIn( - org.jetbrains.compose.resources.InternalResourceApi::class, - org.jetbrains.compose.resources.ExperimentalResourceApi::class, -) - -package app.group.empty_res.generated.resources - -import kotlin.ByteArray -import kotlin.OptIn -import kotlin.String -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.getResourceUri -import org.jetbrains.compose.resources.readResourceBytes - -internal object Res { - /** - * Reads the content of the resource file at the specified path and returns it as a byte array. - * - * Example: `val bytes = Res.readBytes("files/key.bin")` - * - * @param path The path of the file to read in the compose resource's directory. - * @return The content of the file as a byte array. - */ - @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) - - /** - * Returns the URI string of the resource file at the specified path. - * - * Example: `val uri = Res.getUri("files/key.bin")` - * - * @param path The path of the file in the compose resource's directory. - * @return The URI string of the file. - */ - @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) - - public object drawable - - public object string - - public object array - - public object plurals - - public object font -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/commonMainResourceCollectors/app/group/empty_res/generated/resources/ExpectResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/commonMainResourceCollectors/app/group/empty_res/generated/resources/ExpectResourceCollectors.kt new file mode 100644 index 00000000000..03544d039c6 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/commonMainResourceCollectors/app/group/empty_res/generated/resources/ExpectResourceCollectors.kt @@ -0,0 +1,19 @@ +package app.group.empty_res.generated.resources + +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal expect val Res.allDrawableResources: Map + +internal expect val Res.allStringResources: Map + +internal expect val Res.allStringArrayResources: Map + +internal expect val Res.allPluralStringResources: Map + +internal expect val Res.allFontResources: Map diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/commonResClass/app/group/empty_res/generated/resources/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/commonResClass/app/group/empty_res/generated/resources/Res.kt new file mode 100644 index 00000000000..13c452dc05d --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/commonResClass/app/group/empty_res/generated/resources/Res.kt @@ -0,0 +1,47 @@ +@file:OptIn(InternalResourceApi::class) +@file:Suppress( + "RedundantVisibilityModifier", + "REDUNDANT_VISIBILITY_MODIFIER", +) + +package app.group.empty_res.generated.resources + +import kotlin.ByteArray +import kotlin.OptIn +import kotlin.String +import kotlin.Suppress +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.getResourceUri +import org.jetbrains.compose.resources.readResourceBytes + +internal object Res { + /** + * Reads the content of the resource file at the specified path and returns it as a byte array. + * + * Example: `val bytes = Res.readBytes("files/key.bin")` + * + * @param path The path of the file to read in the compose resource's directory. + * @return The content of the file as a byte array. + */ + public suspend fun readBytes(path: String): ByteArray = readResourceBytes("composeResources/app.group.empty_res.generated.resources/" + path) + + /** + * Returns the URI string of the resource file at the specified path. + * + * Example: `val uri = Res.getUri("files/key.bin")` + * + * @param path The path of the file in the compose resource's directory. + * @return The URI string of the file. + */ + public fun getUri(path: String): String = getResourceUri("composeResources/app.group.empty_res.generated.resources/" + path) + + public object drawable + + public object string + + public object array + + public object plurals + + public object font +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/desktopMainResourceCollectors/app/group/empty_res/generated/resources/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/desktopMainResourceCollectors/app/group/empty_res/generated/resources/ActualResourceCollectors.kt new file mode 100644 index 00000000000..f8d79bfd19c --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/expected/desktopMainResourceCollectors/app/group/empty_res/generated/resources/ActualResourceCollectors.kt @@ -0,0 +1,37 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package app.group.empty_res.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal actual val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts index 38898d0d94b..866fc269705 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/emptyResources/settings.gradle.kts @@ -8,15 +8,16 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } } dependencyResolutionManagement { repositories { - mavenLocal() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") mavenCentral() gradlePluginPortal() google() + mavenLocal() } } \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/build.gradle.kts new file mode 100644 index 00000000000..b58cde59037 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/build.gradle.kts @@ -0,0 +1,62 @@ +plugins { + kotlin("multiplatform") + kotlin("plugin.compose") + id("org.jetbrains.compose") +} + +group = "app.group" + +kotlin { + jvm("desktop") + + sourceSets { + commonMain { + dependencies { + implementation(compose.runtime) + implementation(compose.material) + implementation(compose.components.resources) + } + } + } +} + +val generateResourceFiles = tasks.register("generateResourceFiles") { + val resourcesFolder = project.file("src/commonMain/composeResources") + val count = 25_000 + val locales = listOf( + "", "af", "am", "ar", "as", "az", "be", "bg", "bn", "bs", "ca", "cs", "da", "de", + "el", "en-rGB", "en-rIN", "es", "es-rUS", "et", "eu", "fa", "fi", "fr", "fr-rCA", + "gl", "gu", "hi", "hr", "hu", "hy", "in", "is", "it", "iw", "ja", "ka", "kk", "km", + "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "nb", "ne", + "nl", "or", "pa", "pl", "pt", "pt-rBR", "pt-rPT", "ro", "ru", "si", "sk", "sl", "sq", + "sr", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "uz", "vi", "zh-rCN", "zh-rHK", "zh-rTW" + ) + + doLast { + val txt = buildString { + appendLine("") + repeat(count) { + appendLine(" str_${it}") + } + appendLine("") + } + + // Generate strings.xml for all locales + locales.forEach { locale -> + val dirName = if (locale.isEmpty()) "values" else "values-$locale" + File(resourcesFolder, "$dirName/strings.xml").apply { + parentFile.mkdirs() + writeText(txt) + } + } + } + + doLast { + repeat(count) { + File(resourcesFolder, "drawable/icon_$it.xml").apply { + parentFile.mkdirs() + createNewFile() //empty file + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/ActualResourceCollectors.kt new file mode 100644 index 00000000000..983efe83c4b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/ActualResourceCollectors.kt @@ -0,0 +1,537 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package app.group.huge.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal actual val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainDrawable0Resources(map) + _collectCommonMainDrawable100Resources(map) + _collectCommonMainDrawable101Resources(map) + _collectCommonMainDrawable102Resources(map) + _collectCommonMainDrawable103Resources(map) + _collectCommonMainDrawable104Resources(map) + _collectCommonMainDrawable105Resources(map) + _collectCommonMainDrawable106Resources(map) + _collectCommonMainDrawable107Resources(map) + _collectCommonMainDrawable108Resources(map) + _collectCommonMainDrawable109Resources(map) + _collectCommonMainDrawable10Resources(map) + _collectCommonMainDrawable110Resources(map) + _collectCommonMainDrawable111Resources(map) + _collectCommonMainDrawable112Resources(map) + _collectCommonMainDrawable113Resources(map) + _collectCommonMainDrawable114Resources(map) + _collectCommonMainDrawable115Resources(map) + _collectCommonMainDrawable116Resources(map) + _collectCommonMainDrawable117Resources(map) + _collectCommonMainDrawable118Resources(map) + _collectCommonMainDrawable119Resources(map) + _collectCommonMainDrawable11Resources(map) + _collectCommonMainDrawable120Resources(map) + _collectCommonMainDrawable121Resources(map) + _collectCommonMainDrawable122Resources(map) + _collectCommonMainDrawable123Resources(map) + _collectCommonMainDrawable124Resources(map) + _collectCommonMainDrawable125Resources(map) + _collectCommonMainDrawable126Resources(map) + _collectCommonMainDrawable127Resources(map) + _collectCommonMainDrawable128Resources(map) + _collectCommonMainDrawable129Resources(map) + _collectCommonMainDrawable12Resources(map) + _collectCommonMainDrawable130Resources(map) + _collectCommonMainDrawable131Resources(map) + _collectCommonMainDrawable132Resources(map) + _collectCommonMainDrawable133Resources(map) + _collectCommonMainDrawable134Resources(map) + _collectCommonMainDrawable135Resources(map) + _collectCommonMainDrawable136Resources(map) + _collectCommonMainDrawable137Resources(map) + _collectCommonMainDrawable138Resources(map) + _collectCommonMainDrawable139Resources(map) + _collectCommonMainDrawable13Resources(map) + _collectCommonMainDrawable140Resources(map) + _collectCommonMainDrawable141Resources(map) + _collectCommonMainDrawable142Resources(map) + _collectCommonMainDrawable143Resources(map) + _collectCommonMainDrawable144Resources(map) + _collectCommonMainDrawable145Resources(map) + _collectCommonMainDrawable146Resources(map) + _collectCommonMainDrawable147Resources(map) + _collectCommonMainDrawable148Resources(map) + _collectCommonMainDrawable149Resources(map) + _collectCommonMainDrawable14Resources(map) + _collectCommonMainDrawable150Resources(map) + _collectCommonMainDrawable151Resources(map) + _collectCommonMainDrawable152Resources(map) + _collectCommonMainDrawable153Resources(map) + _collectCommonMainDrawable154Resources(map) + _collectCommonMainDrawable155Resources(map) + _collectCommonMainDrawable156Resources(map) + _collectCommonMainDrawable157Resources(map) + _collectCommonMainDrawable158Resources(map) + _collectCommonMainDrawable159Resources(map) + _collectCommonMainDrawable15Resources(map) + _collectCommonMainDrawable160Resources(map) + _collectCommonMainDrawable161Resources(map) + _collectCommonMainDrawable162Resources(map) + _collectCommonMainDrawable163Resources(map) + _collectCommonMainDrawable164Resources(map) + _collectCommonMainDrawable165Resources(map) + _collectCommonMainDrawable166Resources(map) + _collectCommonMainDrawable167Resources(map) + _collectCommonMainDrawable168Resources(map) + _collectCommonMainDrawable169Resources(map) + _collectCommonMainDrawable16Resources(map) + _collectCommonMainDrawable170Resources(map) + _collectCommonMainDrawable171Resources(map) + _collectCommonMainDrawable172Resources(map) + _collectCommonMainDrawable173Resources(map) + _collectCommonMainDrawable174Resources(map) + _collectCommonMainDrawable175Resources(map) + _collectCommonMainDrawable176Resources(map) + _collectCommonMainDrawable177Resources(map) + _collectCommonMainDrawable178Resources(map) + _collectCommonMainDrawable179Resources(map) + _collectCommonMainDrawable17Resources(map) + _collectCommonMainDrawable180Resources(map) + _collectCommonMainDrawable181Resources(map) + _collectCommonMainDrawable182Resources(map) + _collectCommonMainDrawable183Resources(map) + _collectCommonMainDrawable184Resources(map) + _collectCommonMainDrawable185Resources(map) + _collectCommonMainDrawable186Resources(map) + _collectCommonMainDrawable187Resources(map) + _collectCommonMainDrawable188Resources(map) + _collectCommonMainDrawable189Resources(map) + _collectCommonMainDrawable18Resources(map) + _collectCommonMainDrawable190Resources(map) + _collectCommonMainDrawable191Resources(map) + _collectCommonMainDrawable192Resources(map) + _collectCommonMainDrawable193Resources(map) + _collectCommonMainDrawable194Resources(map) + _collectCommonMainDrawable195Resources(map) + _collectCommonMainDrawable196Resources(map) + _collectCommonMainDrawable197Resources(map) + _collectCommonMainDrawable198Resources(map) + _collectCommonMainDrawable199Resources(map) + _collectCommonMainDrawable19Resources(map) + _collectCommonMainDrawable1Resources(map) + _collectCommonMainDrawable200Resources(map) + _collectCommonMainDrawable201Resources(map) + _collectCommonMainDrawable202Resources(map) + _collectCommonMainDrawable203Resources(map) + _collectCommonMainDrawable204Resources(map) + _collectCommonMainDrawable205Resources(map) + _collectCommonMainDrawable206Resources(map) + _collectCommonMainDrawable207Resources(map) + _collectCommonMainDrawable208Resources(map) + _collectCommonMainDrawable209Resources(map) + _collectCommonMainDrawable20Resources(map) + _collectCommonMainDrawable210Resources(map) + _collectCommonMainDrawable211Resources(map) + _collectCommonMainDrawable212Resources(map) + _collectCommonMainDrawable213Resources(map) + _collectCommonMainDrawable214Resources(map) + _collectCommonMainDrawable215Resources(map) + _collectCommonMainDrawable216Resources(map) + _collectCommonMainDrawable217Resources(map) + _collectCommonMainDrawable218Resources(map) + _collectCommonMainDrawable219Resources(map) + _collectCommonMainDrawable21Resources(map) + _collectCommonMainDrawable220Resources(map) + _collectCommonMainDrawable221Resources(map) + _collectCommonMainDrawable222Resources(map) + _collectCommonMainDrawable223Resources(map) + _collectCommonMainDrawable224Resources(map) + _collectCommonMainDrawable225Resources(map) + _collectCommonMainDrawable226Resources(map) + _collectCommonMainDrawable227Resources(map) + _collectCommonMainDrawable228Resources(map) + _collectCommonMainDrawable229Resources(map) + _collectCommonMainDrawable22Resources(map) + _collectCommonMainDrawable230Resources(map) + _collectCommonMainDrawable231Resources(map) + _collectCommonMainDrawable232Resources(map) + _collectCommonMainDrawable233Resources(map) + _collectCommonMainDrawable234Resources(map) + _collectCommonMainDrawable235Resources(map) + _collectCommonMainDrawable236Resources(map) + _collectCommonMainDrawable237Resources(map) + _collectCommonMainDrawable238Resources(map) + _collectCommonMainDrawable239Resources(map) + _collectCommonMainDrawable23Resources(map) + _collectCommonMainDrawable240Resources(map) + _collectCommonMainDrawable241Resources(map) + _collectCommonMainDrawable242Resources(map) + _collectCommonMainDrawable243Resources(map) + _collectCommonMainDrawable244Resources(map) + _collectCommonMainDrawable245Resources(map) + _collectCommonMainDrawable246Resources(map) + _collectCommonMainDrawable247Resources(map) + _collectCommonMainDrawable248Resources(map) + _collectCommonMainDrawable249Resources(map) + _collectCommonMainDrawable24Resources(map) + _collectCommonMainDrawable25Resources(map) + _collectCommonMainDrawable26Resources(map) + _collectCommonMainDrawable27Resources(map) + _collectCommonMainDrawable28Resources(map) + _collectCommonMainDrawable29Resources(map) + _collectCommonMainDrawable2Resources(map) + _collectCommonMainDrawable30Resources(map) + _collectCommonMainDrawable31Resources(map) + _collectCommonMainDrawable32Resources(map) + _collectCommonMainDrawable33Resources(map) + _collectCommonMainDrawable34Resources(map) + _collectCommonMainDrawable35Resources(map) + _collectCommonMainDrawable36Resources(map) + _collectCommonMainDrawable37Resources(map) + _collectCommonMainDrawable38Resources(map) + _collectCommonMainDrawable39Resources(map) + _collectCommonMainDrawable3Resources(map) + _collectCommonMainDrawable40Resources(map) + _collectCommonMainDrawable41Resources(map) + _collectCommonMainDrawable42Resources(map) + _collectCommonMainDrawable43Resources(map) + _collectCommonMainDrawable44Resources(map) + _collectCommonMainDrawable45Resources(map) + _collectCommonMainDrawable46Resources(map) + _collectCommonMainDrawable47Resources(map) + _collectCommonMainDrawable48Resources(map) + _collectCommonMainDrawable49Resources(map) + _collectCommonMainDrawable4Resources(map) + _collectCommonMainDrawable50Resources(map) + _collectCommonMainDrawable51Resources(map) + _collectCommonMainDrawable52Resources(map) + _collectCommonMainDrawable53Resources(map) + _collectCommonMainDrawable54Resources(map) + _collectCommonMainDrawable55Resources(map) + _collectCommonMainDrawable56Resources(map) + _collectCommonMainDrawable57Resources(map) + _collectCommonMainDrawable58Resources(map) + _collectCommonMainDrawable59Resources(map) + _collectCommonMainDrawable5Resources(map) + _collectCommonMainDrawable60Resources(map) + _collectCommonMainDrawable61Resources(map) + _collectCommonMainDrawable62Resources(map) + _collectCommonMainDrawable63Resources(map) + _collectCommonMainDrawable64Resources(map) + _collectCommonMainDrawable65Resources(map) + _collectCommonMainDrawable66Resources(map) + _collectCommonMainDrawable67Resources(map) + _collectCommonMainDrawable68Resources(map) + _collectCommonMainDrawable69Resources(map) + _collectCommonMainDrawable6Resources(map) + _collectCommonMainDrawable70Resources(map) + _collectCommonMainDrawable71Resources(map) + _collectCommonMainDrawable72Resources(map) + _collectCommonMainDrawable73Resources(map) + _collectCommonMainDrawable74Resources(map) + _collectCommonMainDrawable75Resources(map) + _collectCommonMainDrawable76Resources(map) + _collectCommonMainDrawable77Resources(map) + _collectCommonMainDrawable78Resources(map) + _collectCommonMainDrawable79Resources(map) + _collectCommonMainDrawable7Resources(map) + _collectCommonMainDrawable80Resources(map) + _collectCommonMainDrawable81Resources(map) + _collectCommonMainDrawable82Resources(map) + _collectCommonMainDrawable83Resources(map) + _collectCommonMainDrawable84Resources(map) + _collectCommonMainDrawable85Resources(map) + _collectCommonMainDrawable86Resources(map) + _collectCommonMainDrawable87Resources(map) + _collectCommonMainDrawable88Resources(map) + _collectCommonMainDrawable89Resources(map) + _collectCommonMainDrawable8Resources(map) + _collectCommonMainDrawable90Resources(map) + _collectCommonMainDrawable91Resources(map) + _collectCommonMainDrawable92Resources(map) + _collectCommonMainDrawable93Resources(map) + _collectCommonMainDrawable94Resources(map) + _collectCommonMainDrawable95Resources(map) + _collectCommonMainDrawable96Resources(map) + _collectCommonMainDrawable97Resources(map) + _collectCommonMainDrawable98Resources(map) + _collectCommonMainDrawable99Resources(map) + _collectCommonMainDrawable9Resources(map) + return@lazy map +} + +internal actual val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + _collectCommonMainString0Resources(map) + _collectCommonMainString100Resources(map) + _collectCommonMainString101Resources(map) + _collectCommonMainString102Resources(map) + _collectCommonMainString103Resources(map) + _collectCommonMainString104Resources(map) + _collectCommonMainString105Resources(map) + _collectCommonMainString106Resources(map) + _collectCommonMainString107Resources(map) + _collectCommonMainString108Resources(map) + _collectCommonMainString109Resources(map) + _collectCommonMainString10Resources(map) + _collectCommonMainString110Resources(map) + _collectCommonMainString111Resources(map) + _collectCommonMainString112Resources(map) + _collectCommonMainString113Resources(map) + _collectCommonMainString114Resources(map) + _collectCommonMainString115Resources(map) + _collectCommonMainString116Resources(map) + _collectCommonMainString117Resources(map) + _collectCommonMainString118Resources(map) + _collectCommonMainString119Resources(map) + _collectCommonMainString11Resources(map) + _collectCommonMainString120Resources(map) + _collectCommonMainString121Resources(map) + _collectCommonMainString122Resources(map) + _collectCommonMainString123Resources(map) + _collectCommonMainString124Resources(map) + _collectCommonMainString125Resources(map) + _collectCommonMainString126Resources(map) + _collectCommonMainString127Resources(map) + _collectCommonMainString128Resources(map) + _collectCommonMainString129Resources(map) + _collectCommonMainString12Resources(map) + _collectCommonMainString130Resources(map) + _collectCommonMainString131Resources(map) + _collectCommonMainString132Resources(map) + _collectCommonMainString133Resources(map) + _collectCommonMainString134Resources(map) + _collectCommonMainString135Resources(map) + _collectCommonMainString136Resources(map) + _collectCommonMainString137Resources(map) + _collectCommonMainString138Resources(map) + _collectCommonMainString139Resources(map) + _collectCommonMainString13Resources(map) + _collectCommonMainString140Resources(map) + _collectCommonMainString141Resources(map) + _collectCommonMainString142Resources(map) + _collectCommonMainString143Resources(map) + _collectCommonMainString144Resources(map) + _collectCommonMainString145Resources(map) + _collectCommonMainString146Resources(map) + _collectCommonMainString147Resources(map) + _collectCommonMainString148Resources(map) + _collectCommonMainString149Resources(map) + _collectCommonMainString14Resources(map) + _collectCommonMainString150Resources(map) + _collectCommonMainString151Resources(map) + _collectCommonMainString152Resources(map) + _collectCommonMainString153Resources(map) + _collectCommonMainString154Resources(map) + _collectCommonMainString155Resources(map) + _collectCommonMainString156Resources(map) + _collectCommonMainString157Resources(map) + _collectCommonMainString158Resources(map) + _collectCommonMainString159Resources(map) + _collectCommonMainString15Resources(map) + _collectCommonMainString160Resources(map) + _collectCommonMainString161Resources(map) + _collectCommonMainString162Resources(map) + _collectCommonMainString163Resources(map) + _collectCommonMainString164Resources(map) + _collectCommonMainString165Resources(map) + _collectCommonMainString166Resources(map) + _collectCommonMainString167Resources(map) + _collectCommonMainString168Resources(map) + _collectCommonMainString169Resources(map) + _collectCommonMainString16Resources(map) + _collectCommonMainString170Resources(map) + _collectCommonMainString171Resources(map) + _collectCommonMainString172Resources(map) + _collectCommonMainString173Resources(map) + _collectCommonMainString174Resources(map) + _collectCommonMainString175Resources(map) + _collectCommonMainString176Resources(map) + _collectCommonMainString177Resources(map) + _collectCommonMainString178Resources(map) + _collectCommonMainString179Resources(map) + _collectCommonMainString17Resources(map) + _collectCommonMainString180Resources(map) + _collectCommonMainString181Resources(map) + _collectCommonMainString182Resources(map) + _collectCommonMainString183Resources(map) + _collectCommonMainString184Resources(map) + _collectCommonMainString185Resources(map) + _collectCommonMainString186Resources(map) + _collectCommonMainString187Resources(map) + _collectCommonMainString188Resources(map) + _collectCommonMainString189Resources(map) + _collectCommonMainString18Resources(map) + _collectCommonMainString190Resources(map) + _collectCommonMainString191Resources(map) + _collectCommonMainString192Resources(map) + _collectCommonMainString193Resources(map) + _collectCommonMainString194Resources(map) + _collectCommonMainString195Resources(map) + _collectCommonMainString196Resources(map) + _collectCommonMainString197Resources(map) + _collectCommonMainString198Resources(map) + _collectCommonMainString199Resources(map) + _collectCommonMainString19Resources(map) + _collectCommonMainString1Resources(map) + _collectCommonMainString200Resources(map) + _collectCommonMainString201Resources(map) + _collectCommonMainString202Resources(map) + _collectCommonMainString203Resources(map) + _collectCommonMainString204Resources(map) + _collectCommonMainString205Resources(map) + _collectCommonMainString206Resources(map) + _collectCommonMainString207Resources(map) + _collectCommonMainString208Resources(map) + _collectCommonMainString209Resources(map) + _collectCommonMainString20Resources(map) + _collectCommonMainString210Resources(map) + _collectCommonMainString211Resources(map) + _collectCommonMainString212Resources(map) + _collectCommonMainString213Resources(map) + _collectCommonMainString214Resources(map) + _collectCommonMainString215Resources(map) + _collectCommonMainString216Resources(map) + _collectCommonMainString217Resources(map) + _collectCommonMainString218Resources(map) + _collectCommonMainString219Resources(map) + _collectCommonMainString21Resources(map) + _collectCommonMainString220Resources(map) + _collectCommonMainString221Resources(map) + _collectCommonMainString222Resources(map) + _collectCommonMainString223Resources(map) + _collectCommonMainString224Resources(map) + _collectCommonMainString225Resources(map) + _collectCommonMainString226Resources(map) + _collectCommonMainString227Resources(map) + _collectCommonMainString228Resources(map) + _collectCommonMainString229Resources(map) + _collectCommonMainString22Resources(map) + _collectCommonMainString230Resources(map) + _collectCommonMainString231Resources(map) + _collectCommonMainString232Resources(map) + _collectCommonMainString233Resources(map) + _collectCommonMainString234Resources(map) + _collectCommonMainString235Resources(map) + _collectCommonMainString236Resources(map) + _collectCommonMainString237Resources(map) + _collectCommonMainString238Resources(map) + _collectCommonMainString239Resources(map) + _collectCommonMainString23Resources(map) + _collectCommonMainString240Resources(map) + _collectCommonMainString241Resources(map) + _collectCommonMainString242Resources(map) + _collectCommonMainString243Resources(map) + _collectCommonMainString244Resources(map) + _collectCommonMainString245Resources(map) + _collectCommonMainString246Resources(map) + _collectCommonMainString247Resources(map) + _collectCommonMainString248Resources(map) + _collectCommonMainString249Resources(map) + _collectCommonMainString24Resources(map) + _collectCommonMainString25Resources(map) + _collectCommonMainString26Resources(map) + _collectCommonMainString27Resources(map) + _collectCommonMainString28Resources(map) + _collectCommonMainString29Resources(map) + _collectCommonMainString2Resources(map) + _collectCommonMainString30Resources(map) + _collectCommonMainString31Resources(map) + _collectCommonMainString32Resources(map) + _collectCommonMainString33Resources(map) + _collectCommonMainString34Resources(map) + _collectCommonMainString35Resources(map) + _collectCommonMainString36Resources(map) + _collectCommonMainString37Resources(map) + _collectCommonMainString38Resources(map) + _collectCommonMainString39Resources(map) + _collectCommonMainString3Resources(map) + _collectCommonMainString40Resources(map) + _collectCommonMainString41Resources(map) + _collectCommonMainString42Resources(map) + _collectCommonMainString43Resources(map) + _collectCommonMainString44Resources(map) + _collectCommonMainString45Resources(map) + _collectCommonMainString46Resources(map) + _collectCommonMainString47Resources(map) + _collectCommonMainString48Resources(map) + _collectCommonMainString49Resources(map) + _collectCommonMainString4Resources(map) + _collectCommonMainString50Resources(map) + _collectCommonMainString51Resources(map) + _collectCommonMainString52Resources(map) + _collectCommonMainString53Resources(map) + _collectCommonMainString54Resources(map) + _collectCommonMainString55Resources(map) + _collectCommonMainString56Resources(map) + _collectCommonMainString57Resources(map) + _collectCommonMainString58Resources(map) + _collectCommonMainString59Resources(map) + _collectCommonMainString5Resources(map) + _collectCommonMainString60Resources(map) + _collectCommonMainString61Resources(map) + _collectCommonMainString62Resources(map) + _collectCommonMainString63Resources(map) + _collectCommonMainString64Resources(map) + _collectCommonMainString65Resources(map) + _collectCommonMainString66Resources(map) + _collectCommonMainString67Resources(map) + _collectCommonMainString68Resources(map) + _collectCommonMainString69Resources(map) + _collectCommonMainString6Resources(map) + _collectCommonMainString70Resources(map) + _collectCommonMainString71Resources(map) + _collectCommonMainString72Resources(map) + _collectCommonMainString73Resources(map) + _collectCommonMainString74Resources(map) + _collectCommonMainString75Resources(map) + _collectCommonMainString76Resources(map) + _collectCommonMainString77Resources(map) + _collectCommonMainString78Resources(map) + _collectCommonMainString79Resources(map) + _collectCommonMainString7Resources(map) + _collectCommonMainString80Resources(map) + _collectCommonMainString81Resources(map) + _collectCommonMainString82Resources(map) + _collectCommonMainString83Resources(map) + _collectCommonMainString84Resources(map) + _collectCommonMainString85Resources(map) + _collectCommonMainString86Resources(map) + _collectCommonMainString87Resources(map) + _collectCommonMainString88Resources(map) + _collectCommonMainString89Resources(map) + _collectCommonMainString8Resources(map) + _collectCommonMainString90Resources(map) + _collectCommonMainString91Resources(map) + _collectCommonMainString92Resources(map) + _collectCommonMainString93Resources(map) + _collectCommonMainString94Resources(map) + _collectCommonMainString95Resources(map) + _collectCommonMainString96Resources(map) + _collectCommonMainString97Resources(map) + _collectCommonMainString98Resources(map) + _collectCommonMainString99Resources(map) + _collectCommonMainString9Resources(map) + return@lazy map +} + +internal actual val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal actual val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/Drawable0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/Drawable0.commonMain.kt new file mode 100644 index 00000000000..3fc689d22b7 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/Drawable0.commonMain.kt @@ -0,0 +1,716 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.huge.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem + +private const val MD: String = "composeResources/app.group.huge.generated.resources/" + +internal val Res.drawable.icon_0: DrawableResource by lazy { + DrawableResource("drawable:icon_0", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_0.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1: DrawableResource by lazy { + DrawableResource("drawable:icon_1", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10: DrawableResource by lazy { + DrawableResource("drawable:icon_10", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_100: DrawableResource by lazy { + DrawableResource("drawable:icon_100", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_100.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1000: DrawableResource by lazy { + DrawableResource("drawable:icon_1000", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1000.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10000: DrawableResource by lazy { + DrawableResource("drawable:icon_10000", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10000.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10001: DrawableResource by lazy { + DrawableResource("drawable:icon_10001", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10001.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10002: DrawableResource by lazy { + DrawableResource("drawable:icon_10002", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10002.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10003: DrawableResource by lazy { + DrawableResource("drawable:icon_10003", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10003.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10004: DrawableResource by lazy { + DrawableResource("drawable:icon_10004", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10004.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10005: DrawableResource by lazy { + DrawableResource("drawable:icon_10005", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10005.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10006: DrawableResource by lazy { + DrawableResource("drawable:icon_10006", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10006.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10007: DrawableResource by lazy { + DrawableResource("drawable:icon_10007", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10007.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10008: DrawableResource by lazy { + DrawableResource("drawable:icon_10008", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10008.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10009: DrawableResource by lazy { + DrawableResource("drawable:icon_10009", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10009.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1001: DrawableResource by lazy { + DrawableResource("drawable:icon_1001", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1001.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10010: DrawableResource by lazy { + DrawableResource("drawable:icon_10010", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10010.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10011: DrawableResource by lazy { + DrawableResource("drawable:icon_10011", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10011.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10012: DrawableResource by lazy { + DrawableResource("drawable:icon_10012", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10012.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10013: DrawableResource by lazy { + DrawableResource("drawable:icon_10013", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10013.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10014: DrawableResource by lazy { + DrawableResource("drawable:icon_10014", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10014.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10015: DrawableResource by lazy { + DrawableResource("drawable:icon_10015", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10015.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10016: DrawableResource by lazy { + DrawableResource("drawable:icon_10016", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10016.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10017: DrawableResource by lazy { + DrawableResource("drawable:icon_10017", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10017.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10018: DrawableResource by lazy { + DrawableResource("drawable:icon_10018", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10018.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10019: DrawableResource by lazy { + DrawableResource("drawable:icon_10019", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10019.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1002: DrawableResource by lazy { + DrawableResource("drawable:icon_1002", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1002.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10020: DrawableResource by lazy { + DrawableResource("drawable:icon_10020", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10020.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10021: DrawableResource by lazy { + DrawableResource("drawable:icon_10021", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10021.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10022: DrawableResource by lazy { + DrawableResource("drawable:icon_10022", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10022.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10023: DrawableResource by lazy { + DrawableResource("drawable:icon_10023", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10023.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10024: DrawableResource by lazy { + DrawableResource("drawable:icon_10024", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10024.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10025: DrawableResource by lazy { + DrawableResource("drawable:icon_10025", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10025.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10026: DrawableResource by lazy { + DrawableResource("drawable:icon_10026", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10026.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10027: DrawableResource by lazy { + DrawableResource("drawable:icon_10027", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10027.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10028: DrawableResource by lazy { + DrawableResource("drawable:icon_10028", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10028.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10029: DrawableResource by lazy { + DrawableResource("drawable:icon_10029", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10029.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1003: DrawableResource by lazy { + DrawableResource("drawable:icon_1003", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1003.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10030: DrawableResource by lazy { + DrawableResource("drawable:icon_10030", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10030.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10031: DrawableResource by lazy { + DrawableResource("drawable:icon_10031", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10031.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10032: DrawableResource by lazy { + DrawableResource("drawable:icon_10032", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10032.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10033: DrawableResource by lazy { + DrawableResource("drawable:icon_10033", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10033.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10034: DrawableResource by lazy { + DrawableResource("drawable:icon_10034", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10034.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10035: DrawableResource by lazy { + DrawableResource("drawable:icon_10035", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10035.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10036: DrawableResource by lazy { + DrawableResource("drawable:icon_10036", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10036.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10037: DrawableResource by lazy { + DrawableResource("drawable:icon_10037", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10037.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10038: DrawableResource by lazy { + DrawableResource("drawable:icon_10038", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10038.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10039: DrawableResource by lazy { + DrawableResource("drawable:icon_10039", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10039.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1004: DrawableResource by lazy { + DrawableResource("drawable:icon_1004", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1004.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10040: DrawableResource by lazy { + DrawableResource("drawable:icon_10040", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10040.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10041: DrawableResource by lazy { + DrawableResource("drawable:icon_10041", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10041.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10042: DrawableResource by lazy { + DrawableResource("drawable:icon_10042", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10042.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10043: DrawableResource by lazy { + DrawableResource("drawable:icon_10043", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10043.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10044: DrawableResource by lazy { + DrawableResource("drawable:icon_10044", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10044.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10045: DrawableResource by lazy { + DrawableResource("drawable:icon_10045", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10045.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10046: DrawableResource by lazy { + DrawableResource("drawable:icon_10046", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10046.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10047: DrawableResource by lazy { + DrawableResource("drawable:icon_10047", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10047.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10048: DrawableResource by lazy { + DrawableResource("drawable:icon_10048", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10048.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10049: DrawableResource by lazy { + DrawableResource("drawable:icon_10049", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10049.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1005: DrawableResource by lazy { + DrawableResource("drawable:icon_1005", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1005.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10050: DrawableResource by lazy { + DrawableResource("drawable:icon_10050", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10050.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10051: DrawableResource by lazy { + DrawableResource("drawable:icon_10051", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10051.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10052: DrawableResource by lazy { + DrawableResource("drawable:icon_10052", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10052.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10053: DrawableResource by lazy { + DrawableResource("drawable:icon_10053", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10053.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10054: DrawableResource by lazy { + DrawableResource("drawable:icon_10054", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10054.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10055: DrawableResource by lazy { + DrawableResource("drawable:icon_10055", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10055.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10056: DrawableResource by lazy { + DrawableResource("drawable:icon_10056", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10056.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10057: DrawableResource by lazy { + DrawableResource("drawable:icon_10057", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10057.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10058: DrawableResource by lazy { + DrawableResource("drawable:icon_10058", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10058.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10059: DrawableResource by lazy { + DrawableResource("drawable:icon_10059", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10059.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1006: DrawableResource by lazy { + DrawableResource("drawable:icon_1006", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1006.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10060: DrawableResource by lazy { + DrawableResource("drawable:icon_10060", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10060.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10061: DrawableResource by lazy { + DrawableResource("drawable:icon_10061", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10061.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10062: DrawableResource by lazy { + DrawableResource("drawable:icon_10062", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10062.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10063: DrawableResource by lazy { + DrawableResource("drawable:icon_10063", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10063.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10064: DrawableResource by lazy { + DrawableResource("drawable:icon_10064", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10064.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10065: DrawableResource by lazy { + DrawableResource("drawable:icon_10065", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10065.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10066: DrawableResource by lazy { + DrawableResource("drawable:icon_10066", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10066.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10067: DrawableResource by lazy { + DrawableResource("drawable:icon_10067", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10067.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10068: DrawableResource by lazy { + DrawableResource("drawable:icon_10068", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10068.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10069: DrawableResource by lazy { + DrawableResource("drawable:icon_10069", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10069.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1007: DrawableResource by lazy { + DrawableResource("drawable:icon_1007", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1007.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10070: DrawableResource by lazy { + DrawableResource("drawable:icon_10070", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10070.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10071: DrawableResource by lazy { + DrawableResource("drawable:icon_10071", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10071.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10072: DrawableResource by lazy { + DrawableResource("drawable:icon_10072", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10072.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10073: DrawableResource by lazy { + DrawableResource("drawable:icon_10073", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10073.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10074: DrawableResource by lazy { + DrawableResource("drawable:icon_10074", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10074.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10075: DrawableResource by lazy { + DrawableResource("drawable:icon_10075", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10075.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10076: DrawableResource by lazy { + DrawableResource("drawable:icon_10076", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10076.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10077: DrawableResource by lazy { + DrawableResource("drawable:icon_10077", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10077.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10078: DrawableResource by lazy { + DrawableResource("drawable:icon_10078", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10078.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10079: DrawableResource by lazy { + DrawableResource("drawable:icon_10079", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10079.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1008: DrawableResource by lazy { + DrawableResource("drawable:icon_1008", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1008.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10080: DrawableResource by lazy { + DrawableResource("drawable:icon_10080", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10080.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10081: DrawableResource by lazy { + DrawableResource("drawable:icon_10081", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10081.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10082: DrawableResource by lazy { + DrawableResource("drawable:icon_10082", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10082.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10083: DrawableResource by lazy { + DrawableResource("drawable:icon_10083", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10083.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10084: DrawableResource by lazy { + DrawableResource("drawable:icon_10084", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10084.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10085: DrawableResource by lazy { + DrawableResource("drawable:icon_10085", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10085.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_10086: DrawableResource by lazy { + DrawableResource("drawable:icon_10086", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_10086.xml", -1, -1), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainDrawable0Resources(map: MutableMap) { + map.put("icon_0", Res.drawable.icon_0) + map.put("icon_1", Res.drawable.icon_1) + map.put("icon_10", Res.drawable.icon_10) + map.put("icon_100", Res.drawable.icon_100) + map.put("icon_1000", Res.drawable.icon_1000) + map.put("icon_10000", Res.drawable.icon_10000) + map.put("icon_10001", Res.drawable.icon_10001) + map.put("icon_10002", Res.drawable.icon_10002) + map.put("icon_10003", Res.drawable.icon_10003) + map.put("icon_10004", Res.drawable.icon_10004) + map.put("icon_10005", Res.drawable.icon_10005) + map.put("icon_10006", Res.drawable.icon_10006) + map.put("icon_10007", Res.drawable.icon_10007) + map.put("icon_10008", Res.drawable.icon_10008) + map.put("icon_10009", Res.drawable.icon_10009) + map.put("icon_1001", Res.drawable.icon_1001) + map.put("icon_10010", Res.drawable.icon_10010) + map.put("icon_10011", Res.drawable.icon_10011) + map.put("icon_10012", Res.drawable.icon_10012) + map.put("icon_10013", Res.drawable.icon_10013) + map.put("icon_10014", Res.drawable.icon_10014) + map.put("icon_10015", Res.drawable.icon_10015) + map.put("icon_10016", Res.drawable.icon_10016) + map.put("icon_10017", Res.drawable.icon_10017) + map.put("icon_10018", Res.drawable.icon_10018) + map.put("icon_10019", Res.drawable.icon_10019) + map.put("icon_1002", Res.drawable.icon_1002) + map.put("icon_10020", Res.drawable.icon_10020) + map.put("icon_10021", Res.drawable.icon_10021) + map.put("icon_10022", Res.drawable.icon_10022) + map.put("icon_10023", Res.drawable.icon_10023) + map.put("icon_10024", Res.drawable.icon_10024) + map.put("icon_10025", Res.drawable.icon_10025) + map.put("icon_10026", Res.drawable.icon_10026) + map.put("icon_10027", Res.drawable.icon_10027) + map.put("icon_10028", Res.drawable.icon_10028) + map.put("icon_10029", Res.drawable.icon_10029) + map.put("icon_1003", Res.drawable.icon_1003) + map.put("icon_10030", Res.drawable.icon_10030) + map.put("icon_10031", Res.drawable.icon_10031) + map.put("icon_10032", Res.drawable.icon_10032) + map.put("icon_10033", Res.drawable.icon_10033) + map.put("icon_10034", Res.drawable.icon_10034) + map.put("icon_10035", Res.drawable.icon_10035) + map.put("icon_10036", Res.drawable.icon_10036) + map.put("icon_10037", Res.drawable.icon_10037) + map.put("icon_10038", Res.drawable.icon_10038) + map.put("icon_10039", Res.drawable.icon_10039) + map.put("icon_1004", Res.drawable.icon_1004) + map.put("icon_10040", Res.drawable.icon_10040) + map.put("icon_10041", Res.drawable.icon_10041) + map.put("icon_10042", Res.drawable.icon_10042) + map.put("icon_10043", Res.drawable.icon_10043) + map.put("icon_10044", Res.drawable.icon_10044) + map.put("icon_10045", Res.drawable.icon_10045) + map.put("icon_10046", Res.drawable.icon_10046) + map.put("icon_10047", Res.drawable.icon_10047) + map.put("icon_10048", Res.drawable.icon_10048) + map.put("icon_10049", Res.drawable.icon_10049) + map.put("icon_1005", Res.drawable.icon_1005) + map.put("icon_10050", Res.drawable.icon_10050) + map.put("icon_10051", Res.drawable.icon_10051) + map.put("icon_10052", Res.drawable.icon_10052) + map.put("icon_10053", Res.drawable.icon_10053) + map.put("icon_10054", Res.drawable.icon_10054) + map.put("icon_10055", Res.drawable.icon_10055) + map.put("icon_10056", Res.drawable.icon_10056) + map.put("icon_10057", Res.drawable.icon_10057) + map.put("icon_10058", Res.drawable.icon_10058) + map.put("icon_10059", Res.drawable.icon_10059) + map.put("icon_1006", Res.drawable.icon_1006) + map.put("icon_10060", Res.drawable.icon_10060) + map.put("icon_10061", Res.drawable.icon_10061) + map.put("icon_10062", Res.drawable.icon_10062) + map.put("icon_10063", Res.drawable.icon_10063) + map.put("icon_10064", Res.drawable.icon_10064) + map.put("icon_10065", Res.drawable.icon_10065) + map.put("icon_10066", Res.drawable.icon_10066) + map.put("icon_10067", Res.drawable.icon_10067) + map.put("icon_10068", Res.drawable.icon_10068) + map.put("icon_10069", Res.drawable.icon_10069) + map.put("icon_1007", Res.drawable.icon_1007) + map.put("icon_10070", Res.drawable.icon_10070) + map.put("icon_10071", Res.drawable.icon_10071) + map.put("icon_10072", Res.drawable.icon_10072) + map.put("icon_10073", Res.drawable.icon_10073) + map.put("icon_10074", Res.drawable.icon_10074) + map.put("icon_10075", Res.drawable.icon_10075) + map.put("icon_10076", Res.drawable.icon_10076) + map.put("icon_10077", Res.drawable.icon_10077) + map.put("icon_10078", Res.drawable.icon_10078) + map.put("icon_10079", Res.drawable.icon_10079) + map.put("icon_1008", Res.drawable.icon_1008) + map.put("icon_10080", Res.drawable.icon_10080) + map.put("icon_10081", Res.drawable.icon_10081) + map.put("icon_10082", Res.drawable.icon_10082) + map.put("icon_10083", Res.drawable.icon_10083) + map.put("icon_10084", Res.drawable.icon_10084) + map.put("icon_10085", Res.drawable.icon_10085) + map.put("icon_10086", Res.drawable.icon_10086) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/Drawable100.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/Drawable100.commonMain.kt new file mode 100644 index 00000000000..bbe689176bc --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/Drawable100.commonMain.kt @@ -0,0 +1,716 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.huge.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem + +private const val MD: String = "composeResources/app.group.huge.generated.resources/" + +internal val Res.drawable.icon_18999: DrawableResource by lazy { + DrawableResource("drawable:icon_18999", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_18999.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19: DrawableResource by lazy { + DrawableResource("drawable:icon_19", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_190: DrawableResource by lazy { + DrawableResource("drawable:icon_190", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_190.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1900: DrawableResource by lazy { + DrawableResource("drawable:icon_1900", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1900.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19000: DrawableResource by lazy { + DrawableResource("drawable:icon_19000", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19000.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19001: DrawableResource by lazy { + DrawableResource("drawable:icon_19001", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19001.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19002: DrawableResource by lazy { + DrawableResource("drawable:icon_19002", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19002.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19003: DrawableResource by lazy { + DrawableResource("drawable:icon_19003", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19003.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19004: DrawableResource by lazy { + DrawableResource("drawable:icon_19004", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19004.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19005: DrawableResource by lazy { + DrawableResource("drawable:icon_19005", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19005.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19006: DrawableResource by lazy { + DrawableResource("drawable:icon_19006", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19006.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19007: DrawableResource by lazy { + DrawableResource("drawable:icon_19007", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19007.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19008: DrawableResource by lazy { + DrawableResource("drawable:icon_19008", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19008.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19009: DrawableResource by lazy { + DrawableResource("drawable:icon_19009", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19009.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1901: DrawableResource by lazy { + DrawableResource("drawable:icon_1901", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1901.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19010: DrawableResource by lazy { + DrawableResource("drawable:icon_19010", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19010.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19011: DrawableResource by lazy { + DrawableResource("drawable:icon_19011", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19011.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19012: DrawableResource by lazy { + DrawableResource("drawable:icon_19012", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19012.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19013: DrawableResource by lazy { + DrawableResource("drawable:icon_19013", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19013.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19014: DrawableResource by lazy { + DrawableResource("drawable:icon_19014", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19014.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19015: DrawableResource by lazy { + DrawableResource("drawable:icon_19015", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19015.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19016: DrawableResource by lazy { + DrawableResource("drawable:icon_19016", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19016.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19017: DrawableResource by lazy { + DrawableResource("drawable:icon_19017", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19017.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19018: DrawableResource by lazy { + DrawableResource("drawable:icon_19018", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19018.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19019: DrawableResource by lazy { + DrawableResource("drawable:icon_19019", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19019.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1902: DrawableResource by lazy { + DrawableResource("drawable:icon_1902", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1902.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19020: DrawableResource by lazy { + DrawableResource("drawable:icon_19020", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19020.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19021: DrawableResource by lazy { + DrawableResource("drawable:icon_19021", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19021.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19022: DrawableResource by lazy { + DrawableResource("drawable:icon_19022", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19022.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19023: DrawableResource by lazy { + DrawableResource("drawable:icon_19023", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19023.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19024: DrawableResource by lazy { + DrawableResource("drawable:icon_19024", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19024.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19025: DrawableResource by lazy { + DrawableResource("drawable:icon_19025", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19025.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19026: DrawableResource by lazy { + DrawableResource("drawable:icon_19026", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19026.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19027: DrawableResource by lazy { + DrawableResource("drawable:icon_19027", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19027.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19028: DrawableResource by lazy { + DrawableResource("drawable:icon_19028", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19028.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19029: DrawableResource by lazy { + DrawableResource("drawable:icon_19029", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19029.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1903: DrawableResource by lazy { + DrawableResource("drawable:icon_1903", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1903.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19030: DrawableResource by lazy { + DrawableResource("drawable:icon_19030", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19030.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19031: DrawableResource by lazy { + DrawableResource("drawable:icon_19031", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19031.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19032: DrawableResource by lazy { + DrawableResource("drawable:icon_19032", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19032.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19033: DrawableResource by lazy { + DrawableResource("drawable:icon_19033", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19033.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19034: DrawableResource by lazy { + DrawableResource("drawable:icon_19034", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19034.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19035: DrawableResource by lazy { + DrawableResource("drawable:icon_19035", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19035.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19036: DrawableResource by lazy { + DrawableResource("drawable:icon_19036", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19036.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19037: DrawableResource by lazy { + DrawableResource("drawable:icon_19037", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19037.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19038: DrawableResource by lazy { + DrawableResource("drawable:icon_19038", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19038.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19039: DrawableResource by lazy { + DrawableResource("drawable:icon_19039", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19039.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1904: DrawableResource by lazy { + DrawableResource("drawable:icon_1904", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1904.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19040: DrawableResource by lazy { + DrawableResource("drawable:icon_19040", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19040.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19041: DrawableResource by lazy { + DrawableResource("drawable:icon_19041", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19041.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19042: DrawableResource by lazy { + DrawableResource("drawable:icon_19042", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19042.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19043: DrawableResource by lazy { + DrawableResource("drawable:icon_19043", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19043.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19044: DrawableResource by lazy { + DrawableResource("drawable:icon_19044", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19044.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19045: DrawableResource by lazy { + DrawableResource("drawable:icon_19045", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19045.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19046: DrawableResource by lazy { + DrawableResource("drawable:icon_19046", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19046.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19047: DrawableResource by lazy { + DrawableResource("drawable:icon_19047", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19047.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19048: DrawableResource by lazy { + DrawableResource("drawable:icon_19048", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19048.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19049: DrawableResource by lazy { + DrawableResource("drawable:icon_19049", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19049.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1905: DrawableResource by lazy { + DrawableResource("drawable:icon_1905", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1905.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19050: DrawableResource by lazy { + DrawableResource("drawable:icon_19050", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19050.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19051: DrawableResource by lazy { + DrawableResource("drawable:icon_19051", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19051.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19052: DrawableResource by lazy { + DrawableResource("drawable:icon_19052", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19052.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19053: DrawableResource by lazy { + DrawableResource("drawable:icon_19053", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19053.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19054: DrawableResource by lazy { + DrawableResource("drawable:icon_19054", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19054.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19055: DrawableResource by lazy { + DrawableResource("drawable:icon_19055", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19055.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19056: DrawableResource by lazy { + DrawableResource("drawable:icon_19056", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19056.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19057: DrawableResource by lazy { + DrawableResource("drawable:icon_19057", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19057.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19058: DrawableResource by lazy { + DrawableResource("drawable:icon_19058", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19058.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19059: DrawableResource by lazy { + DrawableResource("drawable:icon_19059", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19059.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1906: DrawableResource by lazy { + DrawableResource("drawable:icon_1906", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1906.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19060: DrawableResource by lazy { + DrawableResource("drawable:icon_19060", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19060.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19061: DrawableResource by lazy { + DrawableResource("drawable:icon_19061", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19061.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19062: DrawableResource by lazy { + DrawableResource("drawable:icon_19062", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19062.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19063: DrawableResource by lazy { + DrawableResource("drawable:icon_19063", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19063.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19064: DrawableResource by lazy { + DrawableResource("drawable:icon_19064", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19064.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19065: DrawableResource by lazy { + DrawableResource("drawable:icon_19065", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19065.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19066: DrawableResource by lazy { + DrawableResource("drawable:icon_19066", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19066.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19067: DrawableResource by lazy { + DrawableResource("drawable:icon_19067", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19067.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19068: DrawableResource by lazy { + DrawableResource("drawable:icon_19068", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19068.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19069: DrawableResource by lazy { + DrawableResource("drawable:icon_19069", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19069.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1907: DrawableResource by lazy { + DrawableResource("drawable:icon_1907", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1907.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19070: DrawableResource by lazy { + DrawableResource("drawable:icon_19070", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19070.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19071: DrawableResource by lazy { + DrawableResource("drawable:icon_19071", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19071.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19072: DrawableResource by lazy { + DrawableResource("drawable:icon_19072", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19072.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19073: DrawableResource by lazy { + DrawableResource("drawable:icon_19073", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19073.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19074: DrawableResource by lazy { + DrawableResource("drawable:icon_19074", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19074.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19075: DrawableResource by lazy { + DrawableResource("drawable:icon_19075", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19075.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19076: DrawableResource by lazy { + DrawableResource("drawable:icon_19076", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19076.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19077: DrawableResource by lazy { + DrawableResource("drawable:icon_19077", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19077.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19078: DrawableResource by lazy { + DrawableResource("drawable:icon_19078", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19078.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19079: DrawableResource by lazy { + DrawableResource("drawable:icon_19079", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19079.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_1908: DrawableResource by lazy { + DrawableResource("drawable:icon_1908", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_1908.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19080: DrawableResource by lazy { + DrawableResource("drawable:icon_19080", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19080.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19081: DrawableResource by lazy { + DrawableResource("drawable:icon_19081", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19081.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19082: DrawableResource by lazy { + DrawableResource("drawable:icon_19082", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19082.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19083: DrawableResource by lazy { + DrawableResource("drawable:icon_19083", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19083.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19084: DrawableResource by lazy { + DrawableResource("drawable:icon_19084", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19084.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19085: DrawableResource by lazy { + DrawableResource("drawable:icon_19085", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19085.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19086: DrawableResource by lazy { + DrawableResource("drawable:icon_19086", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19086.xml", -1, -1), + )) + } + +internal val Res.drawable.icon_19087: DrawableResource by lazy { + DrawableResource("drawable:icon_19087", setOf( + ResourceItem(setOf(), "${MD}drawable/icon_19087.xml", -1, -1), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainDrawable100Resources(map: MutableMap) { + map.put("icon_18999", Res.drawable.icon_18999) + map.put("icon_19", Res.drawable.icon_19) + map.put("icon_190", Res.drawable.icon_190) + map.put("icon_1900", Res.drawable.icon_1900) + map.put("icon_19000", Res.drawable.icon_19000) + map.put("icon_19001", Res.drawable.icon_19001) + map.put("icon_19002", Res.drawable.icon_19002) + map.put("icon_19003", Res.drawable.icon_19003) + map.put("icon_19004", Res.drawable.icon_19004) + map.put("icon_19005", Res.drawable.icon_19005) + map.put("icon_19006", Res.drawable.icon_19006) + map.put("icon_19007", Res.drawable.icon_19007) + map.put("icon_19008", Res.drawable.icon_19008) + map.put("icon_19009", Res.drawable.icon_19009) + map.put("icon_1901", Res.drawable.icon_1901) + map.put("icon_19010", Res.drawable.icon_19010) + map.put("icon_19011", Res.drawable.icon_19011) + map.put("icon_19012", Res.drawable.icon_19012) + map.put("icon_19013", Res.drawable.icon_19013) + map.put("icon_19014", Res.drawable.icon_19014) + map.put("icon_19015", Res.drawable.icon_19015) + map.put("icon_19016", Res.drawable.icon_19016) + map.put("icon_19017", Res.drawable.icon_19017) + map.put("icon_19018", Res.drawable.icon_19018) + map.put("icon_19019", Res.drawable.icon_19019) + map.put("icon_1902", Res.drawable.icon_1902) + map.put("icon_19020", Res.drawable.icon_19020) + map.put("icon_19021", Res.drawable.icon_19021) + map.put("icon_19022", Res.drawable.icon_19022) + map.put("icon_19023", Res.drawable.icon_19023) + map.put("icon_19024", Res.drawable.icon_19024) + map.put("icon_19025", Res.drawable.icon_19025) + map.put("icon_19026", Res.drawable.icon_19026) + map.put("icon_19027", Res.drawable.icon_19027) + map.put("icon_19028", Res.drawable.icon_19028) + map.put("icon_19029", Res.drawable.icon_19029) + map.put("icon_1903", Res.drawable.icon_1903) + map.put("icon_19030", Res.drawable.icon_19030) + map.put("icon_19031", Res.drawable.icon_19031) + map.put("icon_19032", Res.drawable.icon_19032) + map.put("icon_19033", Res.drawable.icon_19033) + map.put("icon_19034", Res.drawable.icon_19034) + map.put("icon_19035", Res.drawable.icon_19035) + map.put("icon_19036", Res.drawable.icon_19036) + map.put("icon_19037", Res.drawable.icon_19037) + map.put("icon_19038", Res.drawable.icon_19038) + map.put("icon_19039", Res.drawable.icon_19039) + map.put("icon_1904", Res.drawable.icon_1904) + map.put("icon_19040", Res.drawable.icon_19040) + map.put("icon_19041", Res.drawable.icon_19041) + map.put("icon_19042", Res.drawable.icon_19042) + map.put("icon_19043", Res.drawable.icon_19043) + map.put("icon_19044", Res.drawable.icon_19044) + map.put("icon_19045", Res.drawable.icon_19045) + map.put("icon_19046", Res.drawable.icon_19046) + map.put("icon_19047", Res.drawable.icon_19047) + map.put("icon_19048", Res.drawable.icon_19048) + map.put("icon_19049", Res.drawable.icon_19049) + map.put("icon_1905", Res.drawable.icon_1905) + map.put("icon_19050", Res.drawable.icon_19050) + map.put("icon_19051", Res.drawable.icon_19051) + map.put("icon_19052", Res.drawable.icon_19052) + map.put("icon_19053", Res.drawable.icon_19053) + map.put("icon_19054", Res.drawable.icon_19054) + map.put("icon_19055", Res.drawable.icon_19055) + map.put("icon_19056", Res.drawable.icon_19056) + map.put("icon_19057", Res.drawable.icon_19057) + map.put("icon_19058", Res.drawable.icon_19058) + map.put("icon_19059", Res.drawable.icon_19059) + map.put("icon_1906", Res.drawable.icon_1906) + map.put("icon_19060", Res.drawable.icon_19060) + map.put("icon_19061", Res.drawable.icon_19061) + map.put("icon_19062", Res.drawable.icon_19062) + map.put("icon_19063", Res.drawable.icon_19063) + map.put("icon_19064", Res.drawable.icon_19064) + map.put("icon_19065", Res.drawable.icon_19065) + map.put("icon_19066", Res.drawable.icon_19066) + map.put("icon_19067", Res.drawable.icon_19067) + map.put("icon_19068", Res.drawable.icon_19068) + map.put("icon_19069", Res.drawable.icon_19069) + map.put("icon_1907", Res.drawable.icon_1907) + map.put("icon_19070", Res.drawable.icon_19070) + map.put("icon_19071", Res.drawable.icon_19071) + map.put("icon_19072", Res.drawable.icon_19072) + map.put("icon_19073", Res.drawable.icon_19073) + map.put("icon_19074", Res.drawable.icon_19074) + map.put("icon_19075", Res.drawable.icon_19075) + map.put("icon_19076", Res.drawable.icon_19076) + map.put("icon_19077", Res.drawable.icon_19077) + map.put("icon_19078", Res.drawable.icon_19078) + map.put("icon_19079", Res.drawable.icon_19079) + map.put("icon_1908", Res.drawable.icon_1908) + map.put("icon_19080", Res.drawable.icon_19080) + map.put("icon_19081", Res.drawable.icon_19081) + map.put("icon_19082", Res.drawable.icon_19082) + map.put("icon_19083", Res.drawable.icon_19083) + map.put("icon_19084", Res.drawable.icon_19084) + map.put("icon_19085", Res.drawable.icon_19085) + map.put("icon_19086", Res.drawable.icon_19086) + map.put("icon_19087", Res.drawable.icon_19087) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/String0.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/String0.commonMain.kt new file mode 100644 index 00000000000..bb8db19dcf3 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/String0.commonMain.kt @@ -0,0 +1,8718 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.huge.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.RegionQualifier +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.StringResource + +private const val MD: String = "composeResources/app.group.huge.generated.resources/" + +internal val Res.string.str_0: StringResource by lazy { + StringResource("string:str_0", "str_0", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 10, 21), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 10, 21), + )) + } + +internal val Res.string.str_1: StringResource by lazy { + StringResource("string:str_1", "str_1", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 332062, 21), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 332062, 21), + )) + } + +internal val Res.string.str_10: StringResource by lazy { + StringResource("string:str_10", "str_10", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 33212, 22), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 33212, 22), + )) + } + +internal val Res.string.str_100: StringResource by lazy { + StringResource("string:str_100", "str_100", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 3322, 27), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 3322, 27), + )) + } + +internal val Res.string.str_1000: StringResource by lazy { + StringResource("string:str_1000", "str_1000", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 332, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 332, 28), + )) + } + +internal val Res.string.str_10000: StringResource by lazy { + StringResource("string:str_10000", "str_10000", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 32, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 32, 29), + )) + } + +internal val Res.string.str_10001: StringResource by lazy { + StringResource("string:str_10001", "str_10001", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 62, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 62, 29), + )) + } + +internal val Res.string.str_10002: StringResource by lazy { + StringResource("string:str_10002", "str_10002", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 92, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 92, 29), + )) + } + +internal val Res.string.str_10003: StringResource by lazy { + StringResource("string:str_10003", "str_10003", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 122, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 122, 29), + )) + } + +internal val Res.string.str_10004: StringResource by lazy { + StringResource("string:str_10004", "str_10004", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 152, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 152, 29), + )) + } + +internal val Res.string.str_10005: StringResource by lazy { + StringResource("string:str_10005", "str_10005", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 182, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 182, 29), + )) + } + +internal val Res.string.str_10006: StringResource by lazy { + StringResource("string:str_10006", "str_10006", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 212, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 212, 29), + )) + } + +internal val Res.string.str_10007: StringResource by lazy { + StringResource("string:str_10007", "str_10007", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 242, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 242, 29), + )) + } + +internal val Res.string.str_10008: StringResource by lazy { + StringResource("string:str_10008", "str_10008", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 272, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 272, 29), + )) + } + +internal val Res.string.str_10009: StringResource by lazy { + StringResource("string:str_10009", "str_10009", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 302, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 302, 29), + )) + } + +internal val Res.string.str_1001: StringResource by lazy { + StringResource("string:str_1001", "str_1001", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 661, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 661, 28), + )) + } + +internal val Res.string.str_10010: StringResource by lazy { + StringResource("string:str_10010", "str_10010", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 361, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 361, 29), + )) + } + +internal val Res.string.str_10011: StringResource by lazy { + StringResource("string:str_10011", "str_10011", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 391, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 391, 29), + )) + } + +internal val Res.string.str_10012: StringResource by lazy { + StringResource("string:str_10012", "str_10012", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 421, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 421, 29), + )) + } + +internal val Res.string.str_10013: StringResource by lazy { + StringResource("string:str_10013", "str_10013", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 451, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 451, 29), + )) + } + +internal val Res.string.str_10014: StringResource by lazy { + StringResource("string:str_10014", "str_10014", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 481, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 481, 29), + )) + } + +internal val Res.string.str_10015: StringResource by lazy { + StringResource("string:str_10015", "str_10015", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 511, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 511, 29), + )) + } + +internal val Res.string.str_10016: StringResource by lazy { + StringResource("string:str_10016", "str_10016", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 541, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 541, 29), + )) + } + +internal val Res.string.str_10017: StringResource by lazy { + StringResource("string:str_10017", "str_10017", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 571, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 571, 29), + )) + } + +internal val Res.string.str_10018: StringResource by lazy { + StringResource("string:str_10018", "str_10018", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 601, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 601, 29), + )) + } + +internal val Res.string.str_10019: StringResource by lazy { + StringResource("string:str_10019", "str_10019", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 631, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 631, 29), + )) + } + +internal val Res.string.str_1002: StringResource by lazy { + StringResource("string:str_1002", "str_1002", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 990, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 990, 28), + )) + } + +internal val Res.string.str_10020: StringResource by lazy { + StringResource("string:str_10020", "str_10020", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 690, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 690, 29), + )) + } + +internal val Res.string.str_10021: StringResource by lazy { + StringResource("string:str_10021", "str_10021", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 720, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 720, 29), + )) + } + +internal val Res.string.str_10022: StringResource by lazy { + StringResource("string:str_10022", "str_10022", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 750, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 750, 29), + )) + } + +internal val Res.string.str_10023: StringResource by lazy { + StringResource("string:str_10023", "str_10023", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 780, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 780, 29), + )) + } + +internal val Res.string.str_10024: StringResource by lazy { + StringResource("string:str_10024", "str_10024", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 810, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 810, 29), + )) + } + +internal val Res.string.str_10025: StringResource by lazy { + StringResource("string:str_10025", "str_10025", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 840, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 840, 29), + )) + } + +internal val Res.string.str_10026: StringResource by lazy { + StringResource("string:str_10026", "str_10026", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 870, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 870, 29), + )) + } + +internal val Res.string.str_10027: StringResource by lazy { + StringResource("string:str_10027", "str_10027", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 900, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 900, 29), + )) + } + +internal val Res.string.str_10028: StringResource by lazy { + StringResource("string:str_10028", "str_10028", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 930, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 930, 29), + )) + } + +internal val Res.string.str_10029: StringResource by lazy { + StringResource("string:str_10029", "str_10029", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 960, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 960, 29), + )) + } + +internal val Res.string.str_1003: StringResource by lazy { + StringResource("string:str_1003", "str_1003", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1319, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1319, 28), + )) + } + +internal val Res.string.str_10030: StringResource by lazy { + StringResource("string:str_10030", "str_10030", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1019, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1019, 29), + )) + } + +internal val Res.string.str_10031: StringResource by lazy { + StringResource("string:str_10031", "str_10031", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1049, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1049, 29), + )) + } + +internal val Res.string.str_10032: StringResource by lazy { + StringResource("string:str_10032", "str_10032", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1079, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1079, 29), + )) + } + +internal val Res.string.str_10033: StringResource by lazy { + StringResource("string:str_10033", "str_10033", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1109, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1109, 29), + )) + } + +internal val Res.string.str_10034: StringResource by lazy { + StringResource("string:str_10034", "str_10034", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1139, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1139, 29), + )) + } + +internal val Res.string.str_10035: StringResource by lazy { + StringResource("string:str_10035", "str_10035", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1169, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1169, 29), + )) + } + +internal val Res.string.str_10036: StringResource by lazy { + StringResource("string:str_10036", "str_10036", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1199, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1199, 29), + )) + } + +internal val Res.string.str_10037: StringResource by lazy { + StringResource("string:str_10037", "str_10037", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1229, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1229, 29), + )) + } + +internal val Res.string.str_10038: StringResource by lazy { + StringResource("string:str_10038", "str_10038", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1259, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1259, 29), + )) + } + +internal val Res.string.str_10039: StringResource by lazy { + StringResource("string:str_10039", "str_10039", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1289, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1289, 29), + )) + } + +internal val Res.string.str_1004: StringResource by lazy { + StringResource("string:str_1004", "str_1004", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1648, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1648, 28), + )) + } + +internal val Res.string.str_10040: StringResource by lazy { + StringResource("string:str_10040", "str_10040", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1348, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1348, 29), + )) + } + +internal val Res.string.str_10041: StringResource by lazy { + StringResource("string:str_10041", "str_10041", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1378, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1378, 29), + )) + } + +internal val Res.string.str_10042: StringResource by lazy { + StringResource("string:str_10042", "str_10042", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1408, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1408, 29), + )) + } + +internal val Res.string.str_10043: StringResource by lazy { + StringResource("string:str_10043", "str_10043", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1438, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1438, 29), + )) + } + +internal val Res.string.str_10044: StringResource by lazy { + StringResource("string:str_10044", "str_10044", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1468, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1468, 29), + )) + } + +internal val Res.string.str_10045: StringResource by lazy { + StringResource("string:str_10045", "str_10045", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1498, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1498, 29), + )) + } + +internal val Res.string.str_10046: StringResource by lazy { + StringResource("string:str_10046", "str_10046", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1528, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1528, 29), + )) + } + +internal val Res.string.str_10047: StringResource by lazy { + StringResource("string:str_10047", "str_10047", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1558, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1558, 29), + )) + } + +internal val Res.string.str_10048: StringResource by lazy { + StringResource("string:str_10048", "str_10048", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1588, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1588, 29), + )) + } + +internal val Res.string.str_10049: StringResource by lazy { + StringResource("string:str_10049", "str_10049", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1618, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1618, 29), + )) + } + +internal val Res.string.str_1005: StringResource by lazy { + StringResource("string:str_1005", "str_1005", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1977, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1977, 28), + )) + } + +internal val Res.string.str_10050: StringResource by lazy { + StringResource("string:str_10050", "str_10050", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1677, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1677, 29), + )) + } + +internal val Res.string.str_10051: StringResource by lazy { + StringResource("string:str_10051", "str_10051", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1707, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1707, 29), + )) + } + +internal val Res.string.str_10052: StringResource by lazy { + StringResource("string:str_10052", "str_10052", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1737, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1737, 29), + )) + } + +internal val Res.string.str_10053: StringResource by lazy { + StringResource("string:str_10053", "str_10053", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1767, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1767, 29), + )) + } + +internal val Res.string.str_10054: StringResource by lazy { + StringResource("string:str_10054", "str_10054", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1797, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1797, 29), + )) + } + +internal val Res.string.str_10055: StringResource by lazy { + StringResource("string:str_10055", "str_10055", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1827, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1827, 29), + )) + } + +internal val Res.string.str_10056: StringResource by lazy { + StringResource("string:str_10056", "str_10056", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1857, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1857, 29), + )) + } + +internal val Res.string.str_10057: StringResource by lazy { + StringResource("string:str_10057", "str_10057", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1887, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1887, 29), + )) + } + +internal val Res.string.str_10058: StringResource by lazy { + StringResource("string:str_10058", "str_10058", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1917, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1917, 29), + )) + } + +internal val Res.string.str_10059: StringResource by lazy { + StringResource("string:str_10059", "str_10059", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 1947, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 1947, 29), + )) + } + +internal val Res.string.str_1006: StringResource by lazy { + StringResource("string:str_1006", "str_1006", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2306, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2306, 28), + )) + } + +internal val Res.string.str_10060: StringResource by lazy { + StringResource("string:str_10060", "str_10060", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2006, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2006, 29), + )) + } + +internal val Res.string.str_10061: StringResource by lazy { + StringResource("string:str_10061", "str_10061", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2036, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2036, 29), + )) + } + +internal val Res.string.str_10062: StringResource by lazy { + StringResource("string:str_10062", "str_10062", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2066, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2066, 29), + )) + } + +internal val Res.string.str_10063: StringResource by lazy { + StringResource("string:str_10063", "str_10063", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2096, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2096, 29), + )) + } + +internal val Res.string.str_10064: StringResource by lazy { + StringResource("string:str_10064", "str_10064", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2126, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2126, 29), + )) + } + +internal val Res.string.str_10065: StringResource by lazy { + StringResource("string:str_10065", "str_10065", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2156, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2156, 29), + )) + } + +internal val Res.string.str_10066: StringResource by lazy { + StringResource("string:str_10066", "str_10066", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2186, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2186, 29), + )) + } + +internal val Res.string.str_10067: StringResource by lazy { + StringResource("string:str_10067", "str_10067", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2216, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2216, 29), + )) + } + +internal val Res.string.str_10068: StringResource by lazy { + StringResource("string:str_10068", "str_10068", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2246, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2246, 29), + )) + } + +internal val Res.string.str_10069: StringResource by lazy { + StringResource("string:str_10069", "str_10069", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2276, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2276, 29), + )) + } + +internal val Res.string.str_1007: StringResource by lazy { + StringResource("string:str_1007", "str_1007", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2635, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2635, 28), + )) + } + +internal val Res.string.str_10070: StringResource by lazy { + StringResource("string:str_10070", "str_10070", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2335, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2335, 29), + )) + } + +internal val Res.string.str_10071: StringResource by lazy { + StringResource("string:str_10071", "str_10071", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2365, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2365, 29), + )) + } + +internal val Res.string.str_10072: StringResource by lazy { + StringResource("string:str_10072", "str_10072", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2395, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2395, 29), + )) + } + +internal val Res.string.str_10073: StringResource by lazy { + StringResource("string:str_10073", "str_10073", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2425, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2425, 29), + )) + } + +internal val Res.string.str_10074: StringResource by lazy { + StringResource("string:str_10074", "str_10074", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2455, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2455, 29), + )) + } + +internal val Res.string.str_10075: StringResource by lazy { + StringResource("string:str_10075", "str_10075", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2485, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2485, 29), + )) + } + +internal val Res.string.str_10076: StringResource by lazy { + StringResource("string:str_10076", "str_10076", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2515, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2515, 29), + )) + } + +internal val Res.string.str_10077: StringResource by lazy { + StringResource("string:str_10077", "str_10077", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2545, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2545, 29), + )) + } + +internal val Res.string.str_10078: StringResource by lazy { + StringResource("string:str_10078", "str_10078", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2575, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2575, 29), + )) + } + +internal val Res.string.str_10079: StringResource by lazy { + StringResource("string:str_10079", "str_10079", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2605, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2605, 29), + )) + } + +internal val Res.string.str_1008: StringResource by lazy { + StringResource("string:str_1008", "str_1008", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2964, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2964, 28), + )) + } + +internal val Res.string.str_10080: StringResource by lazy { + StringResource("string:str_10080", "str_10080", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2664, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2664, 29), + )) + } + +internal val Res.string.str_10081: StringResource by lazy { + StringResource("string:str_10081", "str_10081", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2694, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2694, 29), + )) + } + +internal val Res.string.str_10082: StringResource by lazy { + StringResource("string:str_10082", "str_10082", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2724, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2724, 29), + )) + } + +internal val Res.string.str_10083: StringResource by lazy { + StringResource("string:str_10083", "str_10083", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2754, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2754, 29), + )) + } + +internal val Res.string.str_10084: StringResource by lazy { + StringResource("string:str_10084", "str_10084", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2784, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2784, 29), + )) + } + +internal val Res.string.str_10085: StringResource by lazy { + StringResource("string:str_10085", "str_10085", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2814, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2814, 29), + )) + } + +internal val Res.string.str_10086: StringResource by lazy { + StringResource("string:str_10086", "str_10086", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 2844, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 2844, 29), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainString0Resources(map: MutableMap) { + map.put("str_0", Res.string.str_0) + map.put("str_1", Res.string.str_1) + map.put("str_10", Res.string.str_10) + map.put("str_100", Res.string.str_100) + map.put("str_1000", Res.string.str_1000) + map.put("str_10000", Res.string.str_10000) + map.put("str_10001", Res.string.str_10001) + map.put("str_10002", Res.string.str_10002) + map.put("str_10003", Res.string.str_10003) + map.put("str_10004", Res.string.str_10004) + map.put("str_10005", Res.string.str_10005) + map.put("str_10006", Res.string.str_10006) + map.put("str_10007", Res.string.str_10007) + map.put("str_10008", Res.string.str_10008) + map.put("str_10009", Res.string.str_10009) + map.put("str_1001", Res.string.str_1001) + map.put("str_10010", Res.string.str_10010) + map.put("str_10011", Res.string.str_10011) + map.put("str_10012", Res.string.str_10012) + map.put("str_10013", Res.string.str_10013) + map.put("str_10014", Res.string.str_10014) + map.put("str_10015", Res.string.str_10015) + map.put("str_10016", Res.string.str_10016) + map.put("str_10017", Res.string.str_10017) + map.put("str_10018", Res.string.str_10018) + map.put("str_10019", Res.string.str_10019) + map.put("str_1002", Res.string.str_1002) + map.put("str_10020", Res.string.str_10020) + map.put("str_10021", Res.string.str_10021) + map.put("str_10022", Res.string.str_10022) + map.put("str_10023", Res.string.str_10023) + map.put("str_10024", Res.string.str_10024) + map.put("str_10025", Res.string.str_10025) + map.put("str_10026", Res.string.str_10026) + map.put("str_10027", Res.string.str_10027) + map.put("str_10028", Res.string.str_10028) + map.put("str_10029", Res.string.str_10029) + map.put("str_1003", Res.string.str_1003) + map.put("str_10030", Res.string.str_10030) + map.put("str_10031", Res.string.str_10031) + map.put("str_10032", Res.string.str_10032) + map.put("str_10033", Res.string.str_10033) + map.put("str_10034", Res.string.str_10034) + map.put("str_10035", Res.string.str_10035) + map.put("str_10036", Res.string.str_10036) + map.put("str_10037", Res.string.str_10037) + map.put("str_10038", Res.string.str_10038) + map.put("str_10039", Res.string.str_10039) + map.put("str_1004", Res.string.str_1004) + map.put("str_10040", Res.string.str_10040) + map.put("str_10041", Res.string.str_10041) + map.put("str_10042", Res.string.str_10042) + map.put("str_10043", Res.string.str_10043) + map.put("str_10044", Res.string.str_10044) + map.put("str_10045", Res.string.str_10045) + map.put("str_10046", Res.string.str_10046) + map.put("str_10047", Res.string.str_10047) + map.put("str_10048", Res.string.str_10048) + map.put("str_10049", Res.string.str_10049) + map.put("str_1005", Res.string.str_1005) + map.put("str_10050", Res.string.str_10050) + map.put("str_10051", Res.string.str_10051) + map.put("str_10052", Res.string.str_10052) + map.put("str_10053", Res.string.str_10053) + map.put("str_10054", Res.string.str_10054) + map.put("str_10055", Res.string.str_10055) + map.put("str_10056", Res.string.str_10056) + map.put("str_10057", Res.string.str_10057) + map.put("str_10058", Res.string.str_10058) + map.put("str_10059", Res.string.str_10059) + map.put("str_1006", Res.string.str_1006) + map.put("str_10060", Res.string.str_10060) + map.put("str_10061", Res.string.str_10061) + map.put("str_10062", Res.string.str_10062) + map.put("str_10063", Res.string.str_10063) + map.put("str_10064", Res.string.str_10064) + map.put("str_10065", Res.string.str_10065) + map.put("str_10066", Res.string.str_10066) + map.put("str_10067", Res.string.str_10067) + map.put("str_10068", Res.string.str_10068) + map.put("str_10069", Res.string.str_10069) + map.put("str_1007", Res.string.str_1007) + map.put("str_10070", Res.string.str_10070) + map.put("str_10071", Res.string.str_10071) + map.put("str_10072", Res.string.str_10072) + map.put("str_10073", Res.string.str_10073) + map.put("str_10074", Res.string.str_10074) + map.put("str_10075", Res.string.str_10075) + map.put("str_10076", Res.string.str_10076) + map.put("str_10077", Res.string.str_10077) + map.put("str_10078", Res.string.str_10078) + map.put("str_10079", Res.string.str_10079) + map.put("str_1008", Res.string.str_1008) + map.put("str_10080", Res.string.str_10080) + map.put("str_10081", Res.string.str_10081) + map.put("str_10082", Res.string.str_10082) + map.put("str_10083", Res.string.str_10083) + map.put("str_10084", Res.string.str_10084) + map.put("str_10085", Res.string.str_10085) + map.put("str_10086", Res.string.str_10086) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/String100.commonMain.kt b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/String100.commonMain.kt new file mode 100644 index 00000000000..403ab8bdfa6 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/expected/String100.commonMain.kt @@ -0,0 +1,8718 @@ +@file:OptIn(InternalResourceApi::class) + +package app.group.huge.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.LanguageQualifier +import org.jetbrains.compose.resources.RegionQualifier +import org.jetbrains.compose.resources.ResourceItem +import org.jetbrains.compose.resources.StringResource + +private const val MD: String = "composeResources/app.group.huge.generated.resources/" + +internal val Res.string.str_18999: StringResource by lazy { + StringResource("string:str_18999", "str_18999", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 298749, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 298749, 29), + )) + } + +internal val Res.string.str_19: StringResource by lazy { + StringResource("string:str_19", "str_19", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 332039, 22), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 332039, 22), + )) + } + +internal val Res.string.str_190: StringResource by lazy { + StringResource("string:str_190", "str_190", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 302149, 27), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 302149, 27), + )) + } + +internal val Res.string.str_1900: StringResource by lazy { + StringResource("string:str_1900", "str_1900", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299159, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299159, 28), + )) + } + +internal val Res.string.str_19000: StringResource by lazy { + StringResource("string:str_19000", "str_19000", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 298859, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 298859, 29), + )) + } + +internal val Res.string.str_19001: StringResource by lazy { + StringResource("string:str_19001", "str_19001", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 298889, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 298889, 29), + )) + } + +internal val Res.string.str_19002: StringResource by lazy { + StringResource("string:str_19002", "str_19002", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 298919, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 298919, 29), + )) + } + +internal val Res.string.str_19003: StringResource by lazy { + StringResource("string:str_19003", "str_19003", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 298949, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 298949, 29), + )) + } + +internal val Res.string.str_19004: StringResource by lazy { + StringResource("string:str_19004", "str_19004", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 298979, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 298979, 29), + )) + } + +internal val Res.string.str_19005: StringResource by lazy { + StringResource("string:str_19005", "str_19005", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299009, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299009, 29), + )) + } + +internal val Res.string.str_19006: StringResource by lazy { + StringResource("string:str_19006", "str_19006", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299039, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299039, 29), + )) + } + +internal val Res.string.str_19007: StringResource by lazy { + StringResource("string:str_19007", "str_19007", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299069, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299069, 29), + )) + } + +internal val Res.string.str_19008: StringResource by lazy { + StringResource("string:str_19008", "str_19008", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299099, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299099, 29), + )) + } + +internal val Res.string.str_19009: StringResource by lazy { + StringResource("string:str_19009", "str_19009", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299129, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299129, 29), + )) + } + +internal val Res.string.str_1901: StringResource by lazy { + StringResource("string:str_1901", "str_1901", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299488, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299488, 28), + )) + } + +internal val Res.string.str_19010: StringResource by lazy { + StringResource("string:str_19010", "str_19010", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299188, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299188, 29), + )) + } + +internal val Res.string.str_19011: StringResource by lazy { + StringResource("string:str_19011", "str_19011", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299218, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299218, 29), + )) + } + +internal val Res.string.str_19012: StringResource by lazy { + StringResource("string:str_19012", "str_19012", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299248, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299248, 29), + )) + } + +internal val Res.string.str_19013: StringResource by lazy { + StringResource("string:str_19013", "str_19013", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299278, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299278, 29), + )) + } + +internal val Res.string.str_19014: StringResource by lazy { + StringResource("string:str_19014", "str_19014", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299308, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299308, 29), + )) + } + +internal val Res.string.str_19015: StringResource by lazy { + StringResource("string:str_19015", "str_19015", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299338, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299338, 29), + )) + } + +internal val Res.string.str_19016: StringResource by lazy { + StringResource("string:str_19016", "str_19016", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299368, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299368, 29), + )) + } + +internal val Res.string.str_19017: StringResource by lazy { + StringResource("string:str_19017", "str_19017", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299398, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299398, 29), + )) + } + +internal val Res.string.str_19018: StringResource by lazy { + StringResource("string:str_19018", "str_19018", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299428, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299428, 29), + )) + } + +internal val Res.string.str_19019: StringResource by lazy { + StringResource("string:str_19019", "str_19019", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299458, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299458, 29), + )) + } + +internal val Res.string.str_1902: StringResource by lazy { + StringResource("string:str_1902", "str_1902", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299817, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299817, 28), + )) + } + +internal val Res.string.str_19020: StringResource by lazy { + StringResource("string:str_19020", "str_19020", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299517, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299517, 29), + )) + } + +internal val Res.string.str_19021: StringResource by lazy { + StringResource("string:str_19021", "str_19021", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299547, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299547, 29), + )) + } + +internal val Res.string.str_19022: StringResource by lazy { + StringResource("string:str_19022", "str_19022", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299577, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299577, 29), + )) + } + +internal val Res.string.str_19023: StringResource by lazy { + StringResource("string:str_19023", "str_19023", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299607, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299607, 29), + )) + } + +internal val Res.string.str_19024: StringResource by lazy { + StringResource("string:str_19024", "str_19024", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299637, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299637, 29), + )) + } + +internal val Res.string.str_19025: StringResource by lazy { + StringResource("string:str_19025", "str_19025", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299667, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299667, 29), + )) + } + +internal val Res.string.str_19026: StringResource by lazy { + StringResource("string:str_19026", "str_19026", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299697, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299697, 29), + )) + } + +internal val Res.string.str_19027: StringResource by lazy { + StringResource("string:str_19027", "str_19027", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299727, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299727, 29), + )) + } + +internal val Res.string.str_19028: StringResource by lazy { + StringResource("string:str_19028", "str_19028", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299757, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299757, 29), + )) + } + +internal val Res.string.str_19029: StringResource by lazy { + StringResource("string:str_19029", "str_19029", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299787, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299787, 29), + )) + } + +internal val Res.string.str_1903: StringResource by lazy { + StringResource("string:str_1903", "str_1903", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300146, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300146, 28), + )) + } + +internal val Res.string.str_19030: StringResource by lazy { + StringResource("string:str_19030", "str_19030", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299846, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299846, 29), + )) + } + +internal val Res.string.str_19031: StringResource by lazy { + StringResource("string:str_19031", "str_19031", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299876, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299876, 29), + )) + } + +internal val Res.string.str_19032: StringResource by lazy { + StringResource("string:str_19032", "str_19032", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299906, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299906, 29), + )) + } + +internal val Res.string.str_19033: StringResource by lazy { + StringResource("string:str_19033", "str_19033", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299936, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299936, 29), + )) + } + +internal val Res.string.str_19034: StringResource by lazy { + StringResource("string:str_19034", "str_19034", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299966, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299966, 29), + )) + } + +internal val Res.string.str_19035: StringResource by lazy { + StringResource("string:str_19035", "str_19035", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 299996, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 299996, 29), + )) + } + +internal val Res.string.str_19036: StringResource by lazy { + StringResource("string:str_19036", "str_19036", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300026, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300026, 29), + )) + } + +internal val Res.string.str_19037: StringResource by lazy { + StringResource("string:str_19037", "str_19037", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300056, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300056, 29), + )) + } + +internal val Res.string.str_19038: StringResource by lazy { + StringResource("string:str_19038", "str_19038", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300086, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300086, 29), + )) + } + +internal val Res.string.str_19039: StringResource by lazy { + StringResource("string:str_19039", "str_19039", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300116, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300116, 29), + )) + } + +internal val Res.string.str_1904: StringResource by lazy { + StringResource("string:str_1904", "str_1904", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300475, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300475, 28), + )) + } + +internal val Res.string.str_19040: StringResource by lazy { + StringResource("string:str_19040", "str_19040", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300175, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300175, 29), + )) + } + +internal val Res.string.str_19041: StringResource by lazy { + StringResource("string:str_19041", "str_19041", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300205, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300205, 29), + )) + } + +internal val Res.string.str_19042: StringResource by lazy { + StringResource("string:str_19042", "str_19042", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300235, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300235, 29), + )) + } + +internal val Res.string.str_19043: StringResource by lazy { + StringResource("string:str_19043", "str_19043", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300265, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300265, 29), + )) + } + +internal val Res.string.str_19044: StringResource by lazy { + StringResource("string:str_19044", "str_19044", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300295, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300295, 29), + )) + } + +internal val Res.string.str_19045: StringResource by lazy { + StringResource("string:str_19045", "str_19045", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300325, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300325, 29), + )) + } + +internal val Res.string.str_19046: StringResource by lazy { + StringResource("string:str_19046", "str_19046", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300355, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300355, 29), + )) + } + +internal val Res.string.str_19047: StringResource by lazy { + StringResource("string:str_19047", "str_19047", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300385, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300385, 29), + )) + } + +internal val Res.string.str_19048: StringResource by lazy { + StringResource("string:str_19048", "str_19048", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300415, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300415, 29), + )) + } + +internal val Res.string.str_19049: StringResource by lazy { + StringResource("string:str_19049", "str_19049", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300445, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300445, 29), + )) + } + +internal val Res.string.str_1905: StringResource by lazy { + StringResource("string:str_1905", "str_1905", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300804, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300804, 28), + )) + } + +internal val Res.string.str_19050: StringResource by lazy { + StringResource("string:str_19050", "str_19050", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300504, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300504, 29), + )) + } + +internal val Res.string.str_19051: StringResource by lazy { + StringResource("string:str_19051", "str_19051", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300534, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300534, 29), + )) + } + +internal val Res.string.str_19052: StringResource by lazy { + StringResource("string:str_19052", "str_19052", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300564, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300564, 29), + )) + } + +internal val Res.string.str_19053: StringResource by lazy { + StringResource("string:str_19053", "str_19053", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300594, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300594, 29), + )) + } + +internal val Res.string.str_19054: StringResource by lazy { + StringResource("string:str_19054", "str_19054", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300624, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300624, 29), + )) + } + +internal val Res.string.str_19055: StringResource by lazy { + StringResource("string:str_19055", "str_19055", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300654, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300654, 29), + )) + } + +internal val Res.string.str_19056: StringResource by lazy { + StringResource("string:str_19056", "str_19056", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300684, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300684, 29), + )) + } + +internal val Res.string.str_19057: StringResource by lazy { + StringResource("string:str_19057", "str_19057", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300714, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300714, 29), + )) + } + +internal val Res.string.str_19058: StringResource by lazy { + StringResource("string:str_19058", "str_19058", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300744, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300744, 29), + )) + } + +internal val Res.string.str_19059: StringResource by lazy { + StringResource("string:str_19059", "str_19059", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300774, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300774, 29), + )) + } + +internal val Res.string.str_1906: StringResource by lazy { + StringResource("string:str_1906", "str_1906", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301133, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301133, 28), + )) + } + +internal val Res.string.str_19060: StringResource by lazy { + StringResource("string:str_19060", "str_19060", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300833, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300833, 29), + )) + } + +internal val Res.string.str_19061: StringResource by lazy { + StringResource("string:str_19061", "str_19061", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300863, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300863, 29), + )) + } + +internal val Res.string.str_19062: StringResource by lazy { + StringResource("string:str_19062", "str_19062", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300893, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300893, 29), + )) + } + +internal val Res.string.str_19063: StringResource by lazy { + StringResource("string:str_19063", "str_19063", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300923, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300923, 29), + )) + } + +internal val Res.string.str_19064: StringResource by lazy { + StringResource("string:str_19064", "str_19064", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300953, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300953, 29), + )) + } + +internal val Res.string.str_19065: StringResource by lazy { + StringResource("string:str_19065", "str_19065", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 300983, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 300983, 29), + )) + } + +internal val Res.string.str_19066: StringResource by lazy { + StringResource("string:str_19066", "str_19066", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301013, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301013, 29), + )) + } + +internal val Res.string.str_19067: StringResource by lazy { + StringResource("string:str_19067", "str_19067", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301043, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301043, 29), + )) + } + +internal val Res.string.str_19068: StringResource by lazy { + StringResource("string:str_19068", "str_19068", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301073, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301073, 29), + )) + } + +internal val Res.string.str_19069: StringResource by lazy { + StringResource("string:str_19069", "str_19069", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301103, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301103, 29), + )) + } + +internal val Res.string.str_1907: StringResource by lazy { + StringResource("string:str_1907", "str_1907", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301462, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301462, 28), + )) + } + +internal val Res.string.str_19070: StringResource by lazy { + StringResource("string:str_19070", "str_19070", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301162, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301162, 29), + )) + } + +internal val Res.string.str_19071: StringResource by lazy { + StringResource("string:str_19071", "str_19071", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301192, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301192, 29), + )) + } + +internal val Res.string.str_19072: StringResource by lazy { + StringResource("string:str_19072", "str_19072", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301222, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301222, 29), + )) + } + +internal val Res.string.str_19073: StringResource by lazy { + StringResource("string:str_19073", "str_19073", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301252, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301252, 29), + )) + } + +internal val Res.string.str_19074: StringResource by lazy { + StringResource("string:str_19074", "str_19074", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301282, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301282, 29), + )) + } + +internal val Res.string.str_19075: StringResource by lazy { + StringResource("string:str_19075", "str_19075", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301312, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301312, 29), + )) + } + +internal val Res.string.str_19076: StringResource by lazy { + StringResource("string:str_19076", "str_19076", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301342, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301342, 29), + )) + } + +internal val Res.string.str_19077: StringResource by lazy { + StringResource("string:str_19077", "str_19077", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301372, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301372, 29), + )) + } + +internal val Res.string.str_19078: StringResource by lazy { + StringResource("string:str_19078", "str_19078", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301402, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301402, 29), + )) + } + +internal val Res.string.str_19079: StringResource by lazy { + StringResource("string:str_19079", "str_19079", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301432, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301432, 29), + )) + } + +internal val Res.string.str_1908: StringResource by lazy { + StringResource("string:str_1908", "str_1908", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301791, 28), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301791, 28), + )) + } + +internal val Res.string.str_19080: StringResource by lazy { + StringResource("string:str_19080", "str_19080", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301491, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301491, 29), + )) + } + +internal val Res.string.str_19081: StringResource by lazy { + StringResource("string:str_19081", "str_19081", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301521, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301521, 29), + )) + } + +internal val Res.string.str_19082: StringResource by lazy { + StringResource("string:str_19082", "str_19082", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301551, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301551, 29), + )) + } + +internal val Res.string.str_19083: StringResource by lazy { + StringResource("string:str_19083", "str_19083", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301581, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301581, 29), + )) + } + +internal val Res.string.str_19084: StringResource by lazy { + StringResource("string:str_19084", "str_19084", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301611, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301611, 29), + )) + } + +internal val Res.string.str_19085: StringResource by lazy { + StringResource("string:str_19085", "str_19085", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301641, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301641, 29), + )) + } + +internal val Res.string.str_19086: StringResource by lazy { + StringResource("string:str_19086", "str_19086", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301671, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301671, 29), + )) + } + +internal val Res.string.str_19087: StringResource by lazy { + StringResource("string:str_19087", "str_19087", setOf( + ResourceItem(setOf(LanguageQualifier("af"), ), "${MD}values-af/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("am"), ), "${MD}values-am/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ar"), ), "${MD}values-ar/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("as"), ), "${MD}values-as/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("az"), ), "${MD}values-az/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("be"), ), "${MD}values-be/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("bg"), ), "${MD}values-bg/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("bn"), ), "${MD}values-bn/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("bs"), ), "${MD}values-bs/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ca"), ), "${MD}values-ca/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("cs"), ), "${MD}values-cs/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("da"), ), "${MD}values-da/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("de"), ), "${MD}values-de/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("el"), ), "${MD}values-el/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("GB"), ), "${MD}values-en-rGB/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("en"), RegionQualifier("IN"), ), "${MD}values-en-rIN/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("es"), RegionQualifier("US"), ), "${MD}values-es-rUS/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("es"), ), "${MD}values-es/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("et"), ), "${MD}values-et/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("eu"), ), "${MD}values-eu/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("fa"), ), "${MD}values-fa/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("fi"), ), "${MD}values-fi/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("fr"), RegionQualifier("CA"), ), "${MD}values-fr-rCA/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("fr"), ), "${MD}values-fr/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("gl"), ), "${MD}values-gl/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("gu"), ), "${MD}values-gu/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("hi"), ), "${MD}values-hi/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("hr"), ), "${MD}values-hr/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("hu"), ), "${MD}values-hu/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("hy"), ), "${MD}values-hy/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("in"), ), "${MD}values-in/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("is"), ), "${MD}values-is/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("it"), ), "${MD}values-it/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("iw"), ), "${MD}values-iw/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ja"), ), "${MD}values-ja/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ka"), ), "${MD}values-ka/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("kk"), ), "${MD}values-kk/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("km"), ), "${MD}values-km/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("kn"), ), "${MD}values-kn/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ko"), ), "${MD}values-ko/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ky"), ), "${MD}values-ky/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("lo"), ), "${MD}values-lo/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("lt"), ), "${MD}values-lt/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("lv"), ), "${MD}values-lv/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("mk"), ), "${MD}values-mk/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ml"), ), "${MD}values-ml/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("mn"), ), "${MD}values-mn/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("mr"), ), "${MD}values-mr/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ms"), ), "${MD}values-ms/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("my"), ), "${MD}values-my/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("nb"), ), "${MD}values-nb/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ne"), ), "${MD}values-ne/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("nl"), ), "${MD}values-nl/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("or"), ), "${MD}values-or/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("pa"), ), "${MD}values-pa/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("pl"), ), "${MD}values-pl/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("BR"), ), "${MD}values-pt-rBR/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("pt"), RegionQualifier("PT"), ), "${MD}values-pt-rPT/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("pt"), ), "${MD}values-pt/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ro"), ), "${MD}values-ro/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ru"), ), "${MD}values-ru/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("si"), ), "${MD}values-si/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("sk"), ), "${MD}values-sk/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("sl"), ), "${MD}values-sl/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("sq"), ), "${MD}values-sq/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("sr"), ), "${MD}values-sr/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("sv"), ), "${MD}values-sv/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("sw"), ), "${MD}values-sw/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ta"), ), "${MD}values-ta/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("te"), ), "${MD}values-te/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("th"), ), "${MD}values-th/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("tl"), ), "${MD}values-tl/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("tr"), ), "${MD}values-tr/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("uk"), ), "${MD}values-uk/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("ur"), ), "${MD}values-ur/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("uz"), ), "${MD}values-uz/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("vi"), ), "${MD}values-vi/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("CN"), ), "${MD}values-zh-rCN/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("HK"), ), "${MD}values-zh-rHK/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(LanguageQualifier("zh"), RegionQualifier("TW"), ), "${MD}values-zh-rTW/strings.commonMain.cvr", 301701, 29), + ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 301701, 29), + )) + } + +@InternalResourceApi +internal fun _collectCommonMainString100Resources(map: MutableMap) { + map.put("str_18999", Res.string.str_18999) + map.put("str_19", Res.string.str_19) + map.put("str_190", Res.string.str_190) + map.put("str_1900", Res.string.str_1900) + map.put("str_19000", Res.string.str_19000) + map.put("str_19001", Res.string.str_19001) + map.put("str_19002", Res.string.str_19002) + map.put("str_19003", Res.string.str_19003) + map.put("str_19004", Res.string.str_19004) + map.put("str_19005", Res.string.str_19005) + map.put("str_19006", Res.string.str_19006) + map.put("str_19007", Res.string.str_19007) + map.put("str_19008", Res.string.str_19008) + map.put("str_19009", Res.string.str_19009) + map.put("str_1901", Res.string.str_1901) + map.put("str_19010", Res.string.str_19010) + map.put("str_19011", Res.string.str_19011) + map.put("str_19012", Res.string.str_19012) + map.put("str_19013", Res.string.str_19013) + map.put("str_19014", Res.string.str_19014) + map.put("str_19015", Res.string.str_19015) + map.put("str_19016", Res.string.str_19016) + map.put("str_19017", Res.string.str_19017) + map.put("str_19018", Res.string.str_19018) + map.put("str_19019", Res.string.str_19019) + map.put("str_1902", Res.string.str_1902) + map.put("str_19020", Res.string.str_19020) + map.put("str_19021", Res.string.str_19021) + map.put("str_19022", Res.string.str_19022) + map.put("str_19023", Res.string.str_19023) + map.put("str_19024", Res.string.str_19024) + map.put("str_19025", Res.string.str_19025) + map.put("str_19026", Res.string.str_19026) + map.put("str_19027", Res.string.str_19027) + map.put("str_19028", Res.string.str_19028) + map.put("str_19029", Res.string.str_19029) + map.put("str_1903", Res.string.str_1903) + map.put("str_19030", Res.string.str_19030) + map.put("str_19031", Res.string.str_19031) + map.put("str_19032", Res.string.str_19032) + map.put("str_19033", Res.string.str_19033) + map.put("str_19034", Res.string.str_19034) + map.put("str_19035", Res.string.str_19035) + map.put("str_19036", Res.string.str_19036) + map.put("str_19037", Res.string.str_19037) + map.put("str_19038", Res.string.str_19038) + map.put("str_19039", Res.string.str_19039) + map.put("str_1904", Res.string.str_1904) + map.put("str_19040", Res.string.str_19040) + map.put("str_19041", Res.string.str_19041) + map.put("str_19042", Res.string.str_19042) + map.put("str_19043", Res.string.str_19043) + map.put("str_19044", Res.string.str_19044) + map.put("str_19045", Res.string.str_19045) + map.put("str_19046", Res.string.str_19046) + map.put("str_19047", Res.string.str_19047) + map.put("str_19048", Res.string.str_19048) + map.put("str_19049", Res.string.str_19049) + map.put("str_1905", Res.string.str_1905) + map.put("str_19050", Res.string.str_19050) + map.put("str_19051", Res.string.str_19051) + map.put("str_19052", Res.string.str_19052) + map.put("str_19053", Res.string.str_19053) + map.put("str_19054", Res.string.str_19054) + map.put("str_19055", Res.string.str_19055) + map.put("str_19056", Res.string.str_19056) + map.put("str_19057", Res.string.str_19057) + map.put("str_19058", Res.string.str_19058) + map.put("str_19059", Res.string.str_19059) + map.put("str_1906", Res.string.str_1906) + map.put("str_19060", Res.string.str_19060) + map.put("str_19061", Res.string.str_19061) + map.put("str_19062", Res.string.str_19062) + map.put("str_19063", Res.string.str_19063) + map.put("str_19064", Res.string.str_19064) + map.put("str_19065", Res.string.str_19065) + map.put("str_19066", Res.string.str_19066) + map.put("str_19067", Res.string.str_19067) + map.put("str_19068", Res.string.str_19068) + map.put("str_19069", Res.string.str_19069) + map.put("str_1907", Res.string.str_1907) + map.put("str_19070", Res.string.str_19070) + map.put("str_19071", Res.string.str_19071) + map.put("str_19072", Res.string.str_19072) + map.put("str_19073", Res.string.str_19073) + map.put("str_19074", Res.string.str_19074) + map.put("str_19075", Res.string.str_19075) + map.put("str_19076", Res.string.str_19076) + map.put("str_19077", Res.string.str_19077) + map.put("str_19078", Res.string.str_19078) + map.put("str_19079", Res.string.str_19079) + map.put("str_1908", Res.string.str_1908) + map.put("str_19080", Res.string.str_19080) + map.put("str_19081", Res.string.str_19081) + map.put("str_19082", Res.string.str_19082) + map.put("str_19083", Res.string.str_19083) + map.put("str_19084", Res.string.str_19084) + map.put("str_19085", Res.string.str_19085) + map.put("str_19086", Res.string.str_19086) + map.put("str_19087", Res.string.str_19087) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/gradle.properties new file mode 100644 index 00000000000..010231719ad --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8096M +org.jetbrains.compose.resources.content.hash.generation.disable=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/settings.gradle.kts new file mode 100644 index 00000000000..f9add8bc5ac --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/hugeResources/settings.gradle.kts @@ -0,0 +1,23 @@ +rootProject.name = "huge" +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + google() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + } + plugins { + id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") + } +} +dependencyResolutionManagement { + repositories { + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + mavenCentral() + gradlePluginPortal() + google() + mavenLocal() + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts deleted file mode 100644 index daeacab6216..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/build.gradle.kts +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - kotlin("multiplatform") - kotlin("native.cocoapods") - id("org.jetbrains.compose") -} - -kotlin { - cocoapods { - version = "1.0" - summary = "Some description for a Kotlin/Native module" - homepage = "Link to a Kotlin/Native module homepage" - pod("Base64", "1.1.2") - framework { - baseName = "shared" - isStatic = true - } - } - - iosX64() - iosArm64() - iosSimulatorArm64() - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - implementation(compose.material) - implementation(compose.components.resources) - } - } - } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec deleted file mode 100644 index f08c84b9586..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/expected/iosResources.podspec +++ /dev/null @@ -1,50 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = 'iosResources' - spec.version = '1.0' - spec.homepage = 'Link to a Kotlin/Native module homepage' - spec.source = { :http=> ''} - spec.authors = '' - spec.license = '' - spec.summary = 'Some description for a Kotlin/Native module' - spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework' - spec.libraries = 'c++' - - spec.dependency 'Base64', '1.1.2' - - if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') - raise " - - Kotlin framework 'shared' doesn't exist yet, so a proper Xcode project can't be generated. - 'pod install' should be executed after running ':generateDummyFramework' Gradle task: - - ./gradlew :generateDummyFramework - - Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" - end - - spec.pod_target_xcconfig = { - 'KOTLIN_PROJECT_PATH' => '', - 'PRODUCT_MODULE_NAME' => 'shared', - } - - spec.script_phases = [ - { - :name => 'Build iosResources', - :execution_position => :before_compile, - :shell_path => '/bin/sh', - :script => <<-SCRIPT - if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then - echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"" - exit 0 - fi - set -ev - REPO_ROOT="$PODS_TARGET_SRCROOT" - "$REPO_ROOT/gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ - -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \ - -Pkotlin.native.cocoapods.archs="$ARCHS" \ - -Pkotlin.native.cocoapods.configuration="$CONFIGURATION" - SCRIPT - } - ] - spec.resources = ['build/compose/cocoapods/compose-resources'] -end \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/gradle.properties deleted file mode 100644 index 695204ddbfe..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -org.gradle.jvmargs=-Xmx8096M -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts deleted file mode 100644 index 5efe902b203..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/settings.gradle.kts +++ /dev/null @@ -1,23 +0,0 @@ -rootProject.name = "iosResources" -pluginManagement { - repositories { - mavenLocal() - gradlePluginPortal() - google() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } - plugins { - id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") - id("org.jetbrains.kotlin.native.cocoapods").version("KOTLIN_VERSION_PLACEHOLDER") - id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") - } -} -dependencyResolutionManagement { - repositories { - mavenLocal() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - mavenCentral() - gradlePluginPortal() - google() - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/commonMain/kotlin/App.kt deleted file mode 100644 index 17641ca754c..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/iosResources/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,39 +0,0 @@ -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import org.jetbrains.compose.resources.ExperimentalResourceApi -import org.jetbrains.compose.resources.painterResource -import iosResources.generated.resources.* - -@OptIn(ExperimentalResourceApi::class) -@Composable -fun App() { - MaterialTheme { - var greetingText by remember { mutableStateOf("Hello, World!") } - var showImage by remember { mutableStateOf(false) } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - Button(onClick = { - showImage = !showImage - }) { - Text(greetingText) - } - AnimatedVisibility(showImage) { - Image( - painterResource(Res.drawable.compose_multiplatform), - null - ) - } - } - } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle index e409ff5ffce..53e1c745829 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle index afca8638e99..a749850576e 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jsMpp/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "jsMpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts index 269826d5752..57abbb99b62 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("org.jetbrains.compose") + kotlin("plugin.compose") kotlin("jvm") } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/commonResClass/me/app/jvmonlyresources/generated/resources/Res.kt b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/commonResClass/me/app/jvmonlyresources/generated/resources/Res.kt index 7004b885d85..a49b0252f1c 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/commonResClass/me/app/jvmonlyresources/generated/resources/Res.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/commonResClass/me/app/jvmonlyresources/generated/resources/Res.kt @@ -1,6 +1,7 @@ -@file:OptIn( - org.jetbrains.compose.resources.InternalResourceApi::class, - org.jetbrains.compose.resources.ExperimentalResourceApi::class, +@file:OptIn(InternalResourceApi::class) +@file:Suppress( + "RedundantVisibilityModifier", + "REDUNDANT_VISIBILITY_MODIFIER", ) package me.app.jvmonlyresources.generated.resources @@ -8,40 +9,39 @@ package me.app.jvmonlyresources.generated.resources import kotlin.ByteArray import kotlin.OptIn import kotlin.String -import org.jetbrains.compose.resources.ExperimentalResourceApi +import kotlin.Suppress +import org.jetbrains.compose.resources.InternalResourceApi import org.jetbrains.compose.resources.getResourceUri import org.jetbrains.compose.resources.readResourceBytes internal object Res { - /** - * Reads the content of the resource file at the specified path and returns it as a byte array. - * - * Example: `val bytes = Res.readBytes("files/key.bin")` - * - * @param path The path of the file to read in the compose resource's directory. - * @return The content of the file as a byte array. - */ - @ExperimentalResourceApi - public suspend fun readBytes(path: String): ByteArray = readResourceBytes("" + path) - - /** - * Returns the URI string of the resource file at the specified path. - * - * Example: `val uri = Res.getUri("files/key.bin")` - * - * @param path The path of the file in the compose resource's directory. - * @return The URI string of the file. - */ - @ExperimentalResourceApi - public fun getUri(path: String): String = getResourceUri("" + path) - - public object drawable - - public object string - - public object array - - public object plurals - - public object font -} \ No newline at end of file + /** + * Reads the content of the resource file at the specified path and returns it as a byte array. + * + * Example: `val bytes = Res.readBytes("files/key.bin")` + * + * @param path The path of the file to read in the compose resource's directory. + * @return The content of the file as a byte array. + */ + public suspend fun readBytes(path: String): ByteArray = readResourceBytes("composeResources/me.app.jvmonlyresources.generated.resources/" + path) + + /** + * Returns the URI string of the resource file at the specified path. + * + * Example: `val uri = Res.getUri("files/key.bin")` + * + * @param path The path of the file in the compose resource's directory. + * @return The URI string of the file. + */ + public fun getUri(path: String): String = getResourceUri("composeResources/me.app.jvmonlyresources.generated.resources/" + path) + + public object drawable + + public object string + + public object array + + public object plurals + + public object font +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceAccessors/me/app/jvmonlyresources/generated/resources/Drawable0.main.kt b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceAccessors/me/app/jvmonlyresources/generated/resources/Drawable0.main.kt index 98f4998f2b1..40cc48c3fca 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceAccessors/me/app/jvmonlyresources/generated/resources/Drawable0.main.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceAccessors/me/app/jvmonlyresources/generated/resources/Drawable0.main.kt @@ -1,21 +1,23 @@ -@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) +@file:OptIn(InternalResourceApi::class) package me.app.jvmonlyresources.generated.resources import kotlin.OptIn +import kotlin.String +import kotlin.collections.MutableMap import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.InternalResourceApi +import org.jetbrains.compose.resources.ResourceItem -private object MainDrawable0 { - public val vector: DrawableResource by - lazy { init_vector() } -} +private const val MD: String = "composeResources/me.app.jvmonlyresources.generated.resources/" -internal val Res.drawable.vector: DrawableResource - get() = MainDrawable0.vector +internal val Res.drawable.vector: DrawableResource by lazy { + DrawableResource("drawable:vector", setOf( + ResourceItem(setOf(), "${MD}drawable/vector.xml", -1, -1), + )) + } -private fun init_vector(): DrawableResource = org.jetbrains.compose.resources.DrawableResource( - "drawable:vector", - setOf( - org.jetbrains.compose.resources.ResourceItem(setOf(), "drawable/vector.xml", -1, -1), - ) -) \ No newline at end of file +@InternalResourceApi +internal fun _collectMainDrawable0Resources(map: MutableMap) { + map.put("vector", Res.drawable.vector) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceCollectors/me/app/jvmonlyresources/generated/resources/ActualResourceCollectors.kt b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceCollectors/me/app/jvmonlyresources/generated/resources/ActualResourceCollectors.kt new file mode 100644 index 00000000000..1f7529d4e5a --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/expected/mainResourceCollectors/me/app/jvmonlyresources/generated/resources/ActualResourceCollectors.kt @@ -0,0 +1,38 @@ +@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class) + +package me.app.jvmonlyresources.generated.resources + +import kotlin.OptIn +import kotlin.String +import kotlin.collections.Map +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.FontResource +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringArrayResource +import org.jetbrains.compose.resources.StringResource + +internal val Res.allDrawableResources: Map by lazy { + val map = mutableMapOf() + _collectMainDrawable0Resources(map) + return@lazy map +} + +internal val Res.allStringResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal val Res.allStringArrayResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal val Res.allPluralStringResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} + +internal val Res.allFontResources: Map by lazy { + val map = mutableMapOf() + return@lazy map +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/gradle.properties index c13202c0d57..010231719ad 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/gradle.properties +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/gradle.properties @@ -1 +1,2 @@ -org.gradle.jvmargs=-Xmx8096M \ No newline at end of file +org.gradle.jvmargs=-Xmx8096M +org.jetbrains.compose.resources.content.hash.generation.disable=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts index db2097cc90f..1517f3e341d 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/settings.gradle.kts @@ -8,15 +8,16 @@ pluginManagement { } plugins { id("org.jetbrains.kotlin.jvm").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") } } dependencyResolutionManagement { repositories { - mavenLocal() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") mavenCentral() gradlePluginPortal() google() + mavenLocal() } } \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/src/main/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/src/main/kotlin/App.kt index 95a50793528..4f007f24e57 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/src/main/kotlin/App.kt +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmOnlyResources/src/main/kotlin/App.kt @@ -4,7 +4,6 @@ import me.app.jvmonlyresources.generated.resources.Res import me.app.jvmonlyresources.generated.resources.vector import org.jetbrains.compose.resources.* -@OptIn(ExperimentalResourceApi::class) @Composable fun App() { Image( diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle index af37d00512d..420faf2b991 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/common/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.multiplatform' + id 'org.jetbrains.kotlin.plugin.compose' id 'org.jetbrains.compose' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle index 75721fd9c7f..80b5af1c9c6 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/jvm/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.jvm' + id 'org.jetbrains.kotlin.plugin.compose' id 'org.jetbrains.compose' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle index 884f35288fb..a567a308bbb 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/mpp/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.jetbrains.kotlin.multiplatform' + id 'org.jetbrains.kotlin.plugin.compose' id 'org.jetbrains.compose' } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle index 11b571ba965..b2a695a9a3a 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/jvmPreview/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } @@ -16,12 +17,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = 'jvmPreview' diff --git a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/build.gradle.kts index aac9ee2149d..a05c6eb2a8d 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/build.gradle.kts @@ -13,16 +13,12 @@ kotlin { iosX64() iosArm64() iosSimulatorArm64() + macosX64() + macosArm64() js { browser() } wasmJs { browser() } sourceSets { - all { - languageSettings { - optIn("org.jetbrains.compose.resources.ExperimentalResourceApi") - } - } - commonMain.dependencies { implementation(compose.runtime) implementation(compose.material3) @@ -45,12 +41,12 @@ kotlin { android { namespace = "me.sample.app" - compileSdk = 34 + compileSdk = 35 sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { applicationId = "org.example.project" minSdk = 24 - targetSdk = 34 + targetSdk = 35 versionCode = 1 versionName = "1.0" } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/src/macosMain/composeResources/values/macos_strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/src/macosMain/composeResources/values/macos_strings.xml new file mode 100644 index 00000000000..f9f89e586b9 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/src/macosMain/composeResources/values/macos_strings.xml @@ -0,0 +1,3 @@ + + macOS string + \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/src/macosMain/kotlin/me/sample/app/App.macos.kt b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/src/macosMain/kotlin/me/sample/app/App.macos.kt new file mode 100644 index 00000000000..4a4927ee009 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/appModule/src/macosMain/kotlin/me/sample/app/App.macos.kt @@ -0,0 +1,10 @@ +package me.sample.app + +import androidx.compose.runtime.Composable +import kmpresourcepublication.appmodule.generated.resources.Res +import kmpresourcepublication.appmodule.generated.resources.macOS_str +import org.jetbrains.compose.resources.stringResource + +@Composable +actual fun getPlatformSpecificString(): String = + stringResource(Res.string.macOS_str) \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/cmplib/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/cmplib/build.gradle.kts index ed9522a57c2..a7a363c44ed 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/cmplib/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/cmplib/build.gradle.kts @@ -22,15 +22,12 @@ kotlin { iosX64() iosArm64() iosSimulatorArm64() + macosX64() + macosArm64() js { browser() } wasmJs { browser() } sourceSets { - all { - languageSettings { - optIn("org.jetbrains.compose.resources.ExperimentalResourceApi") - } - } commonMain.dependencies { implementation(compose.runtime) implementation(compose.material3) @@ -41,7 +38,7 @@ kotlin { android { namespace = "me.sample.library" - compileSdk = 34 + compileSdk = 35 defaultConfig { minSdk = 24 } diff --git a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/featureModule/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/featureModule/build.gradle.kts index 3d239458d84..924dfe85a70 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/featureModule/build.gradle.kts +++ b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/featureModule/build.gradle.kts @@ -11,15 +11,12 @@ kotlin { iosX64() iosArm64() iosSimulatorArm64() + macosX64() + macosArm64() js { browser() } wasmJs { browser() } sourceSets { - all { - languageSettings { - optIn("org.jetbrains.compose.resources.ExperimentalResourceApi") - } - } commonMain.dependencies { implementation(compose.runtime) implementation(compose.material3) @@ -30,7 +27,7 @@ kotlin { android { namespace = "me.sample.feature" - compileSdk = 34 + compileSdk = 35 defaultConfig { minSdk = 24 diff --git a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/gradle.properties index 9cd73d38eb5..3ae7c5803a1 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/gradle.properties +++ b/gradle-plugins/compose/src/test/test-projects/misc/kmpResourcePublication/gradle.properties @@ -5,3 +5,4 @@ android.useAndroidX=true org.jetbrains.compose.experimental.uikit.enabled=true org.jetbrains.compose.experimental.jscanvas.enabled=true org.jetbrains.compose.experimental.wasm.enabled=true +org.jetbrains.compose.experimental.macos.enabled=true diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/build.gradle.kts new file mode 100644 index 00000000000..1eee194b905 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/build.gradle.kts @@ -0,0 +1,58 @@ +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType +import org.jetbrains.compose.desktop.application.dsl.TargetFormat + +plugins { + kotlin("multiplatform") + kotlin("plugin.compose") + id("org.jetbrains.compose") +} + +kotlin { + + listOf( + macosX64(), + macosArm64(), + ).forEach { + it.binaries { + executable { + entryPoint = "main" + freeCompilerArgs += listOf( + "-linker-options", + "-framework", + "-linker-option", + "Metal", + "-Xdisable-phases=VerifyBitcode" + ) + } + } + } + + sourceSets { + commonMain { + dependencies { + implementation(compose.runtime) + implementation(compose.material) + implementation(compose.components.resources) + } + } + } +} + +compose.desktop { + nativeApplication { + targets( + targets = kotlin.targets.filter { + it.platformType == KotlinPlatformType.native && + it.name.contains("macos") + }.toTypedArray() + ) + distributions { + macOS { + targetFormats(TargetFormat.Dmg) + packageName = "Test Resources" + packageVersion = "1.0.0" + } + } + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/gradle.properties new file mode 100644 index 00000000000..dc1dcfb61b8 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8096M +org.jetbrains.compose.experimental.macos.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/settings.gradle.kts new file mode 100644 index 00000000000..a9407f5c395 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/settings.gradle.kts @@ -0,0 +1,26 @@ +rootProject.name = "appleResources" +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + google() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://packages.jetbrains.team/maven/p/kt/dev") + } + plugins { + id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.native.cocoapods").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") + } +} +dependencyResolutionManagement { + repositories { + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://packages.jetbrains.team/maven/p/kt/dev") + mavenCentral() + gradlePluginPortal() + google() + mavenLocal() + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml new file mode 100644 index 00000000000..d7bf7955f44 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/commonMain/composeResources/drawable/compose-multiplatform.xml @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/commonMain/kotlin/App.kt new file mode 100644 index 00000000000..504f3cf5137 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/commonMain/kotlin/App.kt @@ -0,0 +1,37 @@ +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import org.jetbrains.compose.resources.painterResource +import appleresources.generated.resources.* + +@Composable +fun App() { + MaterialTheme { + var greetingText by remember { mutableStateOf("Hello, World!") } + var showImage by remember { mutableStateOf(false) } + Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { + Button(onClick = { + showImage = !showImage + }) { + Text(greetingText) + } + AnimatedVisibility(showImage) { + Image( + painterResource(Res.drawable.compose_multiplatform), + null + ) + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/macosMain/composeResources/drawable/icon.xml b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/macosMain/composeResources/drawable/icon.xml new file mode 100644 index 00000000000..d7bf7955f44 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/macosMain/composeResources/drawable/icon.xml @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/macosMain/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/macosMain/kotlin/main.kt new file mode 100644 index 00000000000..46f2e8b1c56 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/macosNativeResources/src/macosMain/kotlin/main.kt @@ -0,0 +1,2 @@ + +fun main() {} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/build.gradle deleted file mode 100644 index 1e43a147b8e..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - iosArm64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/gradle.properties deleted file mode 100644 index 695204ddbfe..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -org.gradle.jvmargs=-Xmx8096M -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/settings.gradle deleted file mode 100644 index 5717a21c960..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - plugins { - id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' - id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - } - repositories { - mavenLocal() - gradlePluginPortal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -dependencyResolutionManagement { - repositories { - mavenLocal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -rootProject.name = "nativeCacheKind" -include(":subproject") \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/build.gradle deleted file mode 100644 index 1e43a147b8e..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - iosArm64 { - binaries.framework { - isStatic = true - baseName = "shared" - } - } - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKind/subproject/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/build.gradle deleted file mode 100644 index 40170b68cb3..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64() - iosArm64() - iosSimulatorArm64() - macosX64() - macosArm64() - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/gradle.properties deleted file mode 100644 index 689880ee3f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.compose.experimental.uikit.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/settings.gradle deleted file mode 100644 index 5a99487916b..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/settings.gradle +++ /dev/null @@ -1,27 +0,0 @@ -pluginManagement { - plugins { - id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' - id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' - } - repositories { - mavenLocal() - gradlePluginPortal() - mavenCentral() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -dependencyResolutionManagement { - repositories { - mavenCentral() - mavenLocal() - google() - maven { - url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' - } - } -} -rootProject.name = "nativeCacheKind" -include(":subproject") \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/build.gradle deleted file mode 100644 index 40170b68cb3..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id "org.jetbrains.kotlin.multiplatform" - id "org.jetbrains.compose" -} - -kotlin { - iosX64() - iosArm64() - iosSimulatorArm64() - macosX64() - macosArm64() - - sourceSets { - commonMain { - dependencies { - implementation(compose.runtime) - } - } - } -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/src/commonMain/kotlin/App.kt deleted file mode 100644 index 2fe6d0719f4..00000000000 --- a/gradle-plugins/compose/src/test/test-projects/misc/nativeCacheKindError/subproject/src/commonMain/kotlin/App.kt +++ /dev/null @@ -1,10 +0,0 @@ -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue - -@Composable -fun App() { - var text by remember { mutableStateOf("Hello, World!") } -} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/build.gradle.kts new file mode 100644 index 00000000000..ce7429f97bb --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/build.gradle.kts @@ -0,0 +1,37 @@ +plugins { + id("org.jetbrains.compose") + kotlin("multiplatform") + kotlin("plugin.compose") + id("com.android.application") +} + +kotlin { + jvmToolchain(11) + androidTarget() + jvm() + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + implementation(compose.material3) + implementation(compose.components.resources) + implementation(project(":featureModule")) + } + + jvmMain.dependencies { + implementation(compose.desktop.currentOs) + } + } +} + +android { + namespace = "me.sample.app" + compileSdk = 35 + defaultConfig { + applicationId = "org.example.project" + minSdk = 24 + targetSdk = 35 + versionCode = 1 + versionName = "1.0" + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/androidMain/AndroidManifest.xml b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/androidMain/AndroidManifest.xml new file mode 100644 index 00000000000..96aa10f056b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/androidMain/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/commonMain/composeResources/values/strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/commonMain/composeResources/values/strings.xml new file mode 100644 index 00000000000..fa6300c278c --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/commonMain/composeResources/values/strings.xml @@ -0,0 +1,3 @@ + + App text str_1 + \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/commonMain/kotlin/me/sample/app/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/commonMain/kotlin/me/sample/app/App.kt new file mode 100644 index 00000000000..4c9c113677f --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/appModule/src/commonMain/kotlin/me/sample/app/App.kt @@ -0,0 +1,17 @@ +package me.sample.app + +import androidx.compose.foundation.layout.Column +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import newagpresources.appmodule.generated.resources.* +import org.jetbrains.compose.resources.stringResource + +@Composable +fun App() { + Column { + val txt = "text: " + Text(txt + stringResource(Res.string.str_1)) + MyFeatureText(txt = txt) + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/build.gradle.kts new file mode 100644 index 00000000000..aa6192ad4a7 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + id("org.jetbrains.compose").apply(false) + kotlin("multiplatform").apply(false) + kotlin("plugin.compose").apply(false) + id("com.android.kotlin.multiplatform.library").apply(false) + id("com.android.application").apply(false) +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/build.gradle.kts new file mode 100644 index 00000000000..0189bd2cba9 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/build.gradle.kts @@ -0,0 +1,31 @@ +plugins { + id("org.jetbrains.compose") + kotlin("multiplatform") + kotlin("plugin.compose") + id("com.android.kotlin.multiplatform.library") +} + +kotlin { + jvmToolchain(11) + jvm() + + androidLibrary { + experimentalProperties["android.experimental.kmp.enableAndroidResources"] = true + namespace = "me.sample.feature" + compileSdk = 35 + minSdk = 24 + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + implementation(compose.material3) + implementation(compose.components.resources) + } + } +} + +//https://youtrack.jetbrains.com/issue/CMP-8325 +compose.desktop { + application { } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/src/commonMain/composeResources/values/strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/src/commonMain/composeResources/values/strings.xml new file mode 100644 index 00000000000..a0a53302299 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/src/commonMain/composeResources/values/strings.xml @@ -0,0 +1,3 @@ + + Feature text str_1 + \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/src/commonMain/kotlin/me/sample/app/Feature.kt b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/src/commonMain/kotlin/me/sample/app/Feature.kt new file mode 100644 index 00000000000..fd1b08e7347 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/featureModule/src/commonMain/kotlin/me/sample/app/Feature.kt @@ -0,0 +1,12 @@ +package me.sample.app + +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import org.jetbrains.compose.resources.stringResource +import newagpresources.featuremodule.generated.resources.* + +@Composable +fun MyFeatureText(modifier: Modifier = Modifier, txt: String) { + Text(txt + stringResource(Res.string.str_1), modifier) +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/gradle.properties new file mode 100644 index 00000000000..dbaa0a8ca87 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 -Dkotlin.daemon.jvm.options\="-Xmx2048M" +kotlin.code.style=official +android.useAndroidX=true diff --git a/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/settings.gradle.kts new file mode 100644 index 00000000000..c7599f1193b --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/newAgpResources/settings.gradle.kts @@ -0,0 +1,29 @@ +rootProject.name = "newAgpResources" +include(":featureModule") +include(":appModule") +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") + } + plugins { + id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") + id("com.android.kotlin.multiplatform.library").version("AGP_VERSION_PLACEHOLDER") + id("com.android.application").version("AGP_VERSION_PLACEHOLDER") + } +} +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") + mavenLocal() + } +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/build.gradle new file mode 100644 index 00000000000..fc01cd69857 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/build.gradle @@ -0,0 +1,73 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat + +plugins { + id "com.android.application" + id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.compose" +} + +kotlin { + // empty stub (no actual android app) to detect configuration conflicts + // like https://github.com/JetBrains/compose-jb/issues/2345 + android() + + jvm() + sourceSets { + jvmMain { + dependsOn(commonMain) + + dependencies { + implementation(compose.desktop.currentOs) + } + } + } +} + +android { + namespace = "org.jetbrains.compose.testapp" + compileSdk = 35 + + defaultConfig { + minSdk = 23 + targetSdk = 35 + } +} + +kotlin { + jvm { + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } + } +} + +compose.desktop { + application { + mainClass = "MainKt" + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + + packageVersion = "1.0.0" + packageName = "TestPackage" + description = "Test description" + copyright = "Test Copyright Holder" + vendor = "Test Vendor" + + linux { + shortcut = true + packageName = "test-package" + debMaintainer = "example@example.com" + menuGroup = "menu-group" + } + windows { + console = true + dirChooser = true + perUserInstall = true + shortcut = true + menu = true + menuGroup = "compose" + upgradeUuid = "2d6ff464-75be-40ad-a256-56420b9cc374" + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/gradle.properties new file mode 100644 index 00000000000..2d8d1e4dd15 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/gradle.properties @@ -0,0 +1 @@ +android.useAndroidX=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/settings.gradle new file mode 100644 index 00000000000..63b6efd24fb --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/settings.gradle @@ -0,0 +1,33 @@ +pluginManagement { + plugins { + id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' + id 'com.android.application' version 'AGP_VERSION_PLACEHOLDER' + } + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } + } +} +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + maven { + url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' + } + maven { + url 'https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/' + } + mavenLocal() + } +} +rootProject.name = "mpp" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/src/jvmMain/kotlin/main.kt b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/src/jvmMain/kotlin/main.kt new file mode 100644 index 00000000000..4d7210e2bef --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/oldComposePlugin/src/jvmMain/kotlin/main.kt @@ -0,0 +1,3 @@ +fun main() { + println("Kotlin MPP app is running!") +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle index c6583d3c0a4..f9dc490179f 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/build.gradle @@ -1,7 +1,6 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - plugins { id "org.jetbrains.kotlin.multiplatform" + id "org.jetbrains.kotlin.plugin.compose" id "org.jetbrains.compose" } @@ -10,6 +9,10 @@ kotlin { browser() binaries.executable() } + wasm { + browser() + binaries.executable() + } sourceSets { commonMain { dependencies { @@ -22,10 +25,6 @@ kotlin { } } -compose.experimental { - web.application {} -} - // test for https://github.com/JetBrains/compose-multiplatform/issues/3169 afterEvaluate { afterEvaluate { diff --git a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties index 9c8f6b37b55..4fae7bbeffc 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties +++ b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/gradle.properties @@ -1 +1,2 @@ +org.gradle.jvmargs=-Xmx8096M org.jetbrains.compose.experimental.jscanvas.enabled=true diff --git a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle index 3e41d3e3e9a..5f9e7ef28e8 100644 --- a/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle +++ b/gradle-plugins/compose/src/test/test-projects/misc/skikoWasm/settings.gradle @@ -1,6 +1,7 @@ pluginManagement { plugins { id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER' + id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER' id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER' } repositories { @@ -15,12 +16,12 @@ pluginManagement { } dependencyResolutionManagement { repositories { - mavenLocal() mavenCentral() google() maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + mavenLocal() } } rootProject.name = "skikoWasm" \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/build.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/testResources/build.gradle.kts new file mode 100644 index 00000000000..e0886927c18 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/build.gradle.kts @@ -0,0 +1,42 @@ +import org.jetbrains.compose.ExperimentalComposeLibrary + +plugins { + kotlin("multiplatform") + kotlin("plugin.compose") + id("org.jetbrains.compose") +} + +group = "app.group" + +kotlin { + jvm("desktop") + + iosX64() + iosArm64() + iosSimulatorArm64() + + macosX64() + macosArm64() + + sourceSets { + commonMain { + dependencies { + implementation(compose.runtime) + implementation(compose.material) + implementation(compose.components.resources) + } + } + commonTest { + dependencies { + implementation(kotlin("test")) + @OptIn(ExperimentalComposeLibrary::class) + implementation(compose.uiTest) + } + } + val desktopMain by getting { + dependencies { + implementation(compose.desktop.currentOs) + } + } + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/gradle.properties b/gradle-plugins/compose/src/test/test-projects/misc/testResources/gradle.properties new file mode 100644 index 00000000000..2f532ce0eaa --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx8096M +android.useAndroidX=true +org.jetbrains.compose.experimental.jscanvas.enabled=true +org.jetbrains.compose.experimental.macos.enabled=true \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/settings.gradle.kts b/gradle-plugins/compose/src/test/test-projects/misc/testResources/settings.gradle.kts new file mode 100644 index 00000000000..59c6b748620 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/settings.gradle.kts @@ -0,0 +1,24 @@ +rootProject.name = "Resources-Test" +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + google() + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + } + plugins { + id("com.android.application").version("AGP_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.multiplatform").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.kotlin.plugin.compose").version("KOTLIN_VERSION_PLACEHOLDER") + id("org.jetbrains.compose").version("COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER") + } +} +dependencyResolutionManagement { + repositories { + maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + mavenCentral() + gradlePluginPortal() + google() + mavenLocal() + } +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/composeResources/files/common.txt b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/composeResources/files/common.txt new file mode 100644 index 00000000000..3986d02b362 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/composeResources/files/common.txt @@ -0,0 +1 @@ +common 777 \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/composeResources/values/strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/composeResources/values/strings.xml new file mode 100644 index 00000000000..cef354128e6 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/composeResources/values/strings.xml @@ -0,0 +1,3 @@ + + Compose Resources App + diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/kotlin/App.kt b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/kotlin/App.kt new file mode 100644 index 00000000000..ee1f26fd986 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonMain/kotlin/App.kt @@ -0,0 +1,7 @@ +import androidx.compose.material.Text +import androidx.compose.runtime.Composable + +@Composable +fun App() { + Text("app") +} diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/composeResources/files/data.txt b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/composeResources/files/data.txt new file mode 100644 index 00000000000..6a537b5b367 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/composeResources/files/data.txt @@ -0,0 +1 @@ +1234567890 \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/composeResources/values/strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/composeResources/values/strings.xml new file mode 100644 index 00000000000..b34f38cdbf0 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/composeResources/values/strings.xml @@ -0,0 +1,3 @@ + + Common test + diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/kotlin/CommonUiTest.kt b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/kotlin/CommonUiTest.kt new file mode 100644 index 00000000000..4138393c094 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/commonTest/kotlin/CommonUiTest.kt @@ -0,0 +1,33 @@ +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.runComposeUiTest +import app.group.resources_test.generated.resources.Res +import app.group.resources_test.generated.resources.app_name +import app.group.resources_test.generated.resources.test_string +import kotlinx.coroutines.test.runTest +import org.jetbrains.compose.resources.stringResource +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotEquals + +@OptIn(ExperimentalTestApi::class) +class CommonUiTest { + + @Test + fun checkTestResources() = runComposeUiTest { + setContent { + val mainStr = stringResource(Res.string.app_name) + val testStr = stringResource(Res.string.test_string) + assertEquals("Compose Resources App", mainStr) + assertEquals("Common test", testStr) + } + } + + @Test + fun checkTestFileResource() = runTest { + val commonFile = Res.readBytes("files/common.txt").decodeToString() + assertEquals("common 777", commonFile) + val testFile = Res.readBytes("files/data.txt").decodeToString() + assertEquals("1234567890", testFile) + } + +} \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopMain/composeResources/values/desktop_strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopMain/composeResources/values/desktop_strings.xml new file mode 100644 index 00000000000..e3ea685b42f --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopMain/composeResources/values/desktop_strings.xml @@ -0,0 +1,3 @@ + + Desktop string + \ No newline at end of file diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopTest/composeResources/values/desktop_strings.xml b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopTest/composeResources/values/desktop_strings.xml new file mode 100644 index 00000000000..43e8cbf6c51 --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopTest/composeResources/values/desktop_strings.xml @@ -0,0 +1,3 @@ + + Desktop test string + diff --git a/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopTest/kotlin/DesktopUiTest.kt b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopTest/kotlin/DesktopUiTest.kt new file mode 100644 index 00000000000..77a9435ba6f --- /dev/null +++ b/gradle-plugins/compose/src/test/test-projects/misc/testResources/src/desktopTest/kotlin/DesktopUiTest.kt @@ -0,0 +1,29 @@ +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.runComposeUiTest +import app.group.resources_test.generated.resources.Res +import app.group.resources_test.generated.resources.app_name +import app.group.resources_test.generated.resources.desktop_str +import app.group.resources_test.generated.resources.desktop_test_str +import app.group.resources_test.generated.resources.test_string +import org.jetbrains.compose.resources.stringResource +import kotlin.test.Test +import kotlin.test.assertEquals + +@OptIn(ExperimentalTestApi::class) +class DesktopUiTest { + + @Test + fun checkTestResources() = runComposeUiTest { + setContent { + val mainStr = stringResource(Res.string.app_name) + val testStr = stringResource(Res.string.test_string) + val desktopMainStr = stringResource(Res.string.desktop_str) + val desktopTestStr = stringResource(Res.string.desktop_test_str) + assertEquals("Compose Resources App", mainStr) + assertEquals("Common test", testStr) + assertEquals("Desktop string", desktopMainStr) + assertEquals("Desktop test string", desktopTestStr) + } + } + +} \ No newline at end of file diff --git a/gradle-plugins/gradle.properties b/gradle-plugins/gradle.properties index 43681791fc4..2509f0e7919 100644 --- a/gradle-plugins/gradle.properties +++ b/gradle-plugins/gradle.properties @@ -8,20 +8,20 @@ kotlin.code.style=official dev.junit.parallel=false # Default version of Compose Libraries used by Gradle plugin -compose.version=1.6.10 -# The latest version of Compose Compiler used by Gradle plugin. Used only in tests/CI. -compose.tests.compiler.version=1.5.14 +compose.version=1.10.0-alpha02 +compose.material3.version=1.9.0-beta03 # The latest version of Kotlin compatible with compose.tests.compiler.version. Used only in tests/CI. -compose.tests.compiler.compatible.kotlin.version=1.9.24 -# The latest version of Kotlin compatible with compose.tests.compiler.version for JS target. Used only on CI. -compose.tests.js.compiler.compatible.kotlin.version=1.9.24 +compose.tests.kotlin.version=2.2.20 # __SUPPORTED_GRADLE_VERSIONS__ # Don't forget to edit versions in .github/workflows/gradle-plugin.yml as well # and Publish.Subtasks.buildTypes.gradle.GradlePluginTestKt#gradleVersions in the TC config # minimal and current gradle version -compose.tests.gradle.versions=7.4, 8.7 -compose.tests.agp.versions=8.1.0, 8.4.0 +compose.tests.gradle.versions=8.7, 9.0.0 +compose.tests.agp.versions=8.6.0, 8.9.0, 9.0.0-alpha01 +# gradle and agp versions should be compatible: +# https://developer.android.com/build/releases/gradle-plugin#updating-plugin +compose.tests.gradle-agp.exclude=8.7/8.9.0, 8.7/9.0.0-alpha01 # A version of Gradle plugin, that will be published, # unless overridden by COMPOSE_GRADLE_PLUGIN_VERSION env var. -deploy.version=0.1.0-SNAPSHOT +deploy.version=9999.0.0-SNAPSHOT diff --git a/gradle-plugins/gradle/libs.versions.toml b/gradle-plugins/gradle/libs.versions.toml index 5a2fc3056a3..8e7cbc074a7 100644 --- a/gradle-plugins/gradle/libs.versions.toml +++ b/gradle-plugins/gradle/libs.versions.toml @@ -1,16 +1,19 @@ [versions] -kotlin = "1.9.0" +kotlin = "2.2.0" gradle-download-plugin = "5.5.0" -kotlin-poet = "1.16.0" -plugin-android = "7.3.0" +kotlin-poet = "2.1.0" +plugin-android = "8.10.1" shadow-jar = "8.1.1" publish-plugin = "1.2.1" +# we use "prefer" here for the strategy: "explicitly specified hot reload plugin always wins". +plugin-hot-reload = { prefer = "1.0.0-rc02" } [libraries] download-task = { module = "de.undercouch:gradle-download-task", version.ref = "gradle-download-plugin" } kotlin-poet = { module = "com.squareup:kotlinpoet", version.ref = "kotlin-poet" } plugin-android = { module = "com.android.tools.build:gradle", version.ref = "plugin-android" } plugin-android-api = { module = "com.android.tools.build:gradle-api", version.ref = "plugin-android" } +plugin-hot-reload = { module = "org.jetbrains.compose.hot-reload:hot-reload-gradle-plugin", version.ref = "plugin-hot-reload" } [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } diff --git a/gradle-plugins/gradle/wrapper/gradle-wrapper.jar b/gradle-plugins/gradle/wrapper/gradle-wrapper.jar index 62d4c053550..e6441136f3d 100644 Binary files a/gradle-plugins/gradle/wrapper/gradle-wrapper.jar and b/gradle-plugins/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle-plugins/gradle/wrapper/gradle-wrapper.properties b/gradle-plugins/gradle/wrapper/gradle-wrapper.properties index 48c0a02ca41..37f853b1c84 100644 --- a/gradle-plugins/gradle/wrapper/gradle-wrapper.properties +++ b/gradle-plugins/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradle-plugins/gradlew b/gradle-plugins/gradlew index fbd7c515832..1aa94a42690 100755 --- a/gradle-plugins/gradlew +++ b/gradle-plugins/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,99 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +119,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,88 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradle-plugins/gradlew.bat b/gradle-plugins/gradlew.bat index a9f778a7a96..7101f8e4676 100644 --- a/gradle-plugins/gradlew.bat +++ b/gradle-plugins/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +41,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -54,31 +55,16 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line @@ -86,17 +72,19 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/PreviewManager.kt b/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/PreviewManager.kt index 7e5309e74b0..032330c120a 100644 --- a/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/PreviewManager.kt +++ b/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/PreviewManager.kt @@ -290,7 +290,7 @@ class PreviewManagerImpl( } } }.also { - it.uncaughtExceptionHandler = Thread.UncaughtExceptionHandler { thread, e -> + it.uncaughtExceptionHandler = Thread.UncaughtExceptionHandler { _, e -> onError(e) } threads.add(it) diff --git a/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/RemotePreviewHost.kt b/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/RemotePreviewHost.kt index 8d96ab8b16e..cb3ebc40dd4 100644 --- a/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/RemotePreviewHost.kt +++ b/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/RemotePreviewHost.kt @@ -101,7 +101,7 @@ internal class PreviewHost(private val log: PreviewLogger, connection: RemoteCon }.setUpUnhandledExceptionHandler(ExitCodes.RECEIVER_FATAL_ERROR) private fun Thread.setUpUnhandledExceptionHandler(exitCode: Int): Thread = apply { - uncaughtExceptionHandler = Thread.UncaughtExceptionHandler { t, e -> + uncaughtExceptionHandler = Thread.UncaughtExceptionHandler { _, e -> try { System.err.println() System.err.println(PREVIEW_START_OF_STACKTRACE_MARKER) @@ -151,7 +151,7 @@ internal class PreviewHost(private val log: PreviewLogger, connection: RemoteCon val possibleCandidates = previewFacade.methods.filter { it.name == "render" } throw RuntimeException("Could not find method '$signature'. Possible candidates: \n${possibleCandidates.joinToString("\n") { "* ${it}" }}", e) } - val (id, fqName, frameConfig) = request + val (_, fqName, frameConfig) = request val scaledWidth = frameConfig.scaledWidth val scaledHeight = frameConfig.scaledHeight val scale = frameConfig.scale diff --git a/html/benchmark-core/build.gradle.kts b/html/benchmark-core/build.gradle.kts index 67146b19346..16ca5626a9c 100644 --- a/html/benchmark-core/build.gradle.kts +++ b/html/benchmark-core/build.gradle.kts @@ -1,6 +1,9 @@ +import org.jetbrains.compose.gradle.standardConf + plugins { id("org.jetbrains.kotlin.multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } @@ -9,7 +12,8 @@ kotlin { browser { testTask { useKarma { - useChromeHeadless() + standardConf() + // useChromeHeadless() // useFirefox() } } @@ -46,7 +50,7 @@ val BENCHMARKS_PATH = "reports/tests/jsTest/classes/org.jetbrains.compose.web.te val printBenchmarkResults by tasks.registering { doLast { - val report = buildDir.resolve(BENCHMARKS_PATH).readText() + val report = layout.buildDirectory.file(BENCHMARKS_PATH).get().asFile.readText() val stdout = "#.*;".toRegex().findAll(report).map { it.value }.firstOrNull() val benchmarks = stdout?.split(";")?.mapNotNull { diff --git a/html/build.gradle.kts b/html/build.gradle.kts index cfedc487ab1..18a576d4f9d 100644 --- a/html/build.gradle.kts +++ b/html/build.gradle.kts @@ -1,8 +1,10 @@ +import jetbrains.compose.web.gradle.SeleniumDriverPlugin import org.gradle.api.tasks.testing.AbstractTestTask import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.jetbrains.compose.gradle.kotlinKarmaConfig -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.targets +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { kotlin("multiplatform") apply false @@ -15,7 +17,7 @@ val COMPOSE_WEB_BUILD_WITH_SAMPLES = project.property("compose.web.buildSamples" kotlinKarmaConfig.rootDir = rootProject.rootDir.toString() -apply() +apply() fun Project.isSampleProject() = projectDir.parentFile.name == "examples" @@ -25,11 +27,6 @@ tasks.register("printBundleSize") { ) } -// see https://youtrack.jetbrains.com/issue/KT-49109#focus=Comments-27-5381158.0-0 -rootProject.plugins.withType { - rootProject.the().nodeVersion = "16.13.1" -} - subprojects { apply(plugin = "maven-publish") @@ -40,12 +37,18 @@ subprojects { if ((project.name != "html-widgets") && (project.name != "html-integration-widgets")) { afterEvaluate { if (plugins.hasPlugin("org.jetbrains.kotlin.multiplatform")) { - project.kotlinExtension.targets.forEach { target -> - target.compilations.forEach { compilation -> - compilation.kotlinOptions { - allWarningsAsErrors = false - // see https://kotlinlang.org/docs/opt-in-requirements.html - freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn" + project.extensions.getByType().apply { + targets.configureEach { + compilations.configureEach { + compileTaskProvider.configure { + compilerOptions { + allWarningsAsErrors.set(false) + freeCompilerArgs.addAll( + // see https://kotlinlang.org/docs/opt-in-requirements.html + "-opt-in=kotlin.RequiresOptIn" + ) + } + } } } } @@ -53,10 +56,10 @@ subprojects { } } - - - tasks.withType() { - kotlinOptions.jvmTarget = "11" + tasks.withType { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } } pluginManager.withPlugin("maven-publish") { @@ -136,9 +139,9 @@ subprojects { val printTestBundleSize by tasks.registering { dependsOn(tasks.named("jsTest")) doLast { - val bundlePath = buildDir.resolve( + val bundlePath = layout.buildDirectory.file( "compileSync/test/testDevelopmentExecutable/kotlin/${rootProject.name}-${project.name}-test.js" - ) + ).get().asFile if (bundlePath.exists()) { val size = bundlePath.length() println("##teamcity[buildStatisticValue key='testBundleSize::${project.name}' value='$size']") @@ -156,7 +159,7 @@ subprojects { val printBundleSize by tasks.registering { dependsOn(tasks.named("jsBrowserDistribution")) doLast { - val jsFile = buildDir.resolve("distributions/${project.name}.js") + val jsFile = layout.buildDirectory.file("distributions/${project.name}.js").get().asFile val size = jsFile.length() println("##teamcity[buildStatisticValue key='bundleSize::${project.name}' value='$size']") } diff --git a/html/buildSrc/build.gradle.kts b/html/buildSrc/build.gradle.kts index e13ecb66c55..e9a7d57fc40 100644 --- a/html/buildSrc/build.gradle.kts +++ b/html/buildSrc/build.gradle.kts @@ -1,3 +1,6 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + repositories { gradlePluginPortal() mavenCentral() @@ -13,12 +16,17 @@ plugins { id("org.jetbrains.kotlin.jvm") } - java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } +tasks.withType().configureEach { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + } +} + dependencies { implementation("org.jetbrains.kotlin:kotlin-gradle-plugin") } diff --git a/html/buildSrc/gradle.properties b/html/buildSrc/gradle.properties index c9096427580..01e8322b365 100644 --- a/html/buildSrc/gradle.properties +++ b/html/buildSrc/gradle.properties @@ -1 +1 @@ -kotlin.version=1.9.21 +kotlin.version=2.2.10 diff --git a/html/buildSrc/src/main/kotlin/SeleniumDriverPlugin.kt b/html/buildSrc/src/main/kotlin/SeleniumDriverPlugin.kt index 83705c34452..cb489ebdcc2 100644 --- a/html/buildSrc/src/main/kotlin/SeleniumDriverPlugin.kt +++ b/html/buildSrc/src/main/kotlin/SeleniumDriverPlugin.kt @@ -4,8 +4,9 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform import java.io.File import java.net.URL -private val CHROME_DRIVER_VERSION = "114.0.5735.90" -private val GECKO_DRIVER_VERSION = "0.31.0" +// https://googlechromelabs.github.io/chrome-for-testing/ +private val CHROME_DRIVER_VERSION = "140.0.7339.82" +private val GECKO_DRIVER_VERSION = "0.36.0" private fun download(url: String, file: File) { println("downloading ${url} to ${file}") @@ -42,17 +43,18 @@ private fun resolvePath(id: String): String { val arch = DefaultNativePlatform.getCurrentArchitecture() val geckoRepo = "https://github.com/mozilla/geckodriver/releases/download/v$GECKO_DRIVER_VERSION/" - val chromeRepo = "https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/" + val chromeRepo = "https://storage.googleapis.com/chrome-for-testing-public/$CHROME_DRIVER_VERSION/" return when (id) { + //https://googlechromelabs.github.io/chrome-for-testing/ "chrome" -> chromeRepo + when { - os.isWindows -> "chromedriver_win32.zip" + os.isWindows -> "win32/chromedriver-win32.zip" os.isMacOsX -> if (arch.isArm) { - "chromedriver_mac64_m1.zip" + "mac-arm64/chromedriver-mac-arm64.zip" } else { - "chromedriver_mac64.zip" + "mac-x64/chromedriver-mac-x64.zip" } - else -> "chromedriver_linux64.zip" + else -> "linux64/chromedriver-linux64.zip" } "gecko" -> geckoRepo + when { os.isWindows -> "geckodriver-v$GECKO_DRIVER_VERSION-win64.zip" diff --git a/html/compose-compiler-integration/build.gradle.kts b/html/compose-compiler-integration/build.gradle.kts index a34881f63e7..800a9ebb8dd 100644 --- a/html/compose-compiler-integration/build.gradle.kts +++ b/html/compose-compiler-integration/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.gradle.standardConf plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } @@ -39,7 +40,7 @@ kotlin { fun cloneTemplate(templateName: String, contentMain: String, contentLib: String): File { - val tempDir = file("${project.buildDir.absolutePath}/temp/cloned-$templateName") + val tempDir = layout.buildDirectory.dir("temp/cloned-$templateName").get().asFile tempDir.deleteRecursively() tempDir.mkdirs() file("${projectDir.absolutePath}/main-template").copyRecursively(tempDir) @@ -53,43 +54,64 @@ fun cloneTemplate(templateName: String, contentMain: String, contentLib: String) return tempDir } -fun build( +private fun build( caseName: String, directory: File, failureExpected: Boolean = false, composeVersion: String, kotlinVersion: String, - vararg buildCmd: String = arrayOf("build", "jsNodeRun") + vararg buildCmd: String = arrayOf("build", "jsNodeDevelopmentRun") ) { val isWin = System.getProperty("os.name").startsWith("Win") val arguments = buildCmd.toMutableList().also { it.add("-Pcompose.version=$composeVersion") it.add("-Pkotlin.version=$kotlinVersion") + it.add("--stacktrace") + it.add("--info") }.toTypedArray() - val procBuilder = if (isWin) { - ProcessBuilder("gradlew.bat", *arguments) + val gradlewFile = File(directory, if (isWin) "gradlew.bat" else "gradlew") + + println("[compose-compiler-integration] Working directory: ${directory.absolutePath}") + + if (!gradlewFile.exists()) { + throw GradleException("gradlew not found in ${directory.absolutePath}. Please ensure the Gradle wrapper is present.") + } + + if (!isWin) { + if (!gradlewFile.canExecute()) { + val isExecutable = gradlewFile.setExecutable(true) + if (!isExecutable) { + throw GradleException("Failed to make gradlew executable: ${gradlewFile.absolutePath}") + } + } + } + + val command: List = if (isWin) { + listOf("cmd", "/c", "gradlew.bat") + arguments } else { - ProcessBuilder("bash", "./gradlew", *arguments) + listOf("./gradlew") + arguments } - val proc = procBuilder - .directory(directory) - .redirectOutput(ProcessBuilder.Redirect.PIPE) - .redirectError(ProcessBuilder.Redirect.PIPE) - .start() - - proc.waitFor(5, TimeUnit.MINUTES) - - "(COMPOSE_INTEGRATION_VERSION=\\[.*\\])".toRegex().find( - proc.inputStream.bufferedReader().readText() - )?.also { - println(it.groupValues[1]) + println("[compose-compiler-integration] Executing: ${command.joinToString(" ")}") + + val proc = try { + ProcessBuilder(command) + .directory(directory) + .redirectOutput(ProcessBuilder.Redirect.INHERIT) + .redirectError(ProcessBuilder.Redirect.INHERIT) + .start() + } catch (e: Exception) { + throw GradleException("Failed to start Gradle process. Command: ${command.joinToString(" ")}", e) } - println(proc.errorStream.bufferedReader().readText()) + val finished = proc.waitFor(10, TimeUnit.MINUTES) + if (!finished) { + proc.destroyForcibly() + throw GradleException("Gradle process timed out for $caseName. Command: ${command.joinToString(" ")}") + } if (proc.exitValue() != 0 && !failureExpected) { - throw GradleException("Error compiling $caseName") + throw GradleException("Error compiling $caseName (exit code ${proc.exitValue()})") } if (failureExpected && proc.exitValue() == 0) { diff --git a/html/compose-compiler-integration/lib/build.gradle.kts b/html/compose-compiler-integration/lib/build.gradle.kts index 0e48fefcaa8..e0c6e54dbe5 100644 --- a/html/compose-compiler-integration/lib/build.gradle.kts +++ b/html/compose-compiler-integration/lib/build.gradle.kts @@ -1,9 +1,11 @@ plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } repositories { + google() mavenLocal() mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") diff --git a/html/compose-compiler-integration/main-template/build.gradle.kts b/html/compose-compiler-integration/main-template/build.gradle.kts index 2b1a1aaf9b1..624c2b37f1f 100644 --- a/html/compose-compiler-integration/main-template/build.gradle.kts +++ b/html/compose-compiler-integration/main-template/build.gradle.kts @@ -1,12 +1,14 @@ plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } repositories { - mavenLocal() + google() mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + mavenLocal() } kotlin { @@ -22,8 +24,11 @@ kotlin { implementation(kotlin("stdlib-common")) implementation(compose.runtime) implementation(project(":lib")) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") } } } } + +tasks.findByName("jsBrowserProductionWebpack")!!.mustRunAfter("jsDevelopmentExecutableCompileSync") +tasks.findByName("jsNodeDevelopmentRun")!!.mustRunAfter("jsProductionExecutableCompileSync") diff --git a/html/compose-compiler-integration/main-template/gradle/wrapper/gradle-wrapper.properties b/html/compose-compiler-integration/main-template/gradle/wrapper/gradle-wrapper.properties index 0f80bbf516c..37f853b1c84 100644 --- a/html/compose-compiler-integration/main-template/gradle/wrapper/gradle-wrapper.properties +++ b/html/compose-compiler-integration/main-template/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/html/compose-compiler-integration/main-template/lib/build.gradle.kts b/html/compose-compiler-integration/main-template/lib/build.gradle.kts index ba03f01cccd..d5cf5989613 100644 --- a/html/compose-compiler-integration/main-template/lib/build.gradle.kts +++ b/html/compose-compiler-integration/main-template/lib/build.gradle.kts @@ -1,12 +1,14 @@ plugins { - kotlin("multiplatform")// version "1.5.10" - id("org.jetbrains.compose")// version (System.getenv("COMPOSE_INTEGRATION_VERSION") ?: "0.0.0-SNASPHOT") + kotlin("multiplatform") + id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } repositories { - mavenLocal() + google() mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") + mavenLocal() } kotlin { @@ -21,8 +23,12 @@ kotlin { dependencies { implementation(kotlin("stdlib-common")) implementation(compose.runtime) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") } } } } + + +tasks.findByName("jsBrowserProductionWebpack")!!.mustRunAfter("jsDevelopmentExecutableCompileSync") +tasks.findByName("jsNodeDevelopmentRun")!!.mustRunAfter("jsProductionExecutableCompileSync") \ No newline at end of file diff --git a/html/compose-compiler-integration/main-template/settings.gradle.kts b/html/compose-compiler-integration/main-template/settings.gradle.kts index c554a787818..4e0b38db865 100644 --- a/html/compose-compiler-integration/main-template/settings.gradle.kts +++ b/html/compose-compiler-integration/main-template/settings.gradle.kts @@ -1,10 +1,10 @@ pluginManagement { repositories { - mavenLocal() gradlePluginPortal() maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } + mavenLocal() } resolutionStrategy { @@ -15,7 +15,7 @@ pluginManagement { val useVersion = if (extra.has("compose.version")) { extra["compose.version"].toString() } else { - "0.0.0-SNASPHOT" + "0.0.0-SNAPSHOT" } println("COMPOSE_INTEGRATION_VERSION=[$useVersion]") useVersion(useVersion) diff --git a/html/core/build.gradle.kts b/html/core/build.gradle.kts index e741f449d0f..a5d136e6caf 100644 --- a/html/core/build.gradle.kts +++ b/html/core/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.gradle.standardConf plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSEnums.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSEnums.kt index 4cbdd246529..7fdcf356847 100644 --- a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSEnums.kt +++ b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSEnums.kt @@ -260,4 +260,22 @@ object GridAutoFlow : StylePropertyString { inline val Dense get() = "dense".unsafeCast() inline val RowDense get() = "row dense".unsafeCast() inline val ColumnDense get() = "column dense".unsafeCast() -} \ No newline at end of file +} + +interface VisibilityStyle: StylePropertyEnum { + companion object { + inline val Visible get() = VisibilityStyle("visible") + inline val Hidden get() = VisibilityStyle("hidden") + inline val Collapse get() = VisibilityStyle("collapse") + + + inline val Inherit get() = VisibilityStyle("inherit") + inline val Initial get() = VisibilityStyle("initial") + + inline val Revert get() = VisibilityStyle("revert") + inline val RevertLayer get() = VisibilityStyle("revert-layer") + + inline val Unset get() = VisibilityStyle("unset") + } +} +inline fun VisibilityStyle(value: String) = value.unsafeCast() diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSUnits.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSUnits.kt index b2ec469c50a..2f3875d693d 100644 --- a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSUnits.kt +++ b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/CSSUnits.kt @@ -2,6 +2,8 @@ package org.jetbrains.compose.web.css +// External declarations for CSS OM - https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model + external interface CSSNumericValue : StylePropertyValue, CSSVariableValueAs> external interface CSSSizeValue : CSSNumericValue { diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/color.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/color-prop.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/color.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/color-prop.kt diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/visibility.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/visibility.kt new file mode 100644 index 00000000000..de0fc6fc00a --- /dev/null +++ b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/css/properties/visibility.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2020-2024 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +@file:Suppress("Unused", "NOTHING_TO_INLINE", "NESTED_CLASS_IN_EXTERNAL_INTERFACE", "INLINE_EXTERNAL_DECLARATION", "WRONG_BODY_OF_EXTERNAL_DECLARATION", "NESTED_EXTERNAL_DECLARATION") + +package org.jetbrains.compose.web.css + +fun StyleScope.visibility(visibilityStyle: VisibilityStyle) { + property("visibility", visibilityStyle.value) +} diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/Base.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/Base.kt diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/ElementScope.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/ElementScope.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/ElementScope.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/ElementScope.kt diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Elements.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/Elements.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Elements.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/Elements.kt diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/InputElements.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/InputElements.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/InputElements.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/InputElements.kt diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/RadioGroup.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/RadioGroup.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/RadioGroup.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/RadioGroup.kt diff --git a/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Style.kt b/html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/Style.kt similarity index 100% rename from html/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Style.kt rename to html/core/src/jsMain/kotlin/org/jetbrains/compose/web/dom/Style.kt diff --git a/html/core/src/jsTest/kotlin/CSSEnums.kt b/html/core/src/jsTest/kotlin/CSSEnums.kt index 4f430db8f92..87923a6ac63 100644 --- a/html/core/src/jsTest/kotlin/CSSEnums.kt +++ b/html/core/src/jsTest/kotlin/CSSEnums.kt @@ -114,3 +114,14 @@ fun Position.Companion.values() = listOf( Position.Sticky, Position.Fixed ) + +fun VisibilityStyle.Companion.values() = listOf( + VisibilityStyle.Visible, + VisibilityStyle.Hidden, + VisibilityStyle.Collapse, + VisibilityStyle.Inherit, + VisibilityStyle.Initial, + VisibilityStyle.Revert, + VisibilityStyle.RevertLayer, + VisibilityStyle.Unset +) diff --git a/html/core/src/jsTest/kotlin/FailingTestCases.kt b/html/core/src/jsTest/kotlin/FailingTestCases.kt index 549da12b156..9e4f0d00e4c 100644 --- a/html/core/src/jsTest/kotlin/FailingTestCases.kt +++ b/html/core/src/jsTest/kotlin/FailingTestCases.kt @@ -6,6 +6,7 @@ package org.jetbrains.compose.web.core.tests import kotlin.test.Test +import kotlin.test.assertFalse import kotlin.test.assertTrue class FailingTestCases { @@ -20,7 +21,8 @@ class FailingTestCases { } catch (e: Throwable) { expectedErrorThrown = true } - assertTrue(expectedErrorThrown) + // No exception in Kotlin 2.1.0 + assertFalse(expectedErrorThrown) } } diff --git a/html/core/src/jsTest/kotlin/css/CSSVisibilityTests.kt b/html/core/src/jsTest/kotlin/css/CSSVisibilityTests.kt new file mode 100644 index 00000000000..359deb302e9 --- /dev/null +++ b/html/core/src/jsTest/kotlin/css/CSSVisibilityTests.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package org.jetbrains.compose.web.core.tests.css + +import org.jetbrains.compose.web.testutils.* +import org.jetbrains.compose.web.core.tests.values +import org.jetbrains.compose.web.css.VisibilityStyle +import org.jetbrains.compose.web.css.visibility +import org.jetbrains.compose.web.css.value +import org.jetbrains.compose.web.dom.Div +import kotlin.test.Test +import kotlin.test.assertEquals + +class CSSVisibilityTests { + + @Test + fun stylesDisplay() = runTest { + val enumValues = VisibilityStyle.values() + + composition { + enumValues.forEach { displayStyle -> + Div( + { + style { + visibility(displayStyle) + } + } + ) + } + } + + enumValues.forEach { visibilityStyle -> + assertEquals( + visibilityStyle.value, + (nextChild()).style.visibility + ) + } + } + +} diff --git a/html/core/src/jsTest/kotlin/css/TransitionsTests.kt b/html/core/src/jsTest/kotlin/css/TransitionsTests.kt index e461709cea6..806fc17de37 100644 --- a/html/core/src/jsTest/kotlin/css/TransitionsTests.kt +++ b/html/core/src/jsTest/kotlin/css/TransitionsTests.kt @@ -14,18 +14,34 @@ import org.jetbrains.compose.web.css.timingFunction import org.jetbrains.compose.web.css.transitions import org.jetbrains.compose.web.dom.Div import org.jetbrains.compose.web.testutils.runTest +import org.w3c.dom.css.CSSStyleDeclaration import kotlin.test.Test import kotlin.test.assertEquals @ExperimentalComposeWebApi class TransitionsTests { + + private fun CSSStyleDeclaration.computedTransition(): String { + val cssDelimiter = Regex(",\\s*") + + // setting transition property affects subProperties, but we should check for them separately + val props = transitionProperty.split(cssDelimiter) + val durations = transitionDuration.split(cssDelimiter) + val timings = transitionTimingFunction.split(cssDelimiter) + val delays = transitionDelay.split(cssDelimiter) + + return props.indices.joinToString(", ") { i -> + "${props[i]} ${durations[i]} ${timings[i]} ${delays[i]}" + } + } + @Test fun duration() = runTest { composition { Div({ style { transitions { "width" { duration(1.s) } }}}) } - assertEquals("width 1s ease 0s", nextChild().style.transition) + assertEquals("width 1s ease 0s", nextChild().style.computedTransition()) } @Test @@ -34,7 +50,7 @@ class TransitionsTests { Div({ style { transitions { "width" { duration(1.s) }; "height" { duration(2.s) } }}}) } - assertEquals("width 1s ease 0s, height 2s ease 0s", nextChild().style.transition) + assertEquals("width 1s ease 0s, height 2s ease 0s", nextChild().style.computedTransition()) } @Test @@ -43,7 +59,7 @@ class TransitionsTests { Div({ style { transitions { all { duration(1.s) } }}}) } - assertEquals("all 1s ease 0s", nextChild().style.transition) + assertEquals("all 1s ease 0s", nextChild().style.computedTransition()) } @Test @@ -52,7 +68,7 @@ class TransitionsTests { Div({ style { transitions { "width" { duration(1.s); timingFunction(AnimationTimingFunction.EaseInOut) }}}}) } - assertEquals("width 1s ease-in-out 0s", nextChild().style.transition) + assertEquals("width 1s ease-in-out 0s", nextChild().style.computedTransition()) } @Test @@ -61,7 +77,7 @@ class TransitionsTests { Div({ style { transitions { "width" { duration(1.s); delay(2.s) }}}}) } - assertEquals("width 1s ease 2s", nextChild().style.transition) + assertEquals("width 1s ease 2s", nextChild().style.computedTransition()) } @Test @@ -73,8 +89,8 @@ class TransitionsTests { Div({ style { transitions { defaultDuration(1.s); myList { duration(2.s) }}}}) } - assertEquals("width 1s ease 0s, height 1s ease 0s", nextChild().style.transition) - assertEquals("width 0s ease 0s, height 1s ease 0s, width 2s ease 0s", nextChild().style.transition) - assertEquals("width 2s ease 0s, height 2s ease 0s", nextChild().style.transition) + assertEquals("width 1s ease 0s, height 1s ease 0s", nextChild().style.computedTransition()) + assertEquals("width 0s ease 0s, height 1s ease 0s, width 2s ease 0s", nextChild().style.computedTransition()) + assertEquals("width 2s ease 0s, height 2s ease 0s", nextChild().style.computedTransition()) } } \ No newline at end of file diff --git a/html/gradle.properties b/html/gradle.properties index 7edc24f668a..accf1a38275 100644 --- a/html/gradle.properties +++ b/html/gradle.properties @@ -1,8 +1,13 @@ -compose.version=1.6.0-alpha01 +#Gradle +org.gradle.jvmargs=-Xmx8g + +#Versions +compose.version=1.9.0 + +#Compose compose.web.buildSamples=false -compose.web.tests.integration.withFirefox +compose.web.tests.integration.withFirefox=true compose.web.tests.skip.benchmarks=false -org.gradle.jvmargs=-Xmx8g # TODO: figure out why jvmTest (web driver tests) fail with timeout with kotlin 1.9.0 -integrationTestsEnabled=false \ No newline at end of file +integrationTestsEnabled=false diff --git a/html/gradle/wrapper/gradle-wrapper.properties b/html/gradle/wrapper/gradle-wrapper.properties index 15de90249f9..37f853b1c84 100644 --- a/html/gradle/wrapper/gradle-wrapper.properties +++ b/html/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/html/integration-core/build.gradle.kts b/html/integration-core/build.gradle.kts index 39cbeb87eec..facf9477eff 100644 --- a/html/integration-core/build.gradle.kts +++ b/html/integration-core/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.gradle.standardConf plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } val integrationTestsEnabled: Boolean = project.properties.getValue("integrationTestsEnabled") == "true" @@ -15,7 +16,7 @@ kotlin { systemProperty( "COMPOSE_WEB_INTEGRATION_TESTS_DISTRIBUTION", - File(buildDir, "developmentExecutable") + layout.buildDirectory.dir("developmentExecutable").get().asFile ) } } diff --git a/html/internal-html-core-runtime/build.gradle.kts b/html/internal-html-core-runtime/build.gradle.kts index ea88ec2eafd..ff38f026271 100644 --- a/html/internal-html-core-runtime/build.gradle.kts +++ b/html/internal-html-core-runtime/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.gradle.standardConf plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } diff --git a/html/kotlin-js-store/yarn.lock b/html/kotlin-js-store/yarn.lock index 48d8e03f1ea..1789f1b3a67 100644 --- a/html/kotlin-js-store/yarn.lock +++ b/html/kotlin-js-store/yarn.lock @@ -12,6 +12,23 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@discoveryjs/json-ext@^0.6.1": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz#f13c7c205915eb91ae54c557f5e92bddd8be0e83" + integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@jridgewell/gen-mapping@^0.3.0": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -26,6 +43,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -44,7 +66,20 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -73,6 +108,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -90,31 +130,26 @@ dependencies: "@types/node" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" - integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@*", "@types/estree@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/http-proxy@^1.17.8": version "1.17.10" @@ -123,7 +158,12 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -138,125 +178,125 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^1.2.0": @@ -264,10 +304,10 @@ resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== -"@webpack-cli/configtest@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== +"@webpack-cli/configtest@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-3.0.1.tgz#76ac285b9658fa642ce238c276264589aa2b6b57" + integrity sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA== "@webpack-cli/info@^1.5.0": version "1.5.0" @@ -276,20 +316,20 @@ dependencies: envinfo "^7.7.3" -"@webpack-cli/info@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== +"@webpack-cli/info@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-3.0.1.tgz#3cff37fabb7d4ecaab6a8a4757d3826cf5888c63" + integrity sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ== "@webpack-cli/serve@^1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== -"@webpack-cli/serve@^2.0.3": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== +"@webpack-cli/serve@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-3.0.1.tgz#bd8b1f824d57e30faa19eb78e4c0951056f72f00" + integrity sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -301,11 +341,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -314,15 +349,15 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-phases@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" + integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== -acorn@^8.7.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== acorn@^8.8.2: version "8.10.0" @@ -349,7 +384,7 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.0.0: +ajv-keywords@^5.0.0, ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== @@ -376,10 +411,15 @@ ajv@^8.0.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" ansi-html@^0.0.7: version "0.0.7" @@ -403,6 +443,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -528,20 +573,20 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.14.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== +browserslist@^4.24.0: + version "4.25.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.4.tgz#ebdd0e1d1cf3911834bab3a6cd7b917d9babf5af" + integrity sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001737" + electron-to-chromium "^1.5.211" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" buffer-from@^1.0.0: version "1.1.2" @@ -576,10 +621,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001449: - version "1.0.30001474" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" - integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== +caniuse-lite@^1.0.30001737: + version "1.0.30001741" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz#67fb92953edc536442f3c9da74320774aa523143" + integrity sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw== chalk@^4.1.0: version "4.1.2" @@ -589,7 +634,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3, chokidar@^3.5.1: +chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -604,6 +649,13 @@ chokidar@3.5.3, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" +chokidar@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -623,6 +675,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -654,10 +715,10 @@ colorette@^2.0.10, colorette@^2.0.14: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== commander@^2.20.0: version "2.20.3" @@ -731,10 +792,10 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== core-util-is@~1.0.0: version "1.0.3" @@ -758,6 +819,15 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" @@ -775,19 +845,26 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: - ms "^2.1.1" + ms "^2.1.3" decamelize@^4.0.0: version "4.0.0" @@ -865,10 +942,10 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== dir-glob@^3.0.1: version "3.0.1" @@ -907,51 +984,61 @@ dom-serialize@^2.2.1: extend "^3.0.0" void-elements "^2.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.284: - version "1.4.352" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" - integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== +electron-to-chromium@^1.5.211: + version "1.5.218" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.218.tgz#921042a011a98a4620853c9d391ab62bcc124400" + integrity sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== -engine.io@~6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.4.1.tgz#8056b4526a88e779f9c280d820422d4e3eeaaae5" - integrity sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw== +engine.io@~6.6.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.2.tgz#32bd845b4db708f8c774a4edef4e5c8a98b3da72" + integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" - cookie "~0.4.1" + cookie "~0.7.2" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.11.0" + engine.io-parser "~5.2.1" + ws "~8.17.1" -enhanced-resolve@^5.13.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== +enhanced-resolve@^5.17.2: + version "5.18.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" + integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -961,6 +1048,11 @@ ent@~2.2.0: resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== +envinfo@^7.14.0: + version "7.14.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== + envinfo@^7.7.3: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" @@ -976,12 +1068,17 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -1104,6 +1201,11 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-uri@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.5.tgz#19f5f9691d0dab9b85861a7bb5d98fca961da9cd" + integrity sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q== + fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" @@ -1156,14 +1258,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1172,6 +1266,14 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -1187,6 +1289,14 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + format-util@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" @@ -1272,17 +1382,17 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^10.4.5: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" glob@^7.1.3, glob@^7.1.7: version "7.2.3" @@ -1308,7 +1418,7 @@ globby@^11.0.1: merge2 "^1.4.1" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -1356,7 +1466,7 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" -he@1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -1669,6 +1779,15 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -1678,7 +1797,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -1714,13 +1833,13 @@ karma-chrome-launcher@3.2.0: dependencies: which "^1.2.1" -karma-firefox-launcher@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz#9a38cc783c579a50f3ed2a82b7386186385cfc2d" - integrity sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA== +karma-firefox-launcher@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz#b278a4cbffa92ab81394b1a398813847b0624a85" + integrity sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw== dependencies: is-wsl "^2.2.0" - which "^2.0.1" + which "^3.0.0" karma-mocha@2.0.1: version "2.0.1" @@ -1736,19 +1855,19 @@ karma-sourcemap-loader@0.4.0: dependencies: graceful-fs "^4.2.10" -karma-webpack@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.0.tgz#2a2c7b80163fe7ffd1010f83f5507f95ef39f840" - integrity sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA== +karma-webpack@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.1.tgz#4eafd31bbe684a747a6e8f3e4ad373e53979ced4" + integrity sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ== dependencies: glob "^7.1.3" - minimatch "^3.0.4" + minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.2: - version "6.4.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.2.tgz#a983f874cee6f35990c4b2dcc3d274653714de8e" - integrity sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ== +karma@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1769,7 +1888,7 @@ karma@6.4.2: qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^4.4.1" + socket.io "^4.7.2" source-map "^0.6.1" tmp "^0.2.1" ua-parser-js "^0.7.30" @@ -1780,6 +1899,13 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kotlin-web-helpers@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.1.0.tgz#6cd4b0f0dc3baea163929c8638155b8d19c55a74" + integrity sha512-NAJhiNB84tnvJ5EQx7iER3GWw7rsTZkX9HVHZpe7E3dDBD/dhTzqgSwNU3MfQjniy2rB04bP24WM9Z32ntUWRg== + dependencies: + format-util "^1.0.5" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -1804,7 +1930,7 @@ lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -1823,6 +1949,11 @@ log4js@^6.4.1: rfdc "^1.3.0" streamroller "^3.1.5" +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -1895,13 +2026,6 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1909,11 +2033,23 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" +minimatch@^9.0.3, minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.3, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + mkdirp@^0.5.5, mkdirp@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -1921,32 +2057,31 @@ mkdirp@^0.5.5, mkdirp@^0.5.6: dependencies: minimist "^1.2.6" -mocha@10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" +mocha@11.7.1: + version "11.7.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.1.tgz#91948fecd624fb4bd154ed260b7e1ad3910d7c7a" + integrity sha512-5EK+Cty6KheMS/YLPPMJC64g5V61gIR25KsRItHw6x4hEKT6Njp1n9LOlH4gpevuwMVS66SXaBBpg+RWZkza4A== + dependencies: + browser-stdout "^1.3.1" + chokidar "^4.0.1" + debug "^4.3.5" + diff "^7.0.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^10.4.5" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^9.0.5" + ms "^2.1.3" + picocolors "^1.1.1" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" + yargs-unparser "^2.0.0" ms@2.0.0: version "2.0.0" @@ -1958,7 +2093,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1976,11 +2111,6 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -1996,10 +2126,10 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -2150,6 +2280,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -2175,6 +2310,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -2185,10 +2328,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" @@ -2310,6 +2453,11 @@ readable-stream@^3.0.6: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -2429,7 +2577,7 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -2438,15 +2586,6 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^3.1.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - schema-utils@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" @@ -2457,6 +2596,26 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" +schema-utils@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" + integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -2488,17 +2647,10 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -2568,6 +2720,11 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -2580,25 +2737,26 @@ socket.io-adapter@~2.5.2: dependencies: ws "~8.11.0" -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@^4.4.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.6.1.tgz#62ec117e5fce0692fa50498da9347cfb52c3bc70" - integrity sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA== +socket.io@^4.7.2: + version "4.8.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.1.tgz#fa0eaff965cc97fdf4245e8d4794618459f7558a" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.4.1" + engine.io "~6.6.0" socket.io-adapter "~2.5.2" - socket.io-parser "~4.2.1" + socket.io-parser "~4.2.4" sockjs@^0.3.21: version "0.3.24" @@ -2614,12 +2772,11 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.1.tgz#72f00d05f5d1f90f80974eda781cbd7107c125f2" - integrity sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA== +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== dependencies: - abab "^2.0.6" iconv-lite "^0.6.3" source-map-js "^1.0.2" @@ -2678,7 +2835,7 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -string-width@^4.1.0, string-width@^4.2.0: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2687,6 +2844,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -2701,7 +2867,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -2715,23 +2881,23 @@ strip-ansi@^7.0.0: dependencies: ansi-regex "^6.0.1" +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -2739,6 +2905,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -2749,21 +2922,21 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.11: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.8" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" -terser@^5.16.8: - version "5.19.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.1.tgz#dbd7231f224a9e2401d0f0959542ed74d76d340b" - integrity sha512-27hxBUVdV6GoNg1pKQ7Z5cbR6V9txPVyBA+FQw3BaZ1Wuzvztce5p156DaP0NVZNrMZZ+6iG9Syf7WgMNKDg2Q== +terser@^5.31.1: + version "5.37.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" + integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2802,11 +2975,6 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== - ua-parser-js@^0.7.30: version "0.7.35" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" @@ -2822,13 +2990,13 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.2.0" + picocolors "^1.1.1" uri-js@^4.2.2: version "4.4.1" @@ -2870,10 +3038,10 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -2903,24 +3071,24 @@ webpack-cli@4.10.0: rechoir "^0.7.0" webpack-merge "^5.7.3" -webpack-cli@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.0.tgz#abc4b1f44b50250f2632d8b8b536cfe2f6257891" - integrity sha512-a7KRJnCxejFoDpYTOwzm5o21ZXMaNqtRlvS183XzGDUPRdVEzJNImcQokqYZ8BNTnk9DkKiuWxw75+DCCoZ26w== +webpack-cli@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-6.0.1.tgz#a1ce25da5ba077151afd73adfa12e208e5089207" + integrity sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw== dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.0" - "@webpack-cli/info" "^2.0.1" - "@webpack-cli/serve" "^2.0.3" + "@discoveryjs/json-ext" "^0.6.1" + "@webpack-cli/configtest" "^3.0.1" + "@webpack-cli/info" "^3.0.1" + "@webpack-cli/serve" "^3.0.1" colorette "^2.0.14" - commander "^10.0.1" + commander "^12.1.0" cross-spawn "^7.0.3" - envinfo "^7.7.3" + envinfo "^7.14.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" interpret "^3.1.1" rechoir "^0.8.0" - webpack-merge "^5.7.3" + webpack-merge "^6.0.1" webpack-dev-middleware@^5.0.0: version "5.3.3" @@ -2979,40 +3147,50 @@ webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@5.82.0: - version "5.82.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.0.tgz#3c0d074dec79401db026b4ba0fb23d6333f88e7d" - integrity sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.1" + +webpack-sources@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" + integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== + +webpack@5.100.2: + version "5.100.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8" + integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.24.0" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.13.0" + enhanced-resolve "^5.17.2" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" + graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.2" + schema-utils "^4.3.2" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" - webpack-sources "^3.2.3" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.3.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -3042,17 +3220,29 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +which@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== + dependencies: + isexe "^2.0.0" + wildcard@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -3061,6 +3251,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -3076,22 +3275,27 @@ ws@~8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -3101,7 +3305,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.1.1: +yargs@^16.1.1: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -3114,6 +3318,19 @@ yargs@16.2.0, yargs@^16.1.1: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" diff --git a/html/settings.gradle.kts b/html/settings.gradle.kts index 6538d367ce1..4cf0324412b 100644 --- a/html/settings.gradle.kts +++ b/html/settings.gradle.kts @@ -20,6 +20,9 @@ pluginManagement { val repos = (localProperties?.getProperty("compose.web.repos"))?.split(File.pathSeparator) + val buildSrcProperties: java.util.Properties = properties(rootProject.projectDir.resolve("buildSrc/gradle.properties").absolutePath)!! + val kotlinVersion = buildSrcProperties["kotlin.version"] as String + repositories { gradlePluginPortal() mavenCentral() @@ -44,6 +47,9 @@ pluginManagement { if (requested.id.id == "org.jetbrains.compose") { useModule("org.jetbrains.compose:org.jetbrains.compose.gradle.plugin:$COMPOSE_CORE_VERSION") } + if (requested.id.id == "org.jetbrains.kotlin.plugin.compose") { + useVersion(kotlinVersion) + } } } } diff --git a/html/svg/build.gradle.kts b/html/svg/build.gradle.kts index d24bd3ef918..a10de83ee62 100644 --- a/html/svg/build.gradle.kts +++ b/html/svg/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.gradle.standardConf plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } diff --git a/html/test-utils/build.gradle.kts b/html/test-utils/build.gradle.kts index ad480dd6cb3..a74eb7bf820 100644 --- a/html/test-utils/build.gradle.kts +++ b/html/test-utils/build.gradle.kts @@ -3,6 +3,7 @@ import org.jetbrains.compose.gradle.standardConf plugins { kotlin("multiplatform") id("org.jetbrains.compose") + id("org.jetbrains.kotlin.plugin.compose") } diff --git a/html/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js b/html/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js index b7cc72065dc..d07fe8ce25c 100644 --- a/html/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js +++ b/html/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js @@ -9,7 +9,7 @@ const NewReporter = function(baseReporterDecorator, config, emitter) { const fs = require('fs'); // const kotlinVersion = fs.readFileSync(path.resolve(__dirname, "../../../buildSrc/build/kotlin.version"), 'utf8'); - const kotlinReporterModule = require(`../../../build/js/node_modules/kotlin-test-js-runner/karma-kotlin-reporter`); + const kotlinReporterModule = require(`../../../build/js/node_modules/kotlin-web-helpers/dist/karma-kotlin-reporter`); const KotlinReporter = kotlinReporterModule['reporter:karma-kotlin-reporter'][1]; this.$inject = KotlinReporter.$inject diff --git a/html/test-utils/conf/karma.config.common.d/patch.js b/html/test-utils/conf/karma.config.common.d/patch.js index 9a91dc9e6b8..df6c21a3709 100644 --- a/html/test-utils/conf/karma.config.common.d/patch.js +++ b/html/test-utils/conf/karma.config.common.d/patch.js @@ -10,3 +10,12 @@ config.browserDisconnectTimeout = 10000; config.browserDisconnectTolerance = 3; config.browserConsoleLogOptions = {level: "debug", format: "%b %T: %m", terminal: true}; config.logLevel = config.LOG_DEBUG; + +config.customLaunchers = { + ChromeForComposeTests: { + base: "ChromeHeadless", + flags: ["--no-sandbox", "--disable-search-engine-choice-screen"] + } +} + +config.browsers = ["ChromeForComposeTests"] \ No newline at end of file diff --git a/idea-plugin/.gitignore b/idea-plugin/.gitignore index 7c0a052ec71..00fa5ce75ea 100644 --- a/idea-plugin/.gitignore +++ b/idea-plugin/.gitignore @@ -1,3 +1,4 @@ build/ .gradle/ -.idea \ No newline at end of file +.idea +.intellijPlatform \ No newline at end of file diff --git a/idea-plugin/build.gradle.kts b/idea-plugin/build.gradle.kts index c5af9c2befa..63a14fd5285 100644 --- a/idea-plugin/build.gradle.kts +++ b/idea-plugin/build.gradle.kts @@ -1,76 +1,85 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("java") alias(libs.plugins.kotlin.jvm) - alias(libs.plugins.intellij.sdk) + alias(libs.plugins.intellij.plugin) alias(libs.plugins.intellij.changelog) } val projectProperties = ProjectProperties(project) group = "org.jetbrains.compose.desktop.ide" + version = projectProperties.deployVersion repositories { mavenCentral() + + intellijPlatform { defaultRepositories() } } dependencies { implementation("org.jetbrains.compose:preview-rpc") -} -intellij { - pluginName.set("Compose Multiplatform IDE Support") - type.set(projectProperties.platformType) - version.set(projectProperties.platformVersion) - downloadSources.set(projectProperties.platformDownloadSources) - updateSinceUntilBuild.set(false) - - plugins.set( - listOf( - "java", - "com.intellij.gradle", - "org.jetbrains.kotlin" - ) - ) -} + intellijPlatform { + intellijIdeaCommunity(libs.versions.idea) + instrumentationTools() + pluginVerifier() -tasks.buildSearchableOptions { - // temporary workaround - enabled = false + bundledPlugins("com.intellij.java", "org.jetbrains.kotlin", "com.intellij.gradle") + } } -tasks { - // Set the compatibility versions to 1.8 - withType { - sourceCompatibility = "11" - targetCompatibility = "11" +intellijPlatform { + pluginConfiguration { + name = "Compose Multiplatform IDE Support" + ideaVersion { + sinceBuild = "242.20224" + untilBuild = provider { null } + } + } + buildSearchableOptions = false + autoReload = false + + publishing { + token = System.getenv("IDE_PLUGIN_PUBLISH_TOKEN") + channels = projectProperties.pluginChannels } - withType { - kotlinOptions.jvmTarget = "11" + + pluginVerification { + ides { + recommended() + } } +} - publishPlugin { - token.set(System.getenv("IDE_PLUGIN_PUBLISH_TOKEN")) - channels.set(projectProperties.pluginChannels) +tasks { + withType { + sourceCompatibility = "21" + targetCompatibility = "21" } + withType { compilerOptions.jvmTarget.set(JvmTarget.JVM_21) } - runPluginVerifier { - ideVersions.set(projectProperties.pluginVerifierIdeVersions) + runIde { + systemProperty("idea.is.internal", true) + systemProperty("idea.kotlin.plugin.use.k2", true) + jvmArgumentProviders += CommandLineArgumentProvider { + listOf("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005") + } } } class ProjectProperties(private val project: Project) { - val deployVersion get() = stringProperty("deploy.version") - val platformType get() = stringProperty("platform.type") - val platformVersion get() = stringProperty("platform.version") - val platformDownloadSources get() = stringProperty("platform.download.sources").toBoolean() - val pluginChannels get() = listProperty("plugin.channels") - val pluginVerifierIdeVersions get() = listProperty("plugin.verifier.ide.versions") - - private fun stringProperty(key: String): String = - project.findProperty(key)!!.toString() + val deployVersion + get() = stringProperty("deploy.version") + + val pluginChannels + get() = listProperty("plugin.channels") + + private fun stringProperty(key: String): String = project.findProperty(key)!!.toString() + private fun listProperty(key: String): List = stringProperty(key).split(",").map { it.trim() } } diff --git a/idea-plugin/examples/simple-preview-example/gradle/wrapper/gradle-wrapper.properties b/idea-plugin/examples/simple-preview-example/gradle/wrapper/gradle-wrapper.properties index 69a9715077f..37f853b1c84 100644 --- a/idea-plugin/examples/simple-preview-example/gradle/wrapper/gradle-wrapper.properties +++ b/idea-plugin/examples/simple-preview-example/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/idea-plugin/gradle.properties b/idea-plugin/gradle.properties index 0ee97128d87..e9c53859439 100644 --- a/idea-plugin/gradle.properties +++ b/idea-plugin/gradle.properties @@ -5,10 +5,3 @@ kotlin.stdlib.default.dependency=false deploy.version=0.1-SNAPSHOT plugin.channels=snapshots -# Intellij since-build should be updated directly in src/main/resources/META-INF/plugin.xml -# See https://jb.gg/intellij-platform-builds-list for available build versions. -plugin.verifier.ide.versions=2022.1, 2022.2, 2022.3 - -platform.type=IC -platform.version=2022.1.1 -platform.download.sources=true diff --git a/idea-plugin/gradle/libs.versions.toml b/idea-plugin/gradle/libs.versions.toml index cb3034a5a84..b4f88efcb38 100644 --- a/idea-plugin/gradle/libs.versions.toml +++ b/idea-plugin/gradle/libs.versions.toml @@ -1,9 +1,10 @@ [versions] -kotlin = "1.9.0" - -[libraries] +kotlin = "1.9.23" +ideaPlugin = "2.1.0" +idea = "2024.2.1" +changelog = "2.2.0" [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } -intellij-sdk = "org.jetbrains.intellij:1.15.0" -intellij-changelog = "org.jetbrains.changelog:2.2.0" +intellij-plugin = { id = "org.jetbrains.intellij.platform", version.ref = "ideaPlugin" } +intellij-changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" } diff --git a/idea-plugin/gradle/wrapper/gradle-wrapper.properties b/idea-plugin/gradle/wrapper/gradle-wrapper.properties index db9a6b825d7..37f853b1c84 100644 --- a/idea-plugin/gradle/wrapper/gradle-wrapper.properties +++ b/idea-plugin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/ConfigurePreviewTaskNameCache.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/ConfigurePreviewTaskNameCache.kt index f5e07fc90f6..83cd4ad3454 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/ConfigurePreviewTaskNameCache.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/ConfigurePreviewTaskNameCache.kt @@ -15,6 +15,7 @@ import com.intellij.openapi.project.Project import com.intellij.util.concurrency.annotations.RequiresReadLock import org.jetbrains.plugins.gradle.settings.GradleSettings import org.jetbrains.plugins.gradle.util.GradleConstants +import java.util.Locale internal val DEFAULT_CONFIGURE_PREVIEW_TASK_NAME = "configureDesktopPreview" @@ -38,8 +39,11 @@ internal class ConfigurePreviewTaskNameProviderImpl : ConfigurePreviewTaskNamePr return null } - private fun previewTaskName(targetName: String = "") = - "$DEFAULT_CONFIGURE_PREVIEW_TASK_NAME${targetName.capitalize()}" + private fun previewTaskName(targetName: String = ""): String { + val capitalizedTargetName = + targetName.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } + return "$DEFAULT_CONFIGURE_PREVIEW_TASK_NAME$capitalizedTargetName" + } private fun moduleDataNodeOrNull(project: Project, modulePath: String): DataNode? { val projectDataManager = ProjectDataManager.getInstance() @@ -87,4 +91,4 @@ internal class ConfigurePreviewTaskNameCache( cachedTaskName = null } } -} \ No newline at end of file +} diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewLocation.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewLocation.kt index bf8920b006a..8c801ca03a5 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewLocation.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewLocation.kt @@ -5,6 +5,7 @@ package org.jetbrains.compose.desktop.ide.preview +import com.intellij.openapi.components.service import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.util.concurrency.annotations.RequiresReadLock @@ -20,7 +21,7 @@ internal fun KtNamedFunction.asPreviewFunctionOrNull(): PreviewLocation? { val module = ProjectFileIndex.getInstance(project).getModuleForFile(containingFile.virtualFile) if (module == null || module.isDisposed) return null - val service = project.getService(PreviewStateService::class.java) + val service = project.service() val previewTaskName = service.configurePreviewTaskNameOrNull(module) ?: DEFAULT_CONFIGURE_PREVIEW_TASK_NAME val modulePath = ExternalSystemApiUtil.getExternalProjectPath(module) ?: return null return PreviewLocation(fqName = fqName, modulePath = modulePath, taskName = previewTaskName) diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewStateService.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewStateService.kt index 74a6d248ca0..6e0b6dd399b 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewStateService.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewStateService.kt @@ -7,11 +7,9 @@ package org.jetbrains.compose.desktop.ide.preview import com.intellij.openapi.Disposable import com.intellij.openapi.components.Service -import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.externalSystem.model.task.* import com.intellij.openapi.externalSystem.service.notification.ExternalSystemProgressNotificationManager import com.intellij.openapi.module.Module -import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.ui.components.JBLoadingPanel import com.intellij.util.concurrency.annotations.RequiresReadLock @@ -22,9 +20,8 @@ import javax.swing.JComponent import javax.swing.event.AncestorEvent import javax.swing.event.AncestorListener -@Service -class PreviewStateService(private val myProject: Project) : Disposable { - private val idePreviewLogger = Logger.getInstance("org.jetbrains.compose.desktop.ide.preview") +@Service(Service.Level.PROJECT) +class PreviewStateService : Disposable { private val previewListener = CompositePreviewListener() private val previewManager: PreviewManager = PreviewManagerImpl(previewListener) val gradleCallbackPort: Int @@ -35,7 +32,7 @@ class PreviewStateService(private val myProject: Project) : Disposable { init { val projectRefreshListener = ConfigurePreviewTaskNameCacheInvalidator(configurePreviewTaskNameCache) ExternalSystemProgressNotificationManager.getInstance() - .addNotificationListener(projectRefreshListener, myProject) + .addNotificationListener(projectRefreshListener, this) } @RequiresReadLock @@ -80,7 +77,6 @@ private class PreviewResizeListener(private val previewManager: PreviewManager) override fun ancestorAdded(event: AncestorEvent) { updateFrameSize(event.component) - } override fun ancestorRemoved(event: AncestorEvent) { @@ -136,4 +132,4 @@ private class ConfigurePreviewTaskNameCacheInvalidator( configurePreviewTaskNameCache.invalidate() } } -} \ No newline at end of file +} diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewToolWindow.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewToolWindow.kt index c3a10cd4493..d4c0606b22e 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewToolWindow.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/PreviewToolWindow.kt @@ -11,23 +11,20 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.wm.ToolWindow import com.intellij.openapi.wm.ToolWindowFactory import com.intellij.ui.components.JBLoadingPanel -import org.jetbrains.compose.desktop.ide.preview.ui.PreviewPanel import java.awt.BorderLayout +import org.jetbrains.compose.desktop.ide.preview.ui.PreviewPanel class PreviewToolWindow : ToolWindowFactory, DumbAware { - override fun isApplicable(project: Project): Boolean = - isPreviewCompatible(project) + override suspend fun isApplicableAsync(project: Project): Boolean = isPreviewCompatible(project) override fun init(toolWindow: ToolWindow) { - ApplicationManager.getApplication().invokeLater { - toolWindow.setIcon(PreviewIcons.COMPOSE) - } + ApplicationManager.getApplication().invokeLater { toolWindow.setIcon(PreviewIcons.COMPOSE) } } override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) { toolWindow.contentManager.let { content -> val panel = PreviewPanel(project) - val loadingPanel = JBLoadingPanel(BorderLayout(), project) + val loadingPanel = JBLoadingPanel(BorderLayout(), toolWindow.disposable) loadingPanel.add(panel, BorderLayout.CENTER) content.addContent(content.factory.createContent(loadingPanel, null, false)) project.service().registerPreviewPanels(panel, loadingPanel) @@ -35,6 +32,5 @@ class PreviewToolWindow : ToolWindowFactory, DumbAware { } // don't show the toolwindow until a preview is requested - override fun shouldBeAvailable(project: Project): Boolean = - false -} \ No newline at end of file + override fun shouldBeAvailable(project: Project): Boolean = false +} diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/locationUtils.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/locationUtils.kt index c802e6369db..fec6f8fd538 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/locationUtils.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/desktop/ide/preview/locationUtils.kt @@ -21,32 +21,39 @@ import com.intellij.psi.util.CachedValueProvider import com.intellij.psi.util.CachedValuesManager import com.intellij.psi.util.parentOfType import com.intellij.util.concurrency.annotations.RequiresReadLock +import org.jetbrains.kotlin.analysis.api.analyze +import org.jetbrains.kotlin.analysis.api.symbols.KaClassLikeSymbol import org.jetbrains.kotlin.asJava.findFacadeClass -import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.psi.KtClass +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.KtNamedFunction +import org.jetbrains.kotlin.psi.allConstructors import org.jetbrains.kotlin.psi.psiUtil.containingClass -import org.jetbrains.kotlin.resolve.BindingContext -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe -import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -internal const val DESKTOP_PREVIEW_ANNOTATION_FQN = "androidx.compose.desktop.ui.tooling.preview.Preview" +internal const val DESKTOP_PREVIEW_ANNOTATION_FQN = + "androidx.compose.desktop.ui.tooling.preview.Preview" internal const val COMPOSABLE_FQ_NAME = "androidx.compose.runtime.Composable" +private val ComposableAnnotationClassId = ClassId.topLevel(FqName(COMPOSABLE_FQ_NAME)) +private val DesktopPreviewAnnotationClassId = + ClassId.topLevel(FqName(DESKTOP_PREVIEW_ANNOTATION_FQN)) + /** * Utils based on functions from AOSP, taken from * tools/adt/idea/compose-designer/src/com/android/tools/idea/compose/preview/util/PreviewElement.kt */ /** - * Returns whether a `@Composable` [PREVIEW_ANNOTATION_FQN] is defined in a valid location, which can be either: + * Returns whether a `@Composable` [DESKTOP_PREVIEW_ANNOTATION_FQN] is defined in a valid location, + * which can be either: * 1. Top-level functions - * 2. Non-nested functions defined in top-level classes that have a default (no parameter) constructor - * + * 2. Non-nested functions defined in top-level classes that have a default (no parameter) + * constructor */ private fun KtNamedFunction.isValidPreviewLocation(): Boolean { - if (valueParameters.size > 0) return false + if (valueParameters.isNotEmpty()) return false if (receiverTypeReference != null) return false if (isTopLevel) return true @@ -55,7 +62,8 @@ private fun KtNamedFunction.isValidPreviewLocation(): Boolean { // This is not a nested method val containingClass = containingClass() if (containingClass != null) { - // We allow functions that are not top level defined in top level classes that have a default (no parameter) constructor. + // We allow functions that are not top level defined in top level classes that have a + // default (no parameter) constructor. if (containingClass.isTopLevel() && containingClass.hasDefaultConstructor()) { return true } @@ -64,84 +72,67 @@ private fun KtNamedFunction.isValidPreviewLocation(): Boolean { return false } - /** * Computes the qualified name of the class containing this [KtNamedFunction]. * - * For functions defined within a Kotlin class, returns the qualified name of that class. For top-level functions, returns the JVM name of - * the Java facade class generated instead. - * + * For functions defined within a Kotlin class, returns the qualified name of that class. For + * top-level functions, returns the JVM name of the Java facade class generated instead. */ internal fun KtNamedFunction.getClassName(): String? = - if (isTopLevel) ((parent as? KtFile)?.findFacadeClass())?.qualifiedName else parentOfType()?.getQualifiedName() - + if (isTopLevel) ((parent as? KtFile)?.findFacadeClass())?.qualifiedName + else parentOfType()?.getQualifiedName() -/** Computes the qualified name for a Kotlin Class. Returns null if the class is a kotlin built-in. */ -private fun KtClass.getQualifiedName(): String? { - val classDescriptor = analyze(BodyResolveMode.PARTIAL).get(BindingContext.CLASS, this) ?: return null - return if (KotlinBuiltIns.isUnderKotlinPackage(classDescriptor) || classDescriptor.kind != ClassKind.CLASS) { - null - } else { - classDescriptor.fqNameSafe.asString() +/** + * Computes the qualified name for a Kotlin Class. Returns null if the class is a kotlin built-in. + */ +private fun KtClass.getQualifiedName(): String? = + analyze(this) { + val classSymbol = symbol + return when { + classSymbol !is KaClassLikeSymbol -> null + classSymbol.classId.isKotlinPackage() -> null + else -> classSymbol.classId?.asFqNameString() + } } -} + +private fun ClassId?.isKotlinPackage() = + this != null && startsWith(org.jetbrains.kotlin.builtins.StandardNames.BUILT_INS_PACKAGE_NAME) private fun KtClass.hasDefaultConstructor() = allConstructors.isEmpty().or(allConstructors.any { it.valueParameters.isEmpty() }) -/** - * Determines whether this [KtAnnotationEntry] has the specified qualified name. - * Careful: this does *not* currently take into account Kotlin type aliases (https://kotlinlang.org/docs/reference/type-aliases.html). - * Fortunately, type aliases are extremely uncommon for simple annotation types. - */ -private fun KtAnnotationEntry.fqNameMatches(fqName: String): Boolean { - // For inspiration, see IDELightClassGenerationSupport.KtUltraLightSupportImpl.findAnnotation in the Kotlin plugin. - val shortName = shortName?.asString() ?: return false - return fqName.endsWith(shortName) && fqName == getQualifiedName() -} - -/** - * Computes the qualified name of this [KtAnnotationEntry]. - * Prefer to use [fqNameMatches], which checks the short name first and thus has better performance. - */ -private fun KtAnnotationEntry.getQualifiedName(): String? = - analyze(BodyResolveMode.PARTIAL).get(BindingContext.ANNOTATION, this)?.fqName?.asString() - internal fun KtNamedFunction.composePreviewFunctionFqn() = "${getClassName()}.${name}" @RequiresReadLock internal fun KtNamedFunction.isValidComposablePreviewFunction(): Boolean { - fun isValidComposablePreviewImpl(): Boolean { - if (!isValidPreviewLocation()) return false - - var hasComposableAnnotation = false - var hasPreviewAnnotation = false - val annotationIt = annotationEntries.iterator() - while (annotationIt.hasNext() && !(hasComposableAnnotation && hasPreviewAnnotation)) { - val annotation = annotationIt.next() - hasComposableAnnotation = hasComposableAnnotation || annotation.fqNameMatches(COMPOSABLE_FQ_NAME) - hasPreviewAnnotation = hasPreviewAnnotation || annotation.fqNameMatches(DESKTOP_PREVIEW_ANNOTATION_FQN) - } + fun isValidComposablePreviewImpl(): Boolean = + analyze(this) { + if (!isValidPreviewLocation()) return false - return hasComposableAnnotation && hasPreviewAnnotation - } + val mySymbol = symbol + val hasComposableAnnotation = mySymbol.annotations.contains(ComposableAnnotationClassId) + val hasPreviewAnnotation = + mySymbol.annotations.contains(DesktopPreviewAnnotationClassId) - return CachedValuesManager.getCachedValue(this) { - cachedResult(isValidComposablePreviewImpl()) - } + return hasComposableAnnotation && hasPreviewAnnotation + } + + return CachedValuesManager.getCachedValue(this) { cachedResult(isValidComposablePreviewImpl()) } } // based on AndroidComposePsiUtils.kt from AOSP -internal fun KtNamedFunction.isComposableFunction(): Boolean { - return CachedValuesManager.getCachedValue(this) { - cachedResult(annotationEntries.any { it.fqNameMatches(COMPOSABLE_FQ_NAME) }) +internal fun KtNamedFunction.isComposableFunction(): Boolean = + CachedValuesManager.getCachedValue(this) { + val hasComposableAnnotation = + analyze(this) { symbol.annotations.contains(ComposableAnnotationClassId) } + + cachedResult(hasComposableAnnotation) } -} private fun KtNamedFunction.cachedResult(value: T) = CachedValueProvider.Result.create( // TODO: see if we can handle alias imports without ruining performance. value, this.containingKtFile, - ProjectRootModificationTracker.getInstance(project) - ) \ No newline at end of file + ProjectRootModificationTracker.getInstance(project), + ) diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/WebRunLineMarkerContributor.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/WebRunLineMarkerContributor.kt index 0bcf2045123..14c1a0d1ea8 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/WebRunLineMarkerContributor.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/WebRunLineMarkerContributor.kt @@ -15,9 +15,9 @@ class WebRunLineMarkerContributor : RunLineMarkerContributor() { override fun getInfo(element: PsiElement): Info? { if (element !is LeafPsiElement) return null if (element.node.elementType != KtTokens.IDENTIFIER) return null + if (element.parent.getAsJsMainFunctionOrNull() == null) return null - val jsMain = element.parent.getAsJsMainFunctionOrNull() ?: return null val icon = AllIcons.RunConfigurations.TestState.Run - return Info(icon, null, ExecutorAction.getActions()[0]) + return Info(icon, arrayOf(ExecutorAction.getActions()[0])) } } diff --git a/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/psiUtils.kt b/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/psiUtils.kt index 9f81b3d4fcc..3e9b3ec8cd1 100644 --- a/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/psiUtils.kt +++ b/idea-plugin/src/main/kotlin/org/jetbrains/compose/web/ide/run/psiUtils.kt @@ -6,45 +6,169 @@ package org.jetbrains.compose.web.ide.run import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.descriptors.FunctionDescriptor -import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny -import org.jetbrains.kotlin.idea.project.platform -import org.jetbrains.kotlin.idea.util.module +import com.intellij.util.concurrency.annotations.RequiresReadLock +import org.jetbrains.kotlin.analysis.api.KaSession +import org.jetbrains.kotlin.analysis.api.analyze +import org.jetbrains.kotlin.analysis.api.symbols.KaNamedFunctionSymbol +import org.jetbrains.kotlin.analysis.api.types.KaClassType +import org.jetbrains.kotlin.analysis.api.types.KaType +import org.jetbrains.kotlin.analysis.api.types.KaTypeNullability +import org.jetbrains.kotlin.config.LanguageFeature +import org.jetbrains.kotlin.idea.base.facet.platform.platform +import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings +import org.jetbrains.kotlin.idea.base.psi.KotlinPsiHeuristics +import org.jetbrains.kotlin.idea.base.util.module +import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.platform.js.JsPlatforms import org.jetbrains.kotlin.psi.KtNamedFunction -import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -import org.jetbrains.kotlin.types.KotlinType +import org.jetbrains.kotlin.types.Variance internal fun PsiElement.getAsJsMainFunctionOrNull(): KtNamedFunction? = (this as? KtNamedFunction)?.takeIf { it.isValidJsMain() } -internal fun KtNamedFunction.isValidJsMain(): Boolean = - isTopLevel && isJsPlatform() && isMainFun() +internal fun KtNamedFunction.isValidJsMain(): Boolean = isTopLevel && isJsPlatform() && isMainFun() internal fun KtNamedFunction.isJsPlatform(): Boolean = - module?.platform?.let { platform -> - platform in JsPlatforms.allJsPlatforms - } ?: false + module?.platform?.let { platform -> platform in JsPlatforms.allJsPlatforms } == true -internal fun KtNamedFunction.isMainFun(): Boolean { - if (name != "main") return false +internal fun KtNamedFunction.isMainFun(): Boolean = + isMainFromPsiOnly(this) && isMainFromAnalysis(this) - val parameters = valueParameters.toList() - if (parameters.size > 1) return false +////////////////////////////////////////////////////////////////// +// Copied and simplified from PsiOnlyKotlinMainFunctionDetector // +////////////////////////////////////////////////////////////////// +@RequiresReadLock +private fun isMainFromPsiOnly(function: KtNamedFunction): Boolean { + if (function.isLocal || function.typeParameters.isNotEmpty()) { + return false + } - val descriptor = resolveToDescriptorIfAny(BodyResolveMode.PARTIAL_NO_ADDITIONAL) - return descriptor is FunctionDescriptor - && isUnit(descriptor.returnType) - && (parameters.isEmpty() || descriptor.hasSingleArrayOfStringsParameter()) + val isTopLevel = function.isTopLevel + val parameterCount = + function.valueParameters.size + (if (function.receiverTypeReference != null) 1 else 0) + + if (parameterCount == 0) { + if (!isTopLevel) { + return false + } + + if ( + !function.languageVersionSettings.supportsFeature( + LanguageFeature.ExtendedMainConvention + ) + ) { + return false + } + } else if (parameterCount == 1 && !isMainCheckParameter(function)) { + return false + } else { + return false + } + + if ((KotlinPsiHeuristics.findJvmName(function) ?: function.name) != "main") { + return false + } + + if (!isTopLevel && !KotlinPsiHeuristics.hasJvmStaticAnnotation(function)) { + return false + } + + val returnTypeReference = function.typeReference + return !(returnTypeReference != null && + !KotlinPsiHeuristics.typeMatches(returnTypeReference, StandardClassIds.Unit)) +} + +private fun isMainCheckParameter(function: KtNamedFunction): Boolean { + val receiverTypeReference = function.receiverTypeReference + if (receiverTypeReference != null) { + return KotlinPsiHeuristics.typeMatches( + receiverTypeReference, + StandardClassIds.Array, + StandardClassIds.String, + ) + } + + val parameter = function.valueParameters.singleOrNull() ?: return false + val parameterTypeReference = parameter.typeReference ?: return false + + return when { + parameter.isVarArg -> + KotlinPsiHeuristics.typeMatches(parameterTypeReference, StandardClassIds.String) + else -> + KotlinPsiHeuristics.typeMatches( + parameterTypeReference, + StandardClassIds.Array, + StandardClassIds.String, + ) + } +} + +////////////////////////////////////////////////////////////////////// +// Copied and simplified from SymbolBasedKotlinMainFunctionDetector // +////////////////////////////////////////////////////////////////////// +private fun isMainFromAnalysis(function: KtNamedFunction): Boolean { + if (function.isLocal || function.typeParameters.isNotEmpty()) { + return false + } + + val supportsExtendedMainConvention = + function.languageVersionSettings.supportsFeature(LanguageFeature.ExtendedMainConvention) + + val isTopLevel = function.isTopLevel + val parameterCount = + function.valueParameters.size + (if (function.receiverTypeReference != null) 1 else 0) + + if (parameterCount == 0) { + if (!isTopLevel || !supportsExtendedMainConvention) { + return false + } + } else if (parameterCount > 1) { + return false + } + + analyze(function) { + if (parameterCount == 1) { + val parameterTypeReference = + function.receiverTypeReference + ?: function.valueParameters[0].typeReference + ?: return false + + val parameterType = parameterTypeReference.type + if ( + !parameterType.isResolvedClassType() || + !parameterType.isSubtypeOf(buildMainParameterType()) + ) { + return false + } + } + + val functionSymbol = function.symbol + if (functionSymbol !is KaNamedFunctionSymbol) { + return false + } + + if (functionSymbol.name.identifier != "main") { + return false + } + + if (!function.returnType.isUnitType) { + return false + } + } + return true } -private fun isUnit(type: KotlinType?): Boolean = - type != null && KotlinBuiltIns.isUnit(type) +private fun KaSession.buildMainParameterType(): KaType = + buildClassType(StandardClassIds.Array) { + val argumentType = + buildClassType(StandardClassIds.String) { nullability = KaTypeNullability.NON_NULLABLE } + + argument(argumentType, Variance.OUT_VARIANCE) + nullability = KaTypeNullability.NULLABLE + } -private fun FunctionDescriptor.hasSingleArrayOfStringsParameter(): Boolean { - val parameter = valueParameters.singleOrNull() ?: return false - val type = parameter.type - val typeArgument = type.arguments.singleOrNull()?.type - return KotlinBuiltIns.isArray(type) && KotlinBuiltIns.isString(typeArgument) -} \ No newline at end of file +private fun KaType.isResolvedClassType(): Boolean = + when (this) { + is KaClassType -> typeArguments.mapNotNull { it.type }.all { it.isResolvedClassType() } + else -> false + } diff --git a/idea-plugin/src/main/resources/META-INF/plugin.xml b/idea-plugin/src/main/resources/META-INF/plugin.xml index 947d927ea36..6accf89e542 100644 --- a/idea-plugin/src/main/resources/META-INF/plugin.xml +++ b/idea-plugin/src/main/resources/META-INF/plugin.xml @@ -23,6 +23,10 @@ com.intellij.gradle org.jetbrains.kotlin + + + + = 2.1.0 +- Compose Multiplatform 1.8.0-alpha02 +- iOS 12+ + +## Testing + +To execute XCTest cases on an iOS Simulator, use: + +```shell +cd launcher +xcodebuild test -scheme Launcher -destination "platform=iOS Simulator,name=iPhone 16 Pro" +``` diff --git a/instrumented-test/build.gradle.kts b/instrumented-test/build.gradle.kts new file mode 100644 index 00000000000..3e980a3b8fd --- /dev/null +++ b/instrumented-test/build.gradle.kts @@ -0,0 +1,12 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +plugins { + // this is necessary to avoid the plugins to be loaded multiple times + // in each subproject's classloader + alias(libs.plugins.composeMultiplatform) apply false + alias(libs.plugins.composeCompiler) apply false + alias(libs.plugins.kotlinMultiplatform) apply false +} diff --git a/instrumented-test/gradle.properties b/instrumented-test/gradle.properties new file mode 100644 index 00000000000..924263c828f --- /dev/null +++ b/instrumented-test/gradle.properties @@ -0,0 +1,11 @@ +# +# Copyright 2025 JetBrains s.r.o. and respective authors and developers. +# Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. +# + +#Kotlin +kotlin.code.style=official +kotlin.daemon.jvmargs=-Xmx2048M + +#Gradle +org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 diff --git a/instrumented-test/gradle/libs.versions.toml b/instrumented-test/gradle/libs.versions.toml new file mode 100644 index 00000000000..9e4706da625 --- /dev/null +++ b/instrumented-test/gradle/libs.versions.toml @@ -0,0 +1,14 @@ +[versions] +androidx-lifecycle = "2.8.4" +compose-multiplatform = "1.8.0-alpha02" +junit = "4.13.2" +kotlin = "2.1.0" + +[libraries] +androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" } +androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } + +[plugins] +composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } +composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } diff --git a/instrumented-test/gradle/wrapper/gradle-wrapper.jar b/instrumented-test/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000000..2c3521197d7 Binary files /dev/null and b/instrumented-test/gradle/wrapper/gradle-wrapper.jar differ diff --git a/instrumented-test/gradle/wrapper/gradle-wrapper.properties b/instrumented-test/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..37f853b1c84 --- /dev/null +++ b/instrumented-test/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/instrumented-test/gradlew b/instrumented-test/gradlew new file mode 100755 index 00000000000..f5feea6d6b1 --- /dev/null +++ b/instrumented-test/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/instrumented-test/gradlew.bat b/instrumented-test/gradlew.bat new file mode 100644 index 00000000000..9b42019c791 --- /dev/null +++ b/instrumented-test/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/instrumented-test/launcher/Launcher.xcodeproj/project.pbxproj b/instrumented-test/launcher/Launcher.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..799f4092f9f --- /dev/null +++ b/instrumented-test/launcher/Launcher.xcodeproj/project.pbxproj @@ -0,0 +1,514 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 9928B7FF2D32CD78006277AD /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928B7FE2D32CD75006277AD /* main.swift */; }; + 9928B8042D330AB6006277AD /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9928B8032D330AB6006277AD /* IOKit.framework */; }; + 9928B82C2D3422C1006277AD /* Launcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928B82B2D3422C1006277AD /* Launcher.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 997DFD082B18E5DC000B56B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9975AAC12AEABB5600AF155F /* Project object */; + proxyType = 1; + remoteGlobalIDString = 997DFCF92B18E5D3000B56B5; + remoteInfo = CMPUIKitUtilsTestApp; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 9928B7FE2D32CD75006277AD /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + 9928B8032D330AB6006277AD /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = DEVELOPER_DIR; }; + 9928B82B2D3422C1006277AD /* Launcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Launcher.swift; sourceTree = ""; }; + 997DFCE32B18D99E000B56B5 /* Launcher.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Launcher.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 997DFCFA2B18E5D3000B56B5 /* LauncherHost.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LauncherHost.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 99BE84D22C3467B100E43826 /* Launcher.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = Launcher.xctestplan; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 997DFCE02B18D99E000B56B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9928B8042D330AB6006277AD /* IOKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 997DFCF72B18E5D3000B56B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9928B8002D330AAA006277AD /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9928B8032D330AB6006277AD /* IOKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9975AAC02AEABB5600AF155F = { + isa = PBXGroup; + children = ( + 99BE84D22C3467B100E43826 /* Launcher.xctestplan */, + 997DFCE42B18D99E000B56B5 /* Launcher */, + 997DFCFB2B18E5D3000B56B5 /* LauncherHost */, + 9928B8002D330AAA006277AD /* Frameworks */, + 9975AACB2AEABB5600AF155F /* Products */, + ); + sourceTree = ""; + }; + 9975AACB2AEABB5600AF155F /* Products */ = { + isa = PBXGroup; + children = ( + 997DFCE32B18D99E000B56B5 /* Launcher.xctest */, + 997DFCFA2B18E5D3000B56B5 /* LauncherHost.app */, + ); + name = Products; + sourceTree = ""; + }; + 997DFCE42B18D99E000B56B5 /* Launcher */ = { + isa = PBXGroup; + children = ( + 9928B82B2D3422C1006277AD /* Launcher.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + 997DFCFB2B18E5D3000B56B5 /* LauncherHost */ = { + isa = PBXGroup; + children = ( + 9928B7FE2D32CD75006277AD /* main.swift */, + ); + path = LauncherHost; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 997DFCE22B18D99E000B56B5 /* Launcher */ = { + isa = PBXNativeTarget; + buildConfigurationList = 997DFCEC2B18D99E000B56B5 /* Build configuration list for PBXNativeTarget "Launcher" */; + buildPhases = ( + 9928B7EB2D326BB1006277AD /* Build Tests */, + 997DFCDF2B18D99E000B56B5 /* Sources */, + 997DFCE02B18D99E000B56B5 /* Frameworks */, + 997DFCE12B18D99E000B56B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 997DFD092B18E5DC000B56B5 /* PBXTargetDependency */, + ); + name = Launcher; + productName = CMPUIKitUtilsTests; + productReference = 997DFCE32B18D99E000B56B5 /* Launcher.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 997DFCF92B18E5D3000B56B5 /* LauncherHost */ = { + isa = PBXNativeTarget; + buildConfigurationList = 997DFD052B18E5D4000B56B5 /* Build configuration list for PBXNativeTarget "LauncherHost" */; + buildPhases = ( + 997DFCF62B18E5D3000B56B5 /* Sources */, + 997DFCF72B18E5D3000B56B5 /* Frameworks */, + 997DFCF82B18E5D3000B56B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LauncherHost; + productName = CMPUIKitUtilsTestApp; + productReference = 997DFCFA2B18E5D3000B56B5 /* LauncherHost.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9975AAC12AEABB5600AF155F /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1520; + TargetAttributes = { + 997DFCE22B18D99E000B56B5 = { + CreatedOnToolsVersion = 15.0; + LastSwiftMigration = 1610; + TestTargetID = 997DFCF92B18E5D3000B56B5; + }; + 997DFCF92B18E5D3000B56B5 = { + CreatedOnToolsVersion = 15.0; + LastSwiftMigration = 1610; + }; + }; + }; + buildConfigurationList = 9975AAC42AEABB5600AF155F /* Build configuration list for PBXProject "Launcher" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 9975AAC02AEABB5600AF155F; + productRefGroup = 9975AACB2AEABB5600AF155F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 997DFCE22B18D99E000B56B5 /* Launcher */, + 997DFCF92B18E5D3000B56B5 /* LauncherHost */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 997DFCE12B18D99E000B56B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 997DFCF82B18E5D3000B56B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9928B7EB2D326BB1006277AD /* Build Tests */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Build Tests"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :ui-instrumented-test:embedAndSignAppleFrameworkForXcode\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 997DFCDF2B18D99E000B56B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9928B82C2D3422C1006277AD /* Launcher.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 997DFCF62B18E5D3000B56B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9928B7FF2D32CD78006277AD /* main.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 997DFD092B18E5DC000B56B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 997DFCF92B18E5D3000B56B5 /* LauncherHost */; + targetProxy = 997DFD082B18E5DC000B56B5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 9975AADA2AEABB5600AF155F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UIRequiresFullScreen = NO; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9975AADB2AEABB5600AF155F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UIRequiresFullScreen = NO; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 997DFCEA2B18D99E000B56B5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ( + "$(inderited)", + "CMPUIKitUtils/**", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "-L$SRCROOT/../ui-instrumented-test/build/objc/iphonesimulator.xcarchive/Products/usr/local/lib", + "-lCMPTestUtils", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = JetBrains.CMPUIKitUtilsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LauncherHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/LauncherHost"; + }; + name = Debug; + }; + 997DFCEB2B18D99E000B56B5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ( + "$(inderited)", + "CMPUIKitUtils/**", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "-L$SRCROOT/../ui-instrumented-test/build/objc/iphonesimulator.xcarchive/Products/usr/local/lib", + "-lCMPTestUtils", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = JetBrains.CMPUIKitUtilsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LauncherHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/LauncherHost"; + }; + name = Release; + }; + 997DFD062B18E5D4000B56B5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 45226JTYHN; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = JetBrains.CMPUIKitUtilsTestApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 997DFD072B18E5D4000B56B5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 45226JTYHN; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = JetBrains.CMPUIKitUtilsTestApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9975AAC42AEABB5600AF155F /* Build configuration list for PBXProject "Launcher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9975AADA2AEABB5600AF155F /* Debug */, + 9975AADB2AEABB5600AF155F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 997DFCEC2B18D99E000B56B5 /* Build configuration list for PBXNativeTarget "Launcher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 997DFCEA2B18D99E000B56B5 /* Debug */, + 997DFCEB2B18D99E000B56B5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 997DFD052B18E5D4000B56B5 /* Build configuration list for PBXNativeTarget "LauncherHost" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 997DFD062B18E5D4000B56B5 /* Debug */, + 997DFD072B18E5D4000B56B5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9975AAC12AEABB5600AF155F /* Project object */; +} diff --git a/instrumented-test/launcher/Launcher.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/instrumented-test/launcher/Launcher.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..3f484a36235 --- /dev/null +++ b/instrumented-test/launcher/Launcher.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/instrumented-test/launcher/Launcher.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/jetsnack/ios/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to instrumented-test/launcher/Launcher.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/instrumented-test/launcher/Launcher.xcodeproj/xcshareddata/xcschemes/Launcher.xcscheme b/instrumented-test/launcher/Launcher.xcodeproj/xcshareddata/xcschemes/Launcher.xcscheme new file mode 100644 index 00000000000..0a36eceb5a3 --- /dev/null +++ b/instrumented-test/launcher/Launcher.xcodeproj/xcshareddata/xcschemes/Launcher.xcscheme @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/instrumented-test/launcher/Launcher.xcodeproj/xcshareddata/xcschemes/LauncherHost.xcscheme b/instrumented-test/launcher/Launcher.xcodeproj/xcshareddata/xcschemes/LauncherHost.xcscheme new file mode 100644 index 00000000000..67f224f5365 --- /dev/null +++ b/instrumented-test/launcher/Launcher.xcodeproj/xcshareddata/xcschemes/LauncherHost.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/instrumented-test/launcher/Launcher.xctestplan b/instrumented-test/launcher/Launcher.xctestplan new file mode 100644 index 00000000000..b193001b1bc --- /dev/null +++ b/instrumented-test/launcher/Launcher.xctestplan @@ -0,0 +1,28 @@ +{ + "configurations" : [ + { + "id" : "BD8089FB-4512-49DD-9E9F-FE08E8CF5266", + "name" : "Test Scheme Action", + "options" : { + + } + } + ], + "defaultOptions" : { + "targetForVariableExpansion" : { + "containerPath" : "container:CMPUIKitUtils.xcodeproj", + "identifier" : "997DFCF92B18E5D3000B56B5", + "name" : "CMPUIKitUtilsTestApp" + } + }, + "testTargets" : [ + { + "target" : { + "containerPath" : "container:Launcher.xcodeproj", + "identifier" : "997DFCE22B18D99E000B56B5", + "name" : "Launcher" + } + } + ], + "version" : 1 +} diff --git a/instrumented-test/launcher/Launcher/Launcher.swift b/instrumented-test/launcher/Launcher/Launcher.swift new file mode 100644 index 00000000000..e96dd1ec6df --- /dev/null +++ b/instrumented-test/launcher/Launcher/Launcher.swift @@ -0,0 +1,13 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import XCTest +import InstrumentedTests + +class TestLauncher: XCTestCase { + override class var defaultTestSuite: XCTestSuite { + ConfigurationKt.testSuite() + } +} diff --git a/instrumented-test/launcher/LauncherHost/main.swift b/instrumented-test/launcher/LauncherHost/main.swift new file mode 100644 index 00000000000..c2eeb1f3225 --- /dev/null +++ b/instrumented-test/launcher/LauncherHost/main.swift @@ -0,0 +1,24 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import UIKit + +class AppDelegate: NSObject, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { + + print(ProcessInfo.processInfo.environment) + print(ProcessInfo.processInfo.arguments) + window = UIWindow(frame: UIScreen.main.bounds) + window?.rootViewController = UIViewController() + window?.rootViewController?.view.backgroundColor = .orange + window?.makeKeyAndVisible() + return true + } +} + +UIApplicationMain(CommandLine.argc, CommandLine.unsafeArgv, nil, NSStringFromClass(AppDelegate.self)) diff --git a/instrumented-test/settings.gradle.kts b/instrumented-test/settings.gradle.kts new file mode 100644 index 00000000000..c956a87435b --- /dev/null +++ b/instrumented-test/settings.gradle.kts @@ -0,0 +1,37 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +rootProject.name = "instrumented-test" +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + +pluginManagement { + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + } +} + +include(":ui-instrumented-test") +include(":ui-xctest") diff --git a/instrumented-test/ui-instrumented-test/build.gradle.kts b/instrumented-test/ui-instrumented-test/build.gradle.kts new file mode 100644 index 00000000000..7316a936f41 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/build.gradle.kts @@ -0,0 +1,117 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithSimulatorTests + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.composeMultiplatform) + alias(libs.plugins.composeCompiler) +} + +kotlin { + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { iosTarget -> + val frameworkName = "CMPTestUtils" + val buildSchemeName = frameworkName + val objcDir = File(project.projectDir, "src/iosMain/objc") + val frameworkSourcesDir = objcDir + val sdkName: String + val destination: String + val architecture: String + if (iosTarget is KotlinNativeTargetWithSimulatorTests) { + sdkName = "iphonesimulator" + destination = "generic/platform=iOS Simulator" + architecture = if (iosTarget.name == "iosSimulatorArm64") "arm64" else "x86_64" + } else { + sdkName = "iphoneos" + destination = "generic/platform=iOS" + architecture = "arm64" + } + + + val buildDir = project.layout.buildDirectory.dir("objc/${sdkName}.xcarchive").get().asFile.absolutePath + val frameworkPath = File(buildDir,"/Products/usr/local/lib/lib${frameworkName}.a") + val headersPath = File(frameworkSourcesDir, frameworkName) + + val compilerArgs = listOf( + "-include-binary", frameworkPath.absolutePath.toString(), + ) + "-tr" + + iosTarget.compilations.configureEach { + val libTaskName = "${compileTaskProvider.name}ObjCLib" + project.tasks.register(libTaskName, Exec::class.java) { + inputs.dir(frameworkSourcesDir) + .withPropertyName("${frameworkName}-${sdkName}") + .withPathSensitivity(PathSensitivity.RELATIVE) + + outputs.cacheIf { true } + outputs.dir(buildDir) + .withPropertyName("${frameworkName}-${sdkName}-archive") + + workingDir(frameworkSourcesDir) + commandLine("xcodebuild") + args( + "archive", + "-scheme", buildSchemeName, + "-archivePath", buildDir, + "-sdk", sdkName, + "-destination", destination, + "SKIP_INSTALL=NO", + "BUILD_LIBRARY_FOR_DISTRIBUTION=YES", + "VALID_ARCHS=${architecture}", + "MACH_O_TYPE=staticlib" + ) + } + + tasks[compileTaskProvider.name].dependsOn(libTaskName) + + cinterops.register("test") { + val cinteropTask = tasks[interopProcessingTaskName] + + headersPath.listFiles()?.forEach { + if (it.name.endsWith(".h")) { + extraOpts("-header", it.name) + compilerOpts("-I${headersPath}") + } + cinteropTask.inputs.file(it) + } + } + compileTaskProvider.configure { + compilerOptions { + freeCompilerArgs.addAll(compilerArgs) + } + } + } + iosTarget.binaries { + framework { + baseName = "InstrumentedTests" + isStatic = true + linkerOpts( + "-ObjC", + "-framework", "UIKit", + "-framework", "IOKit" + ) + } + } + } + + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material) + implementation(compose.ui) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + implementation(libs.androidx.lifecycle.viewmodel) + implementation(libs.androidx.lifecycle.runtime.compose) + api(project(":ui-xctest")) + } + } +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/accessibility/ComponentsAccessibilitySemanticTest.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/accessibility/ComponentsAccessibilitySemanticTest.kt new file mode 100644 index 00000000000..e6f7b9039ba --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/accessibility/ComponentsAccessibilitySemanticTest.kt @@ -0,0 +1,650 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.ui.accessibility + +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.material.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.compose.test.utils.assertAccessibilityTree +import androidx.compose.test.utils.available +import androidx.compose.test.utils.findNodeWithTag +import androidx.compose.test.utils.runUIKitInstrumentedTest +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.heading +import androidx.compose.ui.semantics.role +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.state.ToggleableState +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.viewinterop.UIKitInteropProperties +import androidx.compose.ui.viewinterop.UIKitView +import platform.UIKit.* +import kotlin.test.* + +class ComponentsAccessibilitySemanticTest { + @OptIn(ExperimentalMaterialApi::class) + @Test + fun testProgressNodesSemantic() = runUIKitInstrumentedTest { + var sliderValue = 0.4f + setContentWithAccessibilityEnabled { + Column { + Slider( + value = sliderValue, + onValueChange = { sliderValue = it } + ) + LinearProgressIndicator(progress = 0.7f) + RangeSlider( + value = 30f..70f, + onValueChange = {}, + valueRange = 0f..100f + ) + } + } + + assertAccessibilityTree { + // Slider + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitAdjustable) + value = "40%" + } + + // LinearProgressIndicator + node { + isAccessibilityElement = true + value = "70%" + traits() + } + + // Range Slider + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitAdjustable) + value = "43%" + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitAdjustable) + value = "57%" + } + } + } + + @Test + fun testSliderAction() = runUIKitInstrumentedTest { + var sliderValue = 0.4f + setContentWithAccessibilityEnabled { + Slider( + value = sliderValue, + onValueChange = { sliderValue = it }, + modifier = Modifier.testTag("Slider") + ) + } + + var oldValue = sliderValue + val sliderNode = findNodeWithTag("Slider") + sliderNode.element?.accessibilityIncrement() + assertTrue(oldValue < sliderValue) + + oldValue = sliderValue + sliderNode.element?.accessibilityDecrement() + assertTrue(oldValue > sliderValue) + } + + @Test + fun testToggleAndCheckboxSemantic() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column { + Switch(false, {}) + Checkbox(false, {}) + TriStateCheckbox(ToggleableState.On, {}) + TriStateCheckbox(ToggleableState.Off, {}) + TriStateCheckbox(ToggleableState.Indeterminate, {}) + } + } + + assertAccessibilityTree { + // Switch + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + if (available(iosMajorVersion = 17)) { + traits(UIAccessibilityTraitToggleButton) + } + } + // Checkbox + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + // ToggleableState + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitSelected + ) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + } + } + + @Test + fun testToggleAndCheckboxAction() = runUIKitInstrumentedTest { + var switch by mutableStateOf(false) + var checkbox by mutableStateOf(false) + var triStateCheckbox by mutableStateOf(ToggleableState.Off) + + setContentWithAccessibilityEnabled { + Column { + Switch( + checked = switch, + onCheckedChange = { switch = it }, + modifier = Modifier.testTag("Switch") + ) + Checkbox( + checked = checkbox, + onCheckedChange = { checkbox = it }, + modifier = Modifier.testTag("Checkbox") + ) + TriStateCheckbox( + state = triStateCheckbox, + onClick = { triStateCheckbox = ToggleableState.On }, + modifier = Modifier.testTag("TriStateCheckbox") + ) + } + } + + findNodeWithTag("Switch").element?.accessibilityActivate() + assertTrue(switch) + waitForIdle() + findNodeWithTag("Switch").element?.accessibilityActivate() + assertFalse(switch) + + findNodeWithTag("Checkbox").element?.accessibilityActivate() + assertTrue(checkbox) + waitForIdle() + findNodeWithTag("Checkbox").element?.accessibilityActivate() + assertFalse(checkbox) + + findNodeWithTag("TriStateCheckbox").element?.accessibilityActivate() + assertEquals(ToggleableState.On, triStateCheckbox) + } + + @Test + fun testRadioButtonSelection() = runUIKitInstrumentedTest { + var selectedIndex by mutableStateOf(0) + + setContentWithAccessibilityEnabled { + Column { + RadioButton(selected = selectedIndex == 0, onClick = { selectedIndex = 0 }) + RadioButton(selected = selectedIndex == 1, onClick = { selectedIndex = 1 }) + RadioButton( + selected = selectedIndex == 2, + onClick = { selectedIndex = 2 }, + Modifier.testTag("RadioButton") + ) + } + } + + assertAccessibilityTree { + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitSelected + ) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + } + + findNodeWithTag("RadioButton").element?.accessibilityActivate() + assertAccessibilityTree { + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitSelected + ) + } + } + + selectedIndex = 0 + assertAccessibilityTree { + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitSelected + ) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + node { + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + } + } + + @Test + fun testImageSemantics() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column { + Image( + ImageBitmap(10, 10), + contentDescription = null, + modifier = Modifier.testTag("Image 1") + ) + Image( + ImageBitmap(10, 10), + contentDescription = null, + modifier = Modifier.testTag("Image 2").semantics { role = Role.Image } + ) + Image( + ImageBitmap(10, 10), + contentDescription = "Abstract Picture", + modifier = Modifier.testTag("Image 3") + ) + } + } + + assertAccessibilityTree { + node { + isAccessibilityElement = false + identifier = "Image 1" + traits() + } + node { + isAccessibilityElement = false + identifier = "Image 2" + traits(UIAccessibilityTraitImage) + } + node { + isAccessibilityElement = true + identifier = "Image 3" + label = "Abstract Picture" + traits(UIAccessibilityTraitImage) + } + } + } + + @Test + fun testTextSemantics() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column { + Text("Static Text", modifier = Modifier.testTag("Text 1")) + Text("Custom Button", modifier = Modifier.testTag("Text 2").clickable { }) + } + } + + assertAccessibilityTree { + node { + isAccessibilityElement = true + identifier = "Text 1" + label = "Static Text" + traits(UIAccessibilityTraitStaticText) + } + node { + isAccessibilityElement = true + identifier = "Text 2" + label = "Custom Button" + traits(UIAccessibilityTraitButton) + } + } + } + + @Test + fun testDisabledSemantics() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column { + Button({}, enabled = false) {} + TextField("", {}, enabled = false) + Slider(value = 0f, onValueChange = {}, enabled = false) + Switch(checked = false, onCheckedChange = {}, enabled = false) + Checkbox(checked = false, onCheckedChange = {}, enabled = false) + TriStateCheckbox(state = ToggleableState.Off, onClick = {}, enabled = false) + } + } + + assertAccessibilityTree { + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitNotEnabled + ) + } + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitNotEnabled + ) + } + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitAdjustable, + UIAccessibilityTraitNotEnabled + ) + } + node { + isAccessibilityElement = true + if (available(iosMajorVersion = 17)) { + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitToggleButton, + UIAccessibilityTraitNotEnabled + ) + } else { + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitNotEnabled + ) + } + } + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitNotEnabled + ) + } + node { + isAccessibilityElement = true + traits( + UIAccessibilityTraitButton, + UIAccessibilityTraitNotEnabled + ) + } + } + } + + @Test + fun testHeadingSemantics() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Scaffold(topBar = { + TopAppBar { + Text("Header", modifier = Modifier.semantics { heading() }) + } + }) { + Column { + Text("Content") + } + } + } + + assertAccessibilityTree { + node { + label = "Header" + isAccessibilityElement = true + traits(UIAccessibilityTraitHeader) + } + node { + label = "Content" + isAccessibilityElement = true + traits(UIAccessibilityTraitStaticText) + } + } + } + + @Test + fun testSelectionContainer() = runUIKitInstrumentedTest { + @Composable + fun LabeledInfo(label: String, data: String) { + Text( + buildAnnotatedString { + append("$label: ") + append(data) + } + ) + } + + setContentWithAccessibilityEnabled { + SelectionContainer { + Column { + Text("Title") + LabeledInfo("Subtitle", "subtitle") + LabeledInfo("Details", "details") + } + } + } + + assertAccessibilityTree { + node { + label = "Title" + isAccessibilityElement = true + traits(UIAccessibilityTraitStaticText) + } + node { + label = "Subtitle: subtitle" + isAccessibilityElement = true + traits(UIAccessibilityTraitStaticText) + } + node { + label = "Details: details" + isAccessibilityElement = true + traits(UIAccessibilityTraitStaticText) + } + } + } + + @Test + fun testVisibleNodes() = runUIKitInstrumentedTest { + var alpha by mutableStateOf(0f) + + setContentWithAccessibilityEnabled { + Text("Hidden", modifier = Modifier.graphicsLayer { + this.alpha = alpha + }) + } + + assertAccessibilityTree { + label = "Hidden" + isAccessibilityElement = false + } + + alpha = 1f + assertAccessibilityTree { + label = "Hidden" + isAccessibilityElement = true + } + } + + @Test + fun testVisibleNodeContainers() = runUIKitInstrumentedTest { + var alpha by mutableStateOf(0f) + + setContentWithAccessibilityEnabled { + Column { + Text("Text 1") + Row(modifier = Modifier.graphicsLayer { + this.alpha = alpha + }) { + Text("Text 2") + Text("Text 3") + } + } + } + + assertAccessibilityTree { + node { + label = "Text 1" + isAccessibilityElement = true + } + node { + label = "Text 2" + isAccessibilityElement = false + } + node { + label = "Text 3" + isAccessibilityElement = false + } + } + + alpha = 1f + assertAccessibilityTree { + node { + label = "Text 1" + isAccessibilityElement = true + } + node { + label = "Text 2" + isAccessibilityElement = true + } + node { + label = "Text 3" + isAccessibilityElement = true + } + } + } + + @Test + fun testAccessibilityContainer() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column(modifier = Modifier.testTag("Container")) { + Text("Text 1") + Text("Text 2") + } + } + + assertAccessibilityTree { + identifier = "Container" + isAccessibilityElement = false + node { + label = "Text 1" + isAccessibilityElement = true + } + node { + label = "Text 2" + isAccessibilityElement = true + } + } + } + + @ExperimentalComposeUiApi + @Test + fun testAccessibilityInterop() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column(modifier = Modifier.testTag("Container")) { + UIKitView( + factory = { + val view = UIView() + view.setIsAccessibilityElement(true) + view.setAccessibilityLabel("Disabled") + view + }, + properties = UIKitInteropProperties(isNativeAccessibilityEnabled = false) + ) + UIKitView( + factory = { + val view = UIView() + view.setIsAccessibilityElement(true) + view.setAccessibilityLabel("Enabled") + view + }, + properties = UIKitInteropProperties(isNativeAccessibilityEnabled = true) + ) + UIKitView( + factory = { + val view = UIView() + view.setIsAccessibilityElement(true) + view.setAccessibilityLabel("Enabled With Tag") + view + }, + properties = UIKitInteropProperties(isNativeAccessibilityEnabled = true), + modifier = Modifier.testTag("Container Tag") + ) + } + } + + assertAccessibilityTree { + identifier = "Container" + isAccessibilityElement = false + node { + label = "Enabled" + isAccessibilityElement = true + } + node { + identifier = "Container Tag" + isAccessibilityElement = false + node { + label = "Enabled With Tag" + isAccessibilityElement = true + } + } + } + } + + @Test + fun testChildrenOfCollapsedNode() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column { + Row(modifier = Modifier.testTag("row").clickable {}) { + Text("Foo", modifier = Modifier.testTag("row_title")) + Text("Bar", modifier = Modifier.testTag("row_subtitle")) + } + } + } + + assertAccessibilityTree { + node { + label = "Foo\nBar" + identifier = "row" + isAccessibilityElement = true + traits(UIAccessibilityTraitButton) + } + node { + label = "Foo" + identifier = "row_title" + isAccessibilityElement = false + traits(UIAccessibilityTraitStaticText) + } + node { + label = "Bar" + identifier = "row_subtitle" + isAccessibilityElement = false + traits(UIAccessibilityTraitStaticText) + } + } + } +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/accessibility/LayersAccessibilityTest.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/accessibility/LayersAccessibilityTest.kt new file mode 100644 index 00000000000..c15708424dc --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/accessibility/LayersAccessibilityTest.kt @@ -0,0 +1,170 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.ui.accessibility + +import androidx.compose.material.Text +import androidx.compose.runtime.mutableStateOf +import androidx.compose.test.utils.assertAccessibilityTree +import androidx.compose.test.utils.runUIKitInstrumentedTest +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.Popup +import androidx.compose.ui.window.PopupProperties +import kotlin.test.Test + +class LayersAccessibilityTest { + + @Test + fun testNodesCoveredByPopup() = runUIKitInstrumentedTest { + val topPopup = mutableStateOf(false) + val bottomPopup = mutableStateOf(false) + val topPopupFocusable = mutableStateOf(false) + setContentWithAccessibilityEnabled { + Text("Root") + if (bottomPopup.value) { + Popup { + Text("Popup 1") + } + } + if (topPopup.value) { + Popup(properties = PopupProperties(focusable = topPopupFocusable.value)) { + Text("Popup 2") + } + } + } + + assertAccessibilityTree { + label = "Root" + } + + bottomPopup.value = true + // Non-focusable popup should not hide content under it for accessibility reader + assertAccessibilityTree { + node { + label = "Root" + } + node { + label = "Popup 1" + } + } + + topPopup.value = true + // Non-focusable popup should not hide content under it for accessibility reader + assertAccessibilityTree { + node { + label = "Root" + } + node { + node { + label = "Popup 1" + } + node { + label = "Popup 2" + } + } + } + + topPopupFocusable.value = true + // Popup should react on focusable flag change + assertAccessibilityTree { + label = "Popup 2" + } + + topPopup.value = false + bottomPopup.value = false + assertAccessibilityTree { + label = "Root" + } + } + + @Test + fun testNodesCoveredByDialog() = runUIKitInstrumentedTest { + val showDialog = mutableStateOf(false) + setContentWithAccessibilityEnabled { + Text("Root") + Popup { + Text("Popup") + } + if (showDialog.value) { + Dialog(onDismissRequest = {}) { + Text("Dialog") + } + } + } + + assertAccessibilityTree { + node { + label = "Root" + } + node { + label = "Popup" + } + } + + showDialog.value = true + // Dialog popup should hide content under it for accessibility reader + assertAccessibilityTree { + label = "Dialog" + } + + showDialog.value = false + + assertAccessibilityTree { + node { + label = "Root" + } + node { + label = "Popup" + } + } + } + + @Test + fun testLayersAppearanceOrder() = runUIKitInstrumentedTest { + val bottomLayer = mutableStateOf(false) + val middleLayers = mutableStateOf(false) + setContentWithAccessibilityEnabled { + Text("Root") + if (bottomLayer.value) { + Popup(properties = PopupProperties(focusable = true)) { + Text("Bottom") + } + } + if (middleLayers.value) { + Popup(properties = PopupProperties(focusable = true)) { + Text("Middle 1") + } + // Non-focusable layer + Popup { + Text("Middle 2") + } + } + Popup(properties = PopupProperties(focusable = true)) { + Text("Top") + } + } + + assertAccessibilityTree { + label = "Top" + } + + bottomLayer.value = true + // The last added layer should be on top + assertAccessibilityTree { + label = "Bottom" + } + + middleLayers.value = true + // The last added layers should be on top + assertAccessibilityTree { + node { + label = "Middle 1" + } + node { + label = "Middle 2" + } + } + } +} \ No newline at end of file diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/configuration.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/configuration.kt new file mode 100644 index 00000000000..bec2e0ff66d --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/configuration.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test + +import kotlinx.cinterop.ExperimentalForeignApi +import androidx.compose.xctest.* +import platform.XCTest.XCTestSuite + +@Suppress("unused") +@OptIn(ExperimentalForeignApi::class) +fun testSuite(): XCTestSuite = setupXCTestSuite( + // Run all test cases from the tests + // BasicInteractionTest::class, + // LayersAccessibilityTest::class, + + // Run test cases from a test + // BasicInteractionTest::testButtonClick, + // LayersAccessibilityTest::testLayersAppearanceOrder +) diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/interaction/BasicInteractionTest.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/interaction/BasicInteractionTest.kt new file mode 100644 index 00000000000..f5dc3862418 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/interaction/BasicInteractionTest.kt @@ -0,0 +1,152 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test.interaction + +import androidx.compose.foundation.ScrollState +import androidx.compose.foundation.background +import androidx.compose.foundation.combinedClickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.Button +import androidx.compose.material.Text +import androidx.compose.material.TextField +import androidx.compose.test.utils.assertVisibleInContainer +import androidx.compose.test.utils.findNodeWithLabel +import androidx.compose.test.utils.findNodeWithTag +import androidx.compose.test.utils.runUIKitInstrumentedTest +import androidx.compose.test.utils.toDpRect +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.boundsInWindow +import androidx.compose.ui.layout.onGloballyPositioned +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.unit.* +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class BasicInteractionTest { + /** + * Distance in pixels a touch can wander before we think the user is scrolling. + * https://github.com/JetBrains/compose-multiplatform-core/blob/jb-main/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/platform/Constants.uikit.kt#L22 + */ + private val CUPERTINO_TOUCH_SLOP = 10.dp + + @Test + fun testButtonClick() = runUIKitInstrumentedTest { + var clicks = 0 + setContentWithAccessibilityEnabled { + Box(modifier = Modifier.fillMaxSize()) { + Button( + onClick = { clicks++ }, + modifier = Modifier + .testTag("Button") + .align(Alignment.Center) + ) { + Text("Click me") + } + } + } + + assertEquals(0, clicks) + findNodeWithLabel(label = "Click me") + .tap() + assertEquals(1, clicks) + findNodeWithLabel(label = "Click me") + .tap() + assertEquals(2, clicks) + findNodeWithLabel(label = "Click me") + .tap() + assertEquals(3, clicks) + } + + @Test + fun testScroll() = runUIKitInstrumentedTest { + val state = ScrollState(0) + var boxRect = DpRect(DpOffset.Zero, DpSize.Zero) + setContentWithAccessibilityEnabled { + Column(modifier = Modifier.fillMaxSize().verticalScroll(state)) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(100.dp) + .background(Color.Red) + .testTag("Hidden after scroll box") + ) + Box(modifier = Modifier + .fillMaxWidth() + .height(100.dp) + .background(Color.Green) + .testTag("Box") + .onGloballyPositioned { boxRect = it.boundsInWindow().toDpRect(density) } + ) + Box( + modifier = Modifier + .fillMaxWidth() + .height(screenSize.height) + .background(Color.White) + ) + } + } + + touchDown(screenSize.center) + .dragBy(dy = -(100.dp + CUPERTINO_TOUCH_SLOP)) + + waitForIdle() + + assertEquals(100 * density.density, state.value.toFloat()) + assertEquals(DpRect(DpOffset.Zero, DpSize(screenSize.width, 100.dp)), boxRect) + } + + @Test + fun testDoubleTap() = runUIKitInstrumentedTest { + var doubleClicked = false + setContentWithAccessibilityEnabled { + Column(modifier = Modifier.safeDrawingPadding()) { + Box(modifier = Modifier.size(100.dp).testTag("Clickable").combinedClickable( + onDoubleClick = { doubleClicked = true } + ) {}) + TextField("Hello Long Text", {}, modifier = Modifier.testTag("TextField")) + } + } + + findNodeWithTag("Clickable").doubleTap() + + assertTrue(doubleClicked) + } + + @Test + fun testTextFieldCallout() = runUIKitInstrumentedTest { + setContentWithAccessibilityEnabled { + Column(modifier = Modifier.safeDrawingPadding()) { + TextField("Hello-long-long-long-long-long-text", {}, modifier = Modifier.testTag("TextField")) + } + } + + findNodeWithTag("TextField").doubleTap() + + waitForIdle() + + // Verify elements from context menu present + findNodeWithLabel("Cut").let { + it.assertVisibleInContainer() + assertTrue(it.isAccessibilityElement ?: false) + } + findNodeWithLabel("Copy").let { + it.assertVisibleInContainer() + assertTrue(it.isAccessibilityElement ?: false) + } + findNodeWithLabel("Paste").let { + it.assertVisibleInContainer() + assertTrue(it.isAccessibilityElement ?: false) + } + findNodeWithLabel("Select All").let { + it.assertVisibleInContainer() + assertTrue(it.isAccessibilityElement ?: false) + } + } +} \ No newline at end of file diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/AccessibilityTestNode.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/AccessibilityTestNode.kt new file mode 100644 index 00000000000..4fce65aceef --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/AccessibilityTestNode.kt @@ -0,0 +1,321 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test.utils + +import androidx.compose.ui.unit.* +import kotlinx.cinterop.CValue +import kotlin.test.assertEquals +import kotlin.test.fail +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.useContents +import platform.CoreGraphics.CGRect +import platform.UIKit.* +import platform.darwin.NSIntegerMax +import platform.darwin.NSObject +import kotlin.test.assertTrue + +/** + * Constructs an accessibility tree representation of the UI hierarchy starting from the window. + * + * This function traverses the accessibility elements and their children to build a structured + * node tree with information about accessibility properties, allowing for analysis and testing + * of the accessibility features of the UI. + * + * @return The root node of the accessibility tree representing the current UI hierarchy, + * or null if the tree cannot be constructed. + */ +@OptIn(ExperimentalForeignApi::class) +internal fun UIKitInstrumentedTest.getAccessibilityTree(): AccessibilityTestNode { + fun buildNode(element: NSObject, level: Int): AccessibilityTestNode { + val children = mutableListOf() + val elements = element.accessibilityElements() + + if (elements != null) { + elements.forEach { + children.add(buildNode(it as NSObject, level = level + 1)) + } + } else { + val count = element.accessibilityElementCount() + if (count == NSIntegerMax) { + when { + element is UIView -> { + element.subviews.mapNotNull { + children.add(buildNode(it as UIView, level = level + 1)) + } + } + } + } else if (count > 0) { + (0 until count).mapNotNull { + val child = element.accessibilityElementAtIndex(it) as NSObject + children.add(buildNode(child, level = level + 1)) + } + } else if (element is UIView) { + element.subviews.mapNotNull { + children.add(buildNode(it as UIView, level = level + 1)) + } + } + } + + return AccessibilityTestNode( + isAccessibilityElement = element.isAccessibilityElement, + identifier = (element as? UIAccessibilityElement)?.accessibilityIdentifier, + label = element.accessibilityLabel, + value = element.accessibilityValue, + frame = element.accessibilityFrame.toDpRect(), + children = children, + traits = allAccessibilityTraits.keys.filter { + element.accessibilityTraits and it != 0.toULong() + }, + element = element + ).also { node -> + children.forEach { it.parent = node } + } + } + + return buildNode(appDelegate.window!!, 0) +} + +private val allAccessibilityTraits = mapOf( + UIAccessibilityTraitNone to "UIAccessibilityTraitNone", + UIAccessibilityTraitButton to "UIAccessibilityTraitButton", + UIAccessibilityTraitLink to "UIAccessibilityTraitLink", + UIAccessibilityTraitHeader to "UIAccessibilityTraitHeader", + UIAccessibilityTraitSearchField to "UIAccessibilityTraitSearchField", + UIAccessibilityTraitImage to "UIAccessibilityTraitImage", + UIAccessibilityTraitSelected to "UIAccessibilityTraitSelected", + UIAccessibilityTraitPlaysSound to "UIAccessibilityTraitPlaysSound", + UIAccessibilityTraitKeyboardKey to "UIAccessibilityTraitKeyboardKey", + UIAccessibilityTraitStaticText to "UIAccessibilityTraitStaticText", + UIAccessibilityTraitSummaryElement to "UIAccessibilityTraitSummaryElement", + UIAccessibilityTraitNotEnabled to "UIAccessibilityTraitNotEnabled", + UIAccessibilityTraitUpdatesFrequently to "UIAccessibilityTraitUpdatesFrequently", + UIAccessibilityTraitStartsMediaSession to "UIAccessibilityTraitStartsMediaSession", + UIAccessibilityTraitAdjustable to "UIAccessibilityTraitAdjustable", + UIAccessibilityTraitAllowsDirectInteraction to "UIAccessibilityTraitAllowsDirectInteraction", + UIAccessibilityTraitCausesPageTurn to "UIAccessibilityTraitCausesPageTurn", + UIAccessibilityTraitTabBar to "UIAccessibilityTraitTabBar", + UIAccessibilityTraitToggleButton to "UIAccessibilityTraitToggleButton", + UIAccessibilityTraitSupportsZoom to "UIAccessibilityTraitSupportsZoom" +) + +/** + * Represents a node in an accessibility tree, which is used for testing accessibility features + * within a UI hierarchy. This class captures various accessibility properties of UI components + * and structures them into a tree. + */ +internal data class AccessibilityTestNode( + var isAccessibilityElement: Boolean? = null, + var identifier: String? = null, + var label: String? = null, + var value: String? = null, + var frame: DpRect? = null, + var children: List? = null, + var traits: List? = null, + var element: NSObject? = null, + var parent: AccessibilityTestNode? = null, +) { + fun node(builder: AccessibilityTestNode.() -> Unit) { + children = (children ?: emptyList()) + AccessibilityTestNode().apply(builder) + } + + fun traits(vararg trait: UIAccessibilityTraits) { + traits = (traits ?: emptyList()) + trait + } + + fun validate(actualNode: AccessibilityTestNode?) { + isAccessibilityElement?.let { + assertEquals(it, actualNode?.isAccessibilityElement) + } + identifier?.let { + assertEquals(it, actualNode?.identifier) + } + label?.let { + assertEquals(it, actualNode?.label) + } + value?.let { + assertEquals(it, actualNode?.value) + } + frame?.let { + assertEquals(it, actualNode?.frame) + } + traits?.let { + assertEquals(it.toSet(), actualNode?.traits?.toSet()) + } + children?.let { + assertEquals(it.count(), actualNode?.children?.count()) + it.zip(actualNode?.children ?: emptyList()) { validator, child -> + validator.validate(child) + } + } + } + + val hasAccessibilityComponents: Boolean = identifier != null || + isAccessibilityElement == true || + label != null || + value != null || + traits?.isNotEmpty() == true + + fun printTree(): String { + val builder = StringBuilder() + + fun print(node: AccessibilityTestNode, level: Int) { + val indent = " ".repeat(level) + builder.append(indent) + builder.append(node.label ?: node.identifier ?: "other") + builder.append(" - ${node.frame}") + node.element?.let { + builder.append(" - <${it::class}>") + } + builder.appendLine() + + val fieldIndent = "$indent |" + if (node.isAccessibilityElement == true) { + builder.appendLine("$fieldIndent isAccessibilityElement: true") + } + node.identifier?.let { + builder.appendLine("$fieldIndent accessibilityIdentifier: $it") + } + node.label?.let { builder.appendLine("$fieldIndent accessibilityLabel: $it") } + if (node.traits?.isNotEmpty() == true) { + builder.appendLine("$fieldIndent accessibilityTraits:") + node.traits?.forEach { + builder.appendLine("$fieldIndent - ${allAccessibilityTraits.getValue(it)}") + } + } + node.value?.let { builder.appendLine("$fieldIndent accessibilityValue: $it") } + node.element?.accessibilityCustomActions?.takeIf { it.isNotEmpty() }?.let { + builder.appendLine("$fieldIndent accessibilityCustomActions: $it") + } + + node.children?.forEach { print(it, level + 1) } + } + print(this, level = 0) + + return builder.toString() + } +} + +/** + * Normalizes the accessibility nodes tree by analyzing its properties and children. + * Removes all element that are not accessibility elements or does not work as elements containers. + */ +internal fun AccessibilityTestNode.normalized(): AccessibilityTestNode? { + val normalizedChildren = children?.flatMap { child -> + child.normalized()?.let { + if (it.hasAccessibilityComponents || (it.children?.count() ?: 0) > 1) { + listOf(it) + } else { + it.children + } + } ?: emptyList() + } ?: emptyList() + + return if (hasAccessibilityComponents || normalizedChildren.count() > 1) { + this.copy(children = normalizedChildren) + } else if (normalizedChildren.count() == 1) { + normalizedChildren.single() + } else { + null + } +} + +internal fun AccessibilityTestNode.assertVisibleInContainer() { + var frame = this.frame ?: DpRectZero() + var iterator = parent + while (iterator != null) { + frame = frame.intersect(iterator.frame ?: DpRectZero()) + iterator = iterator.parent + } + + assertTrue( + frame.width >= 1.dp && frame.height >= 1.dp, + "Element with frame ${this.frame} is not visible or has very small size" + ) +} + +/** + * Asserts that the current accessibility tree matches the expected structure defined in the + * provided lambda. The expected structure is defined by configuring an `AccessibilityTestNode`, + * which is then validated against the actual normalized accessibility tree. This function waits + * for the UI to be idle before performing the validation. + * + * @param expected A lambda that allows the caller to specify the expected structure and properties + * of the accessibility tree. + */ +internal fun UIKitInstrumentedTest.assertAccessibilityTree( + expected: AccessibilityTestNode.() -> Unit +) { + val validator = AccessibilityTestNode() + with(validator, expected) + assertAccessibilityTree(validator) +} + +internal fun UIKitInstrumentedTest.findNodeWithTag(tag: String) = findNodeOrNull { + it.identifier == tag +} ?: fail("Unable to find node with identifier: $tag") + +internal fun UIKitInstrumentedTest.findNodeWithLabel(label: String) = findNodeOrNull { + it.label == label +} ?: fail("Unable to find node with label: $label") + +internal fun UIKitInstrumentedTest.firstAccessibleNode() = + findNodeOrNull { it.isAccessibilityElement == true } + ?: fail("Unable to find accessibility element") + +internal fun UIKitInstrumentedTest.findNodeOrNull( + isValid: (AccessibilityTestNode) -> Boolean +): AccessibilityTestNode? { + waitForIdle() + val actualTreeRoot = getAccessibilityTree() + + fun check(node: AccessibilityTestNode): AccessibilityTestNode? { + return if (isValid(node)) { + node + } else { + node.children?.firstNotNullOfOrNull(::check) + } + } + + return check(node = actualTreeRoot) +} + +/** + * Asserts that the current accessibility tree matches the expected structure defined in the + * provided lambda. The expected structure is defined by configuring an `AccessibilityTestNode`, + * which is then validated against the actual normalized accessibility tree. This function waits + * for the UI to be idle before performing the validation. + * + * @param expected The expected accessibility tree structure represented by an instance of + * `AccessibilityTestNode`. + */ +internal fun UIKitInstrumentedTest.assertAccessibilityTree(expected: AccessibilityTestNode) { + waitForIdle() + + val actualTreeRoot = getAccessibilityTree() + val normalizedTree = actualTreeRoot.normalized() + + try { + expected.validate(normalizedTree) + } catch (e: Throwable) { + val message = "Unable to validate accessibility tree. Expected normalized tree:\n\n" + + "${expected.printTree()}\n" + + "Normalized tree:\n\n${normalizedTree?.printTree()}\n" + + "Actual tree:\n\n${actualTreeRoot.printTree()}\n" + println(message) + + throw e + } +} + +@OptIn(ExperimentalForeignApi::class) +internal fun CValue.toDpRect() = useContents { + DpRect( + left = origin.x.dp, + top = origin.y.dp, + right = origin.x.dp + size.width.dp, + bottom = origin.y.dp + size.height.dp, + ) +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/DpRect+Utils.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/DpRect+Utils.kt new file mode 100644 index 00000000000..f82e5c0cb83 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/DpRect+Utils.kt @@ -0,0 +1,60 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test.utils + +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.unit.* +import kotlinx.cinterop.CValue +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.useContents +import platform.CoreGraphics.CGPoint +import platform.CoreGraphics.CGPointMake +import platform.UIKit.UIView + +@OptIn(ExperimentalForeignApi::class) +internal fun DpOffset.toCGPoint(): CValue = CGPointMake(x.value.toDouble(), y.value.toDouble()) + +internal fun DpRect.center(): DpOffset = DpOffset((left + right) / 2, (top + bottom) / 2) + +internal fun DpRect.toRect(density: Density): Rect = Rect( + left = left.value * density.density, + right = right.value * density.density, + top = top.value * density.density, + bottom = bottom.value * density.density +) + +internal fun Rect.toDpRect(density: Density): DpRect = DpRect( + left = left.dp / density.density, + right = right.dp / density.density, + top = top.dp / density.density, + bottom = bottom.dp / density.density +) + +internal fun DpRectZero() = DpRect(0.dp, 0.dp, 0.dp, 0.dp) + +internal fun DpRect.intersect(other: DpRect): DpRect { + if (right < other.left || other.right < left) return DpRectZero() + if (bottom < other.top || other.bottom < top) return DpRectZero() + return DpRect( + left = max(left, other.left), + top = max(top, other.top), + right = min(right, other.right), + bottom = min(bottom, other.bottom) + ) +} + +@OptIn(ExperimentalForeignApi::class) +internal fun CValue.toDpOffset(): DpOffset = useContents { DpOffset(x.dp, y.dp) } + +@OptIn(ExperimentalForeignApi::class) +internal fun UIView.dpRectInWindow() = convertRect(bounds, toView = null).toDpRect() +internal fun List.forEachWithPrevious(block: (T, T) -> Unit) { + var previous: T? = null + for (current in this) { + previous?.let { block(it, current) } + previous = current + } +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/OsVersion.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/OsVersion.kt new file mode 100644 index 00000000000..9b13c2d4836 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/OsVersion.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test.utils + +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.useContents +import platform.Foundation.NSProcessInfo + +@OptIn(ExperimentalForeignApi::class) +internal fun available(iosMajorVersion: Int, iosMinorVersion: Int = 0): Boolean { + return NSProcessInfo.processInfo.operatingSystemVersion.useContents { + when { + majorVersion.toInt() < iosMajorVersion -> false + majorVersion.toInt() > iosMajorVersion -> true + minorVersion.toInt() < iosMinorVersion -> false + else -> true + } + } +} \ No newline at end of file diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/UIKitInstrumentedTest.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/UIKitInstrumentedTest.kt new file mode 100644 index 00000000000..de0058f4e7b --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/UIKitInstrumentedTest.kt @@ -0,0 +1,245 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test.utils + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.ExperimentalComposeApi +import androidx.compose.ui.platform.AccessibilitySyncOptions +import androidx.compose.ui.uikit.ComposeUIViewControllerConfiguration +import androidx.compose.ui.unit.* +import androidx.compose.ui.window.ComposeUIViewController +import kotlinx.cinterop.* +import platform.Foundation.* +import platform.UIKit.* +import platform.darwin.NSObject +import kotlin.time.Duration +import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.Duration.Companion.seconds +import kotlin.time.TimeSource + +/** + * Sets up the test environment for iOS instrumented tests, runs the given [test][testBlock] + * and then tears down the test environment. Use the methods on [UIKitInstrumentedTest] + * in the test to find compose content and make assertions on it. + * @param [testBlock] The test function. + */ +internal fun runUIKitInstrumentedTest( + testBlock: UIKitInstrumentedTest.() -> Unit +) = with(UIKitInstrumentedTest()) { + try { + testBlock() + } finally { + tearDown() + } +} + +/** + * A class designed for instrumented testing of UIKit-related functionality. It provides methods for setting + * content, simulating user interactions, and managing application lifecycle during testing scenarios. + * + * This class is primarily intended for internal use within a Compose multiplatform environment that integrates + * with UIKit APIs on iOS. + * + * Constructor properties are initialized with the attributes of the main screen and a mock delegate to simulate + * the application setup. + */ +@OptIn(ExperimentalForeignApi::class) +internal class UIKitInstrumentedTest { + private val screen = UIScreen.mainScreen() + val density = Density(density = screen.scale.toFloat()) + val appDelegate = MockAppDelegate() + val screenSize: DpSize = screen.bounds().useContents { DpSize(size.width.dp, size.height.dp) } + lateinit var hostingViewController: UIViewController + private set + + @OptIn(ExperimentalComposeApi::class) + fun setContentWithAccessibilityEnabled(content: @Composable () -> Unit) { + setContent({ accessibilitySyncOptions = AccessibilitySyncOptions.Always }, content) + } + + fun setContent( + configure: ComposeUIViewControllerConfiguration.() -> Unit = {}, + content: @Composable () -> Unit + ) { + // TODO: Use ComposeHostingViewController when moving to compose-multiplatform-core repo + hostingViewController = ComposeUIViewController( + configure = { + enforceStrictPlistSanityCheck = false + configure() + }, + content = content + ) + + appDelegate.setUpWindow(hostingViewController) + waitForIdle() + } + + fun tearDown() { + appDelegate.cleanUp() + } + + private val isIdle: Boolean + get() { + return false + // TODO: Uncomment. Use proper isIdle implementation when moving to compose-multiplatform-core repo + // val hadSnapshotChanges = Snapshot.current.hasPendingChanges() + // val isApplyObserverNotificationPending = Snapshot.isApplyObserverNotificationPending + // + // val containerInvalidations = hostingViewController.performSelector(NSSelectorFromString("hasInvalidations")) as Boolean + // + // return !hadSnapshotChanges && !isApplyObserverNotificationPending && !containerInvalidations + } + + + fun waitForIdle(timeoutMillis: Long = 500) { + // TODO: Properly implement `waitForIdle` when moving to compose-multiplatform-core repo + try { + waitUntil(timeoutMillis = timeoutMillis) { isIdle } + } catch (e: Throwable) { + // Do nothing + } + } + + fun delay(timeoutMillis: Long) { + val runLoop = NSRunLoop.currentRunLoop() + runLoop.runUntilDate(NSDate.dateWithTimeIntervalSinceNow(timeoutMillis.toDouble() / 1000.0)) + } + + fun waitUntil( + conditionDescription: String? = null, + timeoutMillis: Long = 5_000, + condition: () -> Boolean + ) { + val runLoop = NSRunLoop.currentRunLoop() + val endTime = TimeSource.Monotonic.markNow() + timeoutMillis.milliseconds + while (!condition()) { + if (TimeSource.Monotonic.markNow() > endTime) { + throw AssertionError(conditionDescription ?: "Timeout ${timeoutMillis}ms reached.") + } + runLoop.runUntilDate(NSDate.dateWithTimeIntervalSinceNow(0.005)) + } + } + + // Touches: + + /** + * Simulates a touch-down event at the specified position on the screen. + * + * @param position The position on the root hosting controller. + * @return A UITouch object representing the touch interaction. + */ + fun touchDown(position: DpOffset): UITouch { + val positionOnWindow = hostingViewController.view.convertPoint( + point = position.toCGPoint(), + toView = appDelegate.window() + ) + + return appDelegate.window()!!.touchDown(positionOnWindow.toDpOffset()) + } + + /** + * Simulates a tap gesture at the specified position on the screen. + * + * @param position The position on the root hosting controller. + */ + fun tap(position: DpOffset): UITouch { + return touchDown(position).up() + } + + /** + * Simulates a tap gesture for a given AccessibilityTestNode. + */ + fun AccessibilityTestNode.tap(): UITouch { + val frame = frame ?: error("Internal error. Frame is missing.") + return tap(frame.center()) + } + + fun AccessibilityTestNode.doubleTap(): UITouch { + val frame = frame ?: error("Internal error. Frame is missing.") + tap(frame.center()) + delay(50) + return tap(frame.center()) + } + + /** + * Simulates a drag gesture on the screen, moving the touch from its current location to a specified position + * over a given duration. + * + * @param location The target position of the drag in DpOffset. + * @param duration The duration of the drag gesture, defaulting to 0.5 seconds. + * @return The same UITouch instance after completing the drag gesture. + */ + fun UITouch.dragTo(location: DpOffset, duration: Duration = 0.5.seconds): UITouch { + val startLocation = locationInView(appDelegate.window()!!).toDpOffset() + val endLocation = hostingViewController.view.convertPoint( + point = location.toCGPoint(), + toView = appDelegate.window() + ).toDpOffset() + + val startTime = TimeSource.Monotonic.markNow() + while (TimeSource.Monotonic.markNow() <= startTime + duration) { + val progress = ((TimeSource.Monotonic.markNow() - startTime) / duration).coerceIn(0.0, 1.0) + val touchLocation = lerp(startLocation, endLocation, progress.toFloat()) + + this.moveToLocationOnWindow(touchLocation) + NSRunLoop.currentRunLoop().runUntilDate(NSDate.dateWithTimeIntervalSinceNow(1.0 / 60)) + } + this.moveToLocationOnWindow(endLocation) + return this + } + + /** + * Simulates a drag gesture on the screen, moving the touch from its current location by a specified offset + * over a given duration. + * + * @param offset The offset by which the touch is moved, specified as a DpOffset. + * @param duration The duration of the drag gesture, defaulting to 0.5 seconds. + * @return The same UITouch instance after completing the drag gesture. + */ + fun UITouch.dragBy(offset: DpOffset, duration: Duration = 0.5.seconds): UITouch { + return dragTo(location + offset, duration) + } + + /** + * Simulates a drag gesture on the screen, moving the touch from its current location by specified x and y offsets + * over a given duration. + * + * @param dx The horizontal offset by which the touch is moved, specified as a Dp. Defaults to 0.dp. + * @param dy The vertical offset by which the touch is moved, specified as a Dp. Defaults to 0.dp. + * @param duration The duration of the drag gesture, specified as a Duration. Defaults to 0.5 seconds. + * @return The same UITouch instance after completing the drag gesture. + */ + fun UITouch.dragBy(dx: Dp = 0.dp, dy: Dp = 0.dp, duration: Duration = 0.5.seconds): UITouch { + return dragBy(DpOffset(dx, dy), duration) + } + + val UITouch.location: DpOffset get() { + return locationInView(hostingViewController.view).toDpOffset() + } +} + +@OptIn(ExperimentalForeignApi::class) +internal class MockAppDelegate: NSObject(), UIApplicationDelegateProtocol { + private var _window: UIWindow? = null + override fun window(): UIWindow? = _window + + fun setUpWindow(viewController: UIViewController) { + UIApplication.sharedApplication().setDelegate(this) + + _window = UIWindow(frame = UIScreen.mainScreen.bounds) + _window?.backgroundColor = UIColor.systemBackgroundColor + + _window?.rootViewController = viewController + _window?.makeKeyAndVisible() + } + + fun cleanUp() { + _window = null + val window = UIWindow(frame = UIScreen.mainScreen.bounds) + window.rootViewController = UIViewController() + window.makeKeyAndVisible() + } +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/UITouch+Utils.kt b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/UITouch+Utils.kt new file mode 100644 index 00000000000..c70a14440f0 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/kotlin/androidx/compose/test/utils/UITouch+Utils.kt @@ -0,0 +1,45 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +package androidx.compose.test.utils + +import androidx.compose.ui.unit.DpOffset +import kotlinx.cinterop.ExperimentalForeignApi +import platform.UIKit.UITouch +import platform.UIKit.UITouchPhase +import platform.UIKit.UIWindow + +@OptIn(ExperimentalForeignApi::class) +internal fun UIWindow.touchDown(location: DpOffset): UITouch { + return UITouch.touchAtPoint( + point = location.toCGPoint(), + inWindow = this, + tapCount = 1L, + fromEdge = false + ).also { + it.send() + } +} + +@OptIn(ExperimentalForeignApi::class) +internal fun UITouch.moveToLocationOnWindow(location: DpOffset) { + setLocationInWindow(location.toCGPoint()) + setPhase(UITouchPhase.UITouchPhaseMoved) + send() +} + +@OptIn(ExperimentalForeignApi::class) +internal fun UITouch.hold(): UITouch { + setPhase(UITouchPhase.UITouchPhaseStationary) + send() + return this +} + +@OptIn(ExperimentalForeignApi::class) +internal fun UITouch.up(): UITouch { + setPhase(UITouchPhase.UITouchPhaseEnded) + send() + return this +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/project.pbxproj b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..c3d8fcdd639 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/project.pbxproj @@ -0,0 +1,311 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 63; + objects = { + +/* Begin PBXBuildFile section */ + 999869392D479FAB0096554D /* HIDEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 999869362D479FAB0096554D /* HIDEvent.m */; }; + 9998693A2D479FAB0096554D /* UITouch+Test.m in Sources */ = {isa = PBXBuildFile; fileRef = 999869382D479FAB0096554D /* UITouch+Test.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 995A49382D3023CC0091FB9B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 995A493A2D3023CC0091FB9B /* libCMPTestUtils.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCMPTestUtils.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 999869352D479FAB0096554D /* HIDEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HIDEvent.h; sourceTree = ""; }; + 999869362D479FAB0096554D /* HIDEvent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HIDEvent.m; sourceTree = ""; }; + 999869372D479FAB0096554D /* UITouch+Test.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITouch+Test.h"; sourceTree = ""; }; + 999869382D479FAB0096554D /* UITouch+Test.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITouch+Test.m"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 995A49372D3023CC0091FB9B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 995A49032D301B510091FB9B = { + isa = PBXGroup; + children = ( + 9998693B2D479FC80096554D /* CMPTestUtils */, + 995A490E2D301B510091FB9B /* Products */, + ); + sourceTree = ""; + wrapsLines = 1; + }; + 995A490E2D301B510091FB9B /* Products */ = { + isa = PBXGroup; + children = ( + 995A493A2D3023CC0091FB9B /* libCMPTestUtils.a */, + ); + name = Products; + sourceTree = ""; + }; + 9998693B2D479FC80096554D /* CMPTestUtils */ = { + isa = PBXGroup; + children = ( + 999869352D479FAB0096554D /* HIDEvent.h */, + 999869362D479FAB0096554D /* HIDEvent.m */, + 999869372D479FAB0096554D /* UITouch+Test.h */, + 999869382D479FAB0096554D /* UITouch+Test.m */, + ); + path = CMPTestUtils; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 995A49392D3023CC0091FB9B /* CMPTestUtils */ = { + isa = PBXNativeTarget; + buildConfigurationList = 995A49412D3023CC0091FB9B /* Build configuration list for PBXNativeTarget "CMPTestUtils" */; + buildPhases = ( + 995A49362D3023CC0091FB9B /* Sources */, + 995A49372D3023CC0091FB9B /* Frameworks */, + 995A49382D3023CC0091FB9B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CMPTestUtils; + packageProductDependencies = ( + ); + productName = CMPTestUtils; + productReference = 995A493A2D3023CC0091FB9B /* libCMPTestUtils.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 995A49042D301B510091FB9B /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastUpgradeCheck = 1610; + TargetAttributes = { + 995A49392D3023CC0091FB9B = { + CreatedOnToolsVersion = 16.1; + }; + }; + }; + buildConfigurationList = 995A49072D301B510091FB9B /* Build configuration list for PBXProject "CMPTestUtils" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 995A49032D301B510091FB9B; + minimizedProjectReferenceProxies = 1; + productRefGroup = 995A490E2D301B510091FB9B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 995A49392D3023CC0091FB9B /* CMPTestUtils */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 995A49362D3023CC0091FB9B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 999869392D479FAB0096554D /* HIDEvent.m in Sources */, + 9998693A2D479FAB0096554D /* UITouch+Test.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 995A49182D301B510091FB9B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 995A49192D301B510091FB9B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 995A49422D3023CC0091FB9B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 995A49432D3023CC0091FB9B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 995A49072D301B510091FB9B /* Build configuration list for PBXProject "CMPTestUtils" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 995A49182D301B510091FB9B /* Debug */, + 995A49192D301B510091FB9B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 995A49412D3023CC0091FB9B /* Build configuration list for PBXNativeTarget "CMPTestUtils" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 995A49422D3023CC0091FB9B /* Debug */, + 995A49432D3023CC0091FB9B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 995A49042D301B510091FB9B /* Project object */; +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..919434a6254 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/xcshareddata/xcschemes/CMPTestUtils.xcscheme b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/xcshareddata/xcschemes/CMPTestUtils.xcscheme new file mode 100644 index 00000000000..635accdd8aa --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils.xcodeproj/xcshareddata/xcschemes/CMPTestUtils.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/HIDEvent.h b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/HIDEvent.h new file mode 100644 index 00000000000..09ad41ee3f3 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/HIDEvent.h @@ -0,0 +1,10 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +#import + +typedef struct __IOHIDEvent * IOHIDEventPtr; + +IOHIDEventPtr HIDEventWithTouches(NSArray *touches) CF_RETURNS_RETAINED; diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/HIDEvent.m b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/HIDEvent.m new file mode 100644 index 00000000000..00e823a8ddb --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/HIDEvent.m @@ -0,0 +1,160 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +#import +#import "HIDEvent.h" +#import + +typedef enum : uint32_t { + kIOHIDEventTypeNULL, + kIOHIDEventTypeVendorDefined, + kIOHIDEventTypeButton, + kIOHIDEventTypeKeyboard, + kIOHIDEventTypeTranslation, + kIOHIDEventTypeRotation, + kIOHIDEventTypeScroll, + kIOHIDEventTypeScale, + kIOHIDEventTypeZoom, + kIOHIDEventTypeVelocity, + kIOHIDEventTypeOrientation, + kIOHIDEventTypeDigitizer, +} IOHIDEventType; + +typedef enum : uint32_t { + kIOHIDDigitizerEventRange = 1<<0, + kIOHIDDigitizerEventTouch = 1<<1, + kIOHIDDigitizerEventPosition = 1<<2, +} IOHIDDigitizerEventMask; + +typedef enum : uint32_t { + kIOHIDEventFieldDigitizerX = kIOHIDEventTypeDigitizer << 16, + kIOHIDEventFieldDigitizerY, + kIOHIDEventFieldDigitizerZ, + kIOHIDEventFieldDigitizerButtonMask, + kIOHIDEventFieldDigitizerType, + kIOHIDEventFieldDigitizerIndex, + kIOHIDEventFieldDigitizerIdentity, + kIOHIDEventFieldDigitizerEventMask, + kIOHIDEventFieldDigitizerRange, + kIOHIDEventFieldDigitizerTouch, + kIOHIDEventFieldDigitizerPressure, + kIOHIDEventFieldDigitizerAuxiliaryPressure, + kIOHIDEventFieldDigitizerTwist, + kIOHIDEventFieldDigitizerTiltX, + kIOHIDEventFieldDigitizerTiltY, + kIOHIDEventFieldDigitizerAltitude, + kIOHIDEventFieldDigitizerAzimuth, + kIOHIDEventFieldDigitizerQuality, + kIOHIDEventFieldDigitizerDensity, + kIOHIDEventFieldDigitizerIrregularity, + kIOHIDEventFieldDigitizerMajorRadius, + kIOHIDEventFieldDigitizerMinorRadius, + kIOHIDEventFieldDigitizerCollection, + kIOHIDEventFieldDigitizerCollectionChord, + kIOHIDEventFieldDigitizerChildEventMask, + kIOHIDEventFieldDigitizerIsDisplayIntegrated, +} IOHIDEventFieldDigitizer; + +typedef enum : uint32_t { + kIOHIDDigitizerTransducerTypeStylus = 0, + kIOHIDDigitizerTransducerTypePuck, + kIOHIDDigitizerTransducerTypeFinger, + kIOHIDDigitizerTransducerTypeHand +} IOHIDDigitizerTransducerType; + +void IOHIDEventAppendEvent(IOHIDEventPtr event, IOHIDEventPtr child); +void IOHIDEventSetIntegerValue(IOHIDEventPtr event, IOHIDEventFieldDigitizer fieldDigitizer, int value); +void IOHIDEventSetSenderID(IOHIDEventPtr event, uint64_t sender); + +IOHIDEventPtr IOHIDEventCreateDigitizerEvent(CFAllocatorRef allocator, + AbsoluteTime time, + IOHIDDigitizerTransducerType type, + uint32_t index, + uint32_t identity, + uint32_t eventMask, + uint32_t buttonMask, + double x, + double y, + double z, + double tipPressure, + double barrelPressure, + Boolean range, + Boolean touch, + UInt32 options); + +IOHIDEventPtr IOHIDEventCreateDigitizerFingerEventWithQuality(CFAllocatorRef allocator, + AbsoluteTime time, + uint32_t index, + uint32_t identity, + IOHIDDigitizerEventMask eventMask, + double x, + double y, + double z, + double tipPressure, + double twist, + double minorRadius, + double majorRadius, + double quality, + double density, + double irregularity, + Boolean range, + Boolean touch, + UInt32 options); + +IOHIDEventPtr HIDEventWithTouches(NSArray *touches) { + uint64_t absolute_time = mach_absolute_time(); + + AbsoluteTime time; + time.hi = absolute_time >> 32; + time.lo = (UInt32)absolute_time; + + IOHIDEventPtr event = IOHIDEventCreateDigitizerEvent(kCFAllocatorDefault, + time, + kIOHIDDigitizerTransducerTypeHand, + 0, + 0, + kIOHIDDigitizerEventTouch, + 0, + 0, + 0, + 0, + 0, + 0, + false, + true, + 0); + + IOHIDEventSetIntegerValue(event, kIOHIDEventFieldDigitizerIsDisplayIntegrated, true); + + for (UITouch *touch in touches) { + IOHIDDigitizerEventMask eventMask = (touch.phase == UITouchPhaseMoved) ? kIOHIDDigitizerEventPosition : (kIOHIDDigitizerEventRange | kIOHIDDigitizerEventTouch); + Boolean rangeAndTouch = touch.phase != UITouchPhaseEnded; + CGPoint touchLocation = [touch locationInView:touch.window]; + IOHIDEventPtr touchEvent = IOHIDEventCreateDigitizerFingerEventWithQuality(kCFAllocatorDefault, + time, + (uint32_t)[touches indexOfObject:touch] + 1, + 2, + eventMask, + touchLocation.x, + touchLocation.y, + 0.0, + 0, + 0, + 5.0, + 5.0, + 1.0, + 1.0, + 1.0, + rangeAndTouch, + rangeAndTouch, + 0); + + IOHIDEventSetIntegerValue(touchEvent, kIOHIDEventFieldDigitizerIsDisplayIntegrated, 1); + IOHIDEventAppendEvent(event, touchEvent); + CFRelease(touchEvent); + } + + return event; +} diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/UITouch+Test.h b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/UITouch+Test.h new file mode 100644 index 00000000000..668cd4cfe75 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/UITouch+Test.h @@ -0,0 +1,25 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UITouch (CMPTest) + ++ (instancetype)touchAtPoint:(CGPoint)point + inWindow:(UIWindow *)window + tapCount:(NSInteger)tapCount + fromEdge:(BOOL)fromEdge; + +@property (assign) UITouchPhase phase; +@property (assign) CGPoint locationInWindow; + +- (void)send; +- (void)updateTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/UITouch+Test.m b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/UITouch+Test.m new file mode 100644 index 00000000000..739e1ee57fd --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/iosMain/objc/CMPTestUtils/UITouch+Test.m @@ -0,0 +1,111 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +#import "UITouch+Test.h" +#import +#import "HIDEvent.h" + +@interface UIEvent (CMPTestPrivate) + +- (void)_addTouch:(UITouch *)touch forDelayedDelivery:(BOOL)arg2; +- (void)_clearTouches; +- (void)_setHIDEvent:(IOHIDEventPtr)event; + +@end + +@interface UIApplication (CMPTestPrivate) + +- (UIEvent *)_touchesEvent; + +@end + +typedef struct { + unsigned int _firstTouchForView:1; + unsigned int _isTap:1; + unsigned int _isDelayed:1; + unsigned int _sentTouchesEnded:1; + unsigned int _abandonForwardingRecord:1; +} UITouchFlags; + +@interface UITouch (CMPTestPrivate) + +- (void)setWindow:(UIWindow *)window; +- (void)setView:(UIView *)view; +- (void)setTapCount:(NSInteger)tapCount; +- (void)setIsTap:(BOOL)isTap; +- (void)setTimestamp:(NSTimeInterval)timestamp; +- (void)setGestureView:(UIView *)view; +- (void)_setLocationInWindow:(CGPoint)location resetPrevious:(BOOL)resetPrevious; +- (void)_setIsFirstTouchForView:(BOOL)firstTouchForView; +- (void)_setIsTapToClick:(BOOL)tapToClick; + +- (void)_setHidEvent:(IOHIDEventPtr)event; +- (void)_setEdgeType:(NSInteger)edgeType; + +- (void)setPhase:(UITouchPhase)touchPhase; +- (UITouchPhase)phase; + +@end + +@implementation UITouch (CMPTest) + ++ (instancetype)touchAtPoint:(CGPoint)point + inWindow:(UIWindow *)window + tapCount:(NSInteger)tapCount + fromEdge:(BOOL)fromEdge { + return [[UITouch alloc] initAtPoint:point inWindow:window tapCount:tapCount fromEdge:fromEdge]; +} + +- (id)initAtPoint:(CGPoint)point inWindow:(UIWindow *)window tapCount:(NSInteger)tapCount fromEdge:(BOOL)fromEdge { + self = [super init]; + if (self) { + UIView *hitTestView = [window hitTest:point withEvent:nil]; + + [self setWindow:window]; + [self setView:hitTestView]; + [self setTapCount:tapCount]; + [self _setLocationInWindow:point resetPrevious:YES]; + [self setPhase:UITouchPhaseBegan]; + [self _setEdgeType:fromEdge ? 4 : 0]; + [self _setIsFirstTouchForView:YES]; + + [self updateTimestamp]; + + if ([self respondsToSelector:@selector(setGestureView:)]) { + [self setGestureView:hitTestView]; + } + + IOHIDEventPtr event = HIDEventWithTouches(@[self]); + [self _setHidEvent:event]; + CFRelease(event); + } + + return self; +} + +- (void)setLocationInWindow:(CGPoint)locationInWIndow { + [self _setLocationInWindow:locationInWIndow resetPrevious:NO]; +} + +- (CGPoint)locationInWindow { + return [self locationInView:self.view.window]; +} + +- (void)updateTimestamp { + [self setTimestamp:[[NSProcessInfo processInfo] systemUptime]]; +} + +- (void)send { + UIEvent *event = [[UIApplication sharedApplication] _touchesEvent]; + IOHIDEventPtr hidEvent = HIDEventWithTouches(@[self]); + [event _setHIDEvent:hidEvent]; + + [self updateTimestamp]; + [event _addTouch:self forDelayedDelivery:NO]; + + [[UIApplication sharedApplication] sendEvent:event]; +} + +@end diff --git a/instrumented-test/ui-instrumented-test/src/nativeInterop/cinterop/test.def b/instrumented-test/ui-instrumented-test/src/nativeInterop/cinterop/test.def new file mode 100644 index 00000000000..290118f7456 --- /dev/null +++ b/instrumented-test/ui-instrumented-test/src/nativeInterop/cinterop/test.def @@ -0,0 +1,13 @@ +# +# Copyright 2025 JetBrains s.r.o. and respective authors and developers. +# Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. +# + +package = androidx.compose.test.utils +language = Objective-C +compilerOpts = -D_Float16=short +headerFilter = UI* + +linkerOpts = -framework UIKit -framework IOKit + +foreignExceptionMode = objc-wrap diff --git a/instrumented-test/ui-xctest/build.gradle.kts b/instrumented-test/ui-xctest/build.gradle.kts new file mode 100644 index 00000000000..ab4eaf6d2de --- /dev/null +++ b/instrumented-test/ui-xctest/build.gradle.kts @@ -0,0 +1,73 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.konan.target.* + +description = "XCTest wrapper of Native kotlin.test" + +plugins { + alias(libs.plugins.kotlinMultiplatform) +} + +repositories { + mavenCentral() +} + +fun frameworksPath(target: KonanTarget): String { + fun getSdkPlatformPath(platform: String) = + ProcessBuilder("xcrun", "--sdk", platform, "--show-sdk-platform-path").execute() + val path = when (target) { + KonanTarget.MACOS_ARM64, KonanTarget.MACOS_X64 -> getSdkPlatformPath("macosx") + KonanTarget.IOS_SIMULATOR_ARM64, KonanTarget.IOS_X64 -> getSdkPlatformPath("iphonesimulator") + KonanTarget.IOS_ARM64 -> getSdkPlatformPath("iphoneos") + else -> error("Target $this is not supported") + } + return "${path}/Developer/Library/Frameworks/" +} + +val nativeTargets = mutableListOf() + +val hostManager = HostManager() +fun MutableList.addIfEnabledOnHost(target: KotlinNativeTarget) { + if (hostManager.isEnabled(target.konanTarget)) add(target) +} + +kotlin { + with(nativeTargets) { + addIfEnabledOnHost(macosX64()) + addIfEnabledOnHost(macosArm64()) + addIfEnabledOnHost(iosX64()) + addIfEnabledOnHost(iosArm64()) + addIfEnabledOnHost(iosSimulatorArm64()) + + forEach { + it.compilations.all { + cinterops { + register("XCTest") { + val path = frameworksPath(it.konanTarget) + compilerOpts("-iframework", path) + } + } + compileTaskProvider.configure { + compilerOptions { + freeCompilerArgs.add("-Xdont-warn-on-error-suppression") + } + } + } + } + } + sourceSets.all { + languageSettings.apply { + optIn("kotlinx.cinterop.BetaInteropApi") + optIn("kotlinx.cinterop.ExperimentalForeignApi") + optIn("kotlin.experimental.ExperimentalNativeApi") + } + } +} + +private fun ProcessBuilder.execute(): String { + return start().inputStream.bufferedReader().readLine() +} diff --git a/instrumented-test/ui-xctest/gradle.properties b/instrumented-test/ui-xctest/gradle.properties new file mode 100644 index 00000000000..7f46ba53fde --- /dev/null +++ b/instrumented-test/ui-xctest/gradle.properties @@ -0,0 +1,6 @@ +# +# Copyright 2025 JetBrains s.r.o. and respective authors and developers. +# Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. +# + +kotlin.mpp.enableCInteropCommonization=true diff --git a/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/NativeTestObserver.kt b/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/NativeTestObserver.kt new file mode 100644 index 00000000000..37731593946 --- /dev/null +++ b/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/NativeTestObserver.kt @@ -0,0 +1,147 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") + +package androidx.compose.xctest + +import kotlin.native.internal.test.* +import kotlin.time.* +import kotlin.time.Duration +import kotlin.time.DurationUnit +import platform.Foundation.NSError +import platform.darwin.NSObject +import platform.XCTest.* + +/** + * Test execution observation. + * + * This is a bridge between XCTest execution and reporting that brings an ability to get results test-by-test. + * It logs tests and notifies listeners set with [testSettings]. + * See also [XCTestObservation on Apple documentation](https://developer.apple.com/documentation/xctest/xctestobservation) + * + * @see TestSettings + */ +internal class NativeTestObserver(private val testSettings: TestSettings) : NSObject(), XCTestObservationProtocol { + private val listeners = testSettings.listeners + private val logger = testSettings.logger + + private inline fun sendToListeners(event: TestListener.() -> Unit) { + logger.event() + listeners.forEach(event) + } + + private fun XCTest.getTestDuration(): Duration = + testRun?.totalDuration + ?.toDuration(DurationUnit.SECONDS) + ?: Duration.ZERO + + /** + * Failed test case execution. + * + * Records test failures sending them to test listeners. + */ + override fun testCase(testCase: XCTestCase, didRecordIssue: XCTIssue) { + if (testCase is XCTestCaseWrapper) { + val duration = testCase.getTestDuration() + val error = didRecordIssue.associatedError as NSError + val throwable = if (error is NSErrorWithKotlinException) { + error.kotlinException + } else { + Throwable(didRecordIssue.compactDescription) + } + sendToListeners { fail(testCase.testCase, throwable, duration.inWholeMilliseconds) } + } + } + + /** + * Records expected failures as failed test as soon as such expectations should be processed in the test. + */ + override fun testCase(testCase: XCTestCase, didRecordExpectedFailure: XCTExpectedFailure) { + logger.log("TestCase: $testCase got expected failure: ${didRecordExpectedFailure.failureReason}") + this.testCase(testCase, didRecordExpectedFailure.issue) + } + + /** + * Test case finish notification. + * Both successful and failed executions get this notification. + */ + override fun testCaseDidFinish(testCase: XCTestCase) { + val duration = testCase.getTestDuration() + if (testCase.testRun?.hasSucceeded == true) { + if (testCase is XCTestCaseWrapper) { + val test = testCase.testCase + if (!testCase.ignored) { + sendToListeners { pass(test, duration.inWholeMilliseconds) } + } + } + } + } + + /** + * Test case start notification. + */ + override fun testCaseWillStart(testCase: XCTestCase) { + if (testCase is XCTestCaseWrapper) { + val test = testCase.testCase + if (testCase.ignored) { + sendToListeners { ignore(test) } + } else { + sendToListeners { start(test) } + } + } + } + + /** + * Test suite failure notification. + * + * Logs the failure of the test suite execution. + */ + override fun testSuite(testSuite: XCTestSuite, didRecordIssue: XCTIssue) { + logger.log("TestSuite ${testSuite.name} recorded issue: ${didRecordIssue.compactDescription}") + } + + /** + * Test suite expected failure. + * + * Logs the failure of the test suite execution. + * Treat expected failures as ordinary unexpected one. + */ + override fun testSuite(testSuite: XCTestSuite, didRecordExpectedFailure: XCTExpectedFailure) { + logger.log("TestSuite ${testSuite.name} got expected failure: ${didRecordExpectedFailure.failureReason}") + this.testSuite(testSuite, didRecordExpectedFailure.issue) + } + + /** + * Test suite finish notification. + */ + override fun testSuiteDidFinish(testSuite: XCTestSuite) { + val duration = testSuite.getTestDuration().inWholeMilliseconds + if (testSuite is XCTestSuiteWrapper) { + sendToListeners { finishSuite(testSuite.testSuite, duration) } + } else if (testSuite.name == TOP_LEVEL_SUITE) { + sendToListeners { + finishIteration(testSettings, 0, duration) // test iterations are not supported + finishTesting(testSettings, duration) + } + } + } + + /** + * Test suite start notification. + */ + override fun testSuiteWillStart(testSuite: XCTestSuite) { + if (testSuite is XCTestSuiteWrapper) { + sendToListeners { startSuite(testSuite.testSuite) } + } else if (testSuite.name == TOP_LEVEL_SUITE) { + sendToListeners { + startTesting(testSettings) + startIteration(testSettings, 0, testSettings.testSuites) // test iterations are not supported + } + } + } + + override fun debugDescription() = "Native test listener with test settings $testSettings" +} diff --git a/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/NativeTestRunner.kt b/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/NativeTestRunner.kt new file mode 100644 index 00000000000..02595b7cffc --- /dev/null +++ b/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/NativeTestRunner.kt @@ -0,0 +1,203 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") + +package androidx.compose.xctest + +import kotlinx.cinterop.* +import kotlin.native.internal.test.* +import platform.Foundation.* +import platform.Foundation.NSError +import platform.Foundation.NSInvocation +import platform.Foundation.NSString +import platform.Foundation.NSMethodSignature +import platform.UniformTypeIdentifiers.UTTypeSourceCode +import platform.XCTest.* +import platform.objc.* + +/** + * An XCTest equivalent of the K/N TestCase. + * + * Wraps the [TestCase] that runs it with a special bridge method created by adding it to a class. + * The idea is to make XCTest invoke them by the created invocation and show the selector as a test name. + * This selector is created as `class.method` that is than naturally represented in XCTest reports including XCode. + */ +internal class XCTestCaseWrapper(val testCase: TestCase) : XCTestCase(dummyInvocation()) { + // Sets XCTest to continue running after failure to match Kotlin Test + override fun continueAfterFailure(): Boolean = true + + val ignored = testCase.ignored || testCase.suite.ignored + + private val fullTestName = testCase.fullName + + init { + // Set custom test name + val newClass = NSClassFromString(testCase.suite.name) + ?: objc_allocateClassPair(XCTestCaseWrapper.`class`(), testCase.suite.name, 0UL)!!.also { + objc_registerClassPair(it) + } + + object_setClass(this, newClass) + val testName = if (ignored) { + "[ignored] ${testCase.name}" + } else { + testCase.name + } + + val selector = NSSelectorFromString(testName) + createRunMethod(selector) + setInvocation(methodSignatureForSelector(selector)?.let { signature -> + @Suppress("CAST_NEVER_SUCCEEDS") + val invocation = NSInvocation.invocationWithMethodSignature(signature as NSMethodSignature) + invocation.setSelector(selector) + invocation.setTarget(this) + invocation + }) + } + + /** + * Creates and adds method to the metaclass with implementation block + * that gets an XCTestCase instance as self to be run. + */ + private fun createRunMethod(selector: COpaquePointer?) { + val result = class_addMethod( + cls = this.`class`(), + name = selector, + imp = imp_implementationWithBlock(::run), + types = "v@:" // Obj-C type encodings: v (returns void), @ (id self), : (SEL sel) + ) + check(result) { + "Internal error: was unable to add method with selector $selector" + } + } + + @ObjCAction + private fun run() { + if (ignored) { + // FIXME: to skip the test XCTSkip() should be used. + // But it is not possible to do that due to the KT-43719 and not implemented exception importing. + // For example, _XCTSkipHandler(testName, 0U, "Test $testName is ignored") fails with 'Uncaught Kotlin exception'. + // So, just don't run the test. It will be seen as passed in XCode, but K/N TestListener correctly processes that. + return + } + try { + testCase.doRun() + } catch (throwable: Throwable) { + val stackTrace = throwable.getStackTrace() + val failedStackLine = stackTrace.first { + // try to filter out kotlin.Exceptions and kotlin.test.Assertion inits to poin to the failed stack and line + !it.contains("kfun:kotlin.") + } + // Find path and line number to create source location + val matchResult = Regex("^\\d+ +.* \\((.*):(\\d+):.*\\)$").find(failedStackLine) + val sourceLocation = if (matchResult != null) { + val (file, line) = matchResult.destructured + XCTSourceCodeLocation(file, line.toLong()) + } else { + // No debug info to get the path. Still have to record location + XCTSourceCodeLocation(testCase.suite.name, 0L) + } + + // Make a stacktrace attachment, encoding it as source code. + // This makes it appear as an attachment in the XCode test results for the failed test. + @Suppress("CAST_NEVER_SUCCEEDS") + val stackAsPayload = (stackTrace.joinToString("\n") as? NSString)?.dataUsingEncoding(NSUTF8StringEncoding) + val stackTraceAttachment = XCTAttachment.attachmentWithUniformTypeIdentifier( + identifier = UTTypeSourceCode.identifier, + name = "Kotlin stacktrace (full)", + payload = stackAsPayload, + userInfo = null + ) + + val type = when (throwable) { + is AssertionError -> XCTIssueTypeAssertionFailure + else -> XCTIssueTypeUncaughtException + } + + // Finally, create and record an issue with all gathered data + val issue = XCTIssue( + type = type, + compactDescription = "$throwable in $fullTestName", + detailedDescription = buildString { + appendLine("Test '$fullTestName' from '${testCase.suite.name}' failed with $throwable") + throwable.cause?.let { appendLine("(caused by ${throwable.cause})") } + }, + sourceCodeContext = XCTSourceCodeContext( + callStackAddresses = throwable.getStackTraceAddresses(), + location = sourceLocation + ), + // pass the error through the XCTest to the NativeTestObserver + associatedError = NSErrorWithKotlinException(throwable), + attachments = listOf(stackTraceAttachment) + ) + testRun?.recordIssue(issue) ?: error("TestRun for the test $fullTestName not found") + } + } + + override fun setUp() { + if (!ignored) testCase.doBefore() + } + + override fun tearDown() { + if (!ignored) testCase.doAfter() + } + + override fun description(): String = buildString { + append(fullTestName) + if (ignored) append("(ignored)") + } + + override fun name(): String { + return testCase.name + } + + companion object : XCTestCaseMeta() { + /** + * This method is invoked by the XCTest when it discovered XCTestCase instance + * that contains test method. + * + * This method should not be called with the current idea and assumptions. + */ + override fun testCaseWithInvocation(invocation: NSInvocation?): XCTestCase { + error( + """ + This should not happen by default. + Got invocation: ${invocation?.description} + with selector @sel(${NSStringFromSelector(invocation?.selector)}) + """.trimIndent() + ) + } + + private fun dummyInvocation(): NSInvocation { + return NSInvocation.invocationWithMethodSignature( + NSMethodSignature.signatureWithObjCTypes("v@:".cstr.getPointer(Arena())) as NSMethodSignature + ) + } + } +} + +/** + * This is a NSError-wrapper of Kotlin exception used to pass it through the XCTIssue + * to the XCTestObservation protocol implementation [NativeTestObserver]. + * See [NativeTestObserver.testCase] for the usage. + */ +internal class NSErrorWithKotlinException(val kotlinException: Throwable) : NSError(NSCocoaErrorDomain, NSValidationErrorMinimum, null) + +/** + * XCTest equivalent of K/N TestSuite. + */ +internal class XCTestSuiteWrapper(val testSuite: TestSuite) : XCTestSuite(testSuite.name) { + private val ignoredSuite: Boolean + get() = testSuite.ignored || testSuite.testCases.all { it.value.ignored } + + override fun setUp() { + if (!ignoredSuite) testSuite.doBeforeClass() + } + + override fun tearDown() { + if (!ignoredSuite) testSuite.doAfterClass() + } +} diff --git a/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/configuration.kt b/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/configuration.kt new file mode 100644 index 00000000000..1a2c9827f4a --- /dev/null +++ b/instrumented-test/ui-xctest/src/iosMain/kotlin/androidx/compose/xctest/configuration.kt @@ -0,0 +1,148 @@ +/* + * Copyright 2025 JetBrains s.r.o. and respective authors and developers. + * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. + */ + +@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") + +package androidx.compose.xctest + +import platform.Foundation.* +import platform.XCTest.XCTest +import platform.XCTest.XCTestObservationCenter +import platform.XCTest.XCTestSuite +import kotlin.native.internal.test.* +import kotlin.reflect.KClass +import kotlin.reflect.KFunction +import kotlin.reflect.KFunction1 + + +// Top level suite name used to hold all Native tests +internal const val TOP_LEVEL_SUITE = "Kotlin/Native test suite" + +// Name of the key that contains arguments used to set [TestSettings] +private const val TEST_ARGUMENTS_KEY = "KotlinNativeTestArgs" + +/** + * Stores current settings with the filtered test suites, loggers, and listeners. + * Test settings should be initialized by the setup method. + */ +private lateinit var testSettings: TestSettings + +@Suppress("unused") +fun setupXCTestSuite(vararg tests: KClass<*>): XCTestSuite = + setupXCTestSuite(tests = tests.toSet(), testCases = null) + +@Suppress("unused") +inline fun setupXCTestSuite(vararg tests: KFunction1): XCTestSuite = + setupXCTestSuite(tests = null, testCases = mapOf(Class::class.qualifiedName to tests.toSet())) + +/** + * This is an entry-point of XCTestSuites and XCTestCases generation. + * Function returns the XCTest's top level TestSuite that holds all the test cases + * with K/N tests. + * This test suite can be run by either native launcher compiled to bundle or + * by the other test suite (e.g. compiled as a framework). + */ +fun setupXCTestSuite(tests: Set>? = null, testCases: Map>>? = null): XCTestSuite { + val nativeTestSuite = XCTestSuite.testSuiteWithName(TOP_LEVEL_SUITE) + + // Initialize settings with the given args + val args = testArguments(TEST_ARGUMENTS_KEY) + + testSettings = TestProcessor(GeneratedSuites.suites, args).process() + + check(::testSettings.isInitialized) { + "Test settings wasn't set. Check provided arguments and test suites" + } + + // Set test observer that will log test execution + XCTestObservationCenter.sharedTestObservationCenter.addTestObserver( + NativeTestObserver( + testSettings + ) + ) + + if (testSettings.runTests) { + val includeAllTests = tests == null && testCases == null + val testSuiteNames = tests?.map { it.qualifiedName }.orEmpty() + testCases?.keys.orEmpty() + fun includeTestSuite(testSuite: TestSuite) = + includeAllTests || testSuiteNames.contains(testSuite.name) + + // Generate and add tests to the main suite + testSettings.testSuites.generate( + addTestSuite = { testSuite -> + includeTestSuite(testSuite) + }, + addTestCase = { testCase -> + includeTestSuite(testCase.suite) && + (testCases == null || + testCases[testCase.suite.name]?.firstOrNull { it.name == testCase.name } != null) + } + ).forEach { + nativeTestSuite.addTest(it) + } + + if (includeAllTests) { + // Tests created (self-check) + @Suppress("UNCHECKED_CAST") + check(testSettings.testSuites.size == (nativeTestSuite.tests as List).size) { + "The amount of generated XCTest suites should be equal to Kotlin test suites" + } + } + } + + return nativeTestSuite +} + +/** + * Gets test arguments from the Info.plist using the provided key to create test settings. + * + * @param key a key used in the `Info.plist` file or as environment variable to pass test arguments + */ +@Suppress("UNCHECKED_CAST") +private fun testArguments(key: String): Array { + (NSProcessInfo.processInfo.arguments as? List)?.let { + // Drop the first element containing executable name. + // See https://developer.apple.com/documentation/foundation/nsprocessinfo/1415596-arguments + // Then filter only relevant to the runner arguments. + val args = it.drop(1) + .filter { argument -> + argument.startsWith("--gtest_") || argument.startsWith("--ktest_") || + argument == "--help" || argument == "-h" + }.toTypedArray() + if (args.isNotEmpty()) return args + } + + (NSProcessInfo.processInfo.environment[key] as? String)?.let { + return it.split(" ").toTypedArray() + } + + // As we don't know which bundle we are, iterate through all of them + NSBundle.allBundles + .mapNotNull { (it as? NSBundle)?.infoDictionary?.get(key) as? String } + .singleOrNull() + ?.let { + return it.split(" ").toTypedArray() + } + + return emptyArray() +} + +internal val TestCase.fullName get() = "${suite.name}.$name" + +private fun Collection.generate( + addTestSuite: (TestSuite) -> Boolean, + addTestCase: (TestCase) -> Boolean +): List { + return this.filter(addTestSuite).map { suite -> + val xcSuite = XCTestSuiteWrapper(suite) + suite.testCases.values.filter(addTestCase).map { testCase -> + XCTestCaseWrapper(testCase) + }.forEach { + // add test to its test suite wrapper + xcSuite.addTest(it) + } + xcSuite + } +} diff --git a/instrumented-test/ui-xctest/src/nativeInterop/cinterop/XCTest.def b/instrumented-test/ui-xctest/src/nativeInterop/cinterop/XCTest.def new file mode 100644 index 00000000000..729c4a05427 --- /dev/null +++ b/instrumented-test/ui-xctest/src/nativeInterop/cinterop/XCTest.def @@ -0,0 +1,14 @@ +# +# Copyright 2025 JetBrains s.r.o. and respective authors and developers. +# Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. +# + +depends = Foundation darwin posix +language = Objective-C +package = platform.XCTest +modules = XCTest + +compilerOpts = -framework XCTest +linkerOpts = -framework XCTest + +foreignExceptionMode = objc-wrap diff --git a/tooling/gradle/wrapper/gradle-wrapper.properties b/tooling/gradle/wrapper/gradle-wrapper.properties index 070cb702f09..37f853b1c84 100644 --- a/tooling/gradle/wrapper/gradle-wrapper.properties +++ b/tooling/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/tools/changelog/PR_FORMAT.md b/tools/changelog/PR_FORMAT.md new file mode 100644 index 00000000000..1f8d81308cb --- /dev/null +++ b/tools/changelog/PR_FORMAT.md @@ -0,0 +1,89 @@ +Each Pull Request should contain "## Release Notes" section that describes changes in this PR. + +Each release, changes from all PRs are combined into a list and added to CHANGELOG.md +(by [changelog.main.kts](changelog.main.kts) script). + +## Possible Release Notes + +### No Release Notes +``` +## Release Notes +N/A +``` + +### Simple Change +``` +## Release Notes +### Highlights - iOS +- Describe a change +``` + +### Simple Change with Details +``` +## Release Notes +### Highlights - iOS +- Describe a change + - Describe details 1 + - Describe details 2 +``` + +### Multiple Changes +``` +## Release Notes +### Features - Desktop +- Describe change 1 + - Describe details +- Describe change 2 + +### Fixes - Web +- Describe change 3 +``` + +### Prerelease Fix +Will be included in alpha/beta/rc changelog, excluded from stable. +``` +## Release Notes +### Fixes - Multiple Platforms +- _(prerelease fix)_ Fixed CPU overheating on pressing Shift appeared in 1.8.0-alpha02 +``` + +### Cherry-picks to a release branch +The PR can contain only cherry-picks. We can point to them instead of copying the release notes. +``` +## Release Notes +https://github.com/JetBrains/compose-multiplatform/pull/5292 +https://github.com/JetBrains/compose-multiplatform/pull/5294 +https://github.com/JetBrains/compose-multiplatform/pull/5295 +``` + +## Possible Sections + + +### Sections +``` +- Highlights # major features, performance improvements +- Known Issues # issues planned to be fixed, with possible workarounds +- Breaking Changes # incompatible changes without deprecation cycle +- Migration Notes # deprecations, removals, minimal version increases, defined behavior changes +- Features # minor features, performance improvements +- Fixes # bug fixes, undefined behavior changes +``` + +### Subsections +``` +- Multiple Platforms # any module, 2 or more platform changes +- iOS # any module, iOS-only changes +- Desktop # any module, Desktop-only changes +- Web # any module, Web-only changes +- Android # any module, Android-only changes +- Resources # specific module, prefer it over the platform ones +- Gradle Plugin # specific module, prefer it over the platform ones +- Lifecycle # specific module, prefer it over the platform ones +- Navigation # specific module, prefer it over the platform ones +- SavedState # specific module, prefer it over the platform ones +``` diff --git a/tools/changelog/changelog.main.kts b/tools/changelog/changelog.main.kts new file mode 100644 index 00000000000..c8e0556c114 --- /dev/null +++ b/tools/changelog/changelog.main.kts @@ -0,0 +1,682 @@ +/** + * Script for creating a changelog. Call: + * ``` + * kotlin changelog.main.kts v1.7.0+dev555 + * ``` + * or: + * ``` + * kotlin changelog.main.kts v1.7.0..v1.7.1+dev555 + * ``` + * where: + * v1.7.0+dev555 - the tag/branch of the version. The previous version will be read from CHANGELOG.md + * v1.7.0..v1.7.1+dev555 - the range of tag/branches for the changelog + * + * It modifies CHANGELOG.md and adds new changes between the last version in CHANGELOG.md and the specified version. + * + * Changelog entries are generated from reading Release Notes in GitHub PR's. + * + * ## Checking PR description in a file + * Not supposed to be called manually, used by GitHub workflow: + * https://github.com/JetBrains/compose-multiplatform/blob/master/tools/changelog/check-release-notes-github-action/action.yml) + * ``` + * kotlin changelog.main.kts action=checkPr prDescription.txt + * ``` + * + * compose-multiplatform - name of the GitHub repo + * 5202 - PR number + * + * ## How to run Kotlin scripts + * Option 1 - via Command line + * 1. Download https://github.com/JetBrains/kotlin/releases/tag/v1.9.22 and add `bin` to PATH + * + * Option 2 - via IntelliJ: + * 1. Right click on the script + * 2. More Run/Debug + * 3. Modify Run Configuration... + * 4. Add Program arguments + * 5. Clear all "Before launch" tasks (you can edit the system-wide template as well) + * 6. OK + */ + +@file:Repository("https://repo1.maven.org/maven2/") +@file:DependsOn("com.google.code.gson:gson:2.10.1") + +import com.google.gson.Gson +import com.google.gson.annotations.SerializedName +import java.io.File +import java.io.IOException +import java.lang.ProcessBuilder.Redirect +import java.lang.System.err +import java.net.URL +import java.net.URLEncoder +import java.nio.charset.StandardCharsets.UTF_8 +import java.time.LocalDate +import java.time.format.DateTimeFormatter +import java.util.* +import kotlin.system.exitProcess + +val changelogFile = __FILE__.resolve("../../../CHANGELOG.md").canonicalFile +val prFormatFile = File("PR_FORMAT.md") +val prFormatLink = "https://github.com/JetBrains/compose-multiplatform/blob/master/tools/changelog/PR_FORMAT.md" + +val argsKeyless = args + .filter { !it.contains("=") } + +val argsKeyToValue = args + .filter { it.contains("=") } + .associate { it.substringBefore("=") to it.substringAfter("=") } + +val token = argsKeyToValue["token"] + +// Parse sections from [PR_FORMAT.md] +fun parseSections(title: String) = prFormatFile + .readText() + .substringAfter(title) + .substringAfter("```") + .substringBefore("```") + .split("\n") + .map { it.trim().removePrefix("-").substringBefore("#").substringBefore("\n").trim() } + .filter { it.isNotEmpty() } + +val standardSections = parseSections("### Sections") +val standardSubsections = parseSections("### Subsections") + +println() + +when (argsKeyToValue["action"]) { + "checkPr" -> checkPr() + else -> generateChangelog() +} + +fun generateChangelog() { + if (token == null) { + println("To increase the rate limit, specify token (https://github.com/settings/tokens), adding token=yourtoken in the end\n") + } + + val commitsArg = argsKeyless.getOrNull(0) ?: "HEAD" + + var previousVersionCommitArg: String? + var versionCommitArg: String + if (commitsArg.contains("..")) { + previousVersionCommitArg = commitsArg.substringBefore("..") + versionCommitArg = commitsArg.substringAfter("..") + } else { + previousVersionCommitArg = null + versionCommitArg = commitsArg + } + + val versionCommit = versionCommitArg + + val androidxLibToPreviousVersion = previousVersionCommitArg?.let(::androidxLibToVersion) + val androidxLibToVersion = androidxLibToVersion(versionCommit) + val androidxLibToRedirectionVersion = androidxLibToRedirectionVersion(versionCommit) + + fun formatAndroidxLibPreviousVersion(libName: String) = + androidxLibToPreviousVersion?.get(libName) ?: "PLACEHOLDER".also { + println("Can't find $libName previous version. Using PLACEHOLDER") + } + + fun formatAndroidxLibVersion(libName: String) = + androidxLibToVersion[libName] ?: "PLACEHOLDER".also { + println("Can't find $libName version. Using PLACEHOLDER") + } + + fun formatAndroidxLibRedirectingVersion(libName: String) = + androidxLibToRedirectionVersion[libName] ?: "PLACEHOLDER".also { + println("Can't find $libName redirection version. Using PLACEHOLDER") + } + + val versionCompose = formatAndroidxLibVersion("COMPOSE") + val versionComposeMaterial3 = formatAndroidxLibVersion("COMPOSE_MATERIAL3") + val versionComposeMaterial3Adaptive = formatAndroidxLibVersion("COMPOSE_MATERIAL3_ADAPTIVE") + val versionLifecycle = formatAndroidxLibVersion("LIFECYCLE") + val versionNavigationEvent = formatAndroidxLibVersion("NAVIGATION_EVENT") + val versionSavedstate = formatAndroidxLibVersion("SAVEDSTATE") + val versionWindow = formatAndroidxLibVersion("WINDOW") + + val versionRedirectingCompose = formatAndroidxLibRedirectingVersion("compose") + val versionRedirectingComposeMaterial3 = formatAndroidxLibRedirectingVersion("compose.material3") + val versionRedirectingComposeMaterial3Adaptive = formatAndroidxLibRedirectingVersion("compose.material3.adaptive") + val versionRedirectingLifecycle = formatAndroidxLibRedirectingVersion("lifecycle") + val versionRedirectingNavigationEvent = formatAndroidxLibRedirectingVersion("navigationevent") + val versionRedirectingSavedstate = formatAndroidxLibRedirectingVersion("savedstate") + val versionRedirectingWindow = formatAndroidxLibRedirectingVersion("window") + + val versionName = versionCompose + + val currentChangelog = changelogFile.readText() + val previousChangelog = + if (currentChangelog.startsWith("# $versionName ")) { + val nextChangelogIndex = currentChangelog.indexOf("\n# ") + currentChangelog.substring(nextChangelogIndex).removePrefix("\n") + } else { + currentChangelog + } + + var previousVersionCommit: String + var previousVersion: String + if (previousVersionCommitArg != null) { + previousVersionCommit = previousVersionCommitArg!! + previousVersion = formatAndroidxLibPreviousVersion("COMPOSE") + } else { + val previousVersionInChangelog = previousChangelog.substringAfter("# ").substringBefore(" (") + previousVersionCommit = "v$previousVersionInChangelog" + previousVersion = previousVersionInChangelog + } + + fun getChangelog(firstCommit: String, lastCommit: String, firstVersion: String, lastVersion: String): String { + val isPrerelease = lastVersion.contains("-") + + val entries = entriesForRepo("JetBrains/compose-multiplatform-core", firstCommit, lastCommit) + + entriesForRepo("JetBrains/compose-multiplatform", firstCommit, lastCommit) + + return buildString { + appendLine("# $lastVersion (${currentChangelogDate()})") + + appendLine() + appendLine("_Changes since ${firstVersion}_") + appendLine() + + entries + .filter { isPrerelease || !it.isPrerelease } + .sortedBy { it.sectionOrder() } + .groupBy { it.sectionName() } + .forEach { (section, sectionEntries) -> + appendLine("## $section") + appendLine() + + sectionEntries + .sortedBy { it.subsectionOrder() } + .groupBy { it.subsectionName() } + .forEach { (subsection, subsectionEntries) -> + appendLine("### $subsection") + appendLine() + subsectionEntries.forEach { + appendLine(it.run { "- $title [#$prNumber]($link)" }) + if (it.details != null) { + if (!it.details.startsWith("-")) { + appendLine() + } + appendLine(it.details.prependIndent(" ")) + } + } + appendLine() + } + } + + append( + """ + ## Dependencies + + - Gradle Plugin `org.jetbrains.compose`, version `$versionCompose`. Based on Jetpack Compose libraries: + - [Runtime $versionRedirectingCompose](https://developer.android.com/jetpack/androidx/releases/compose-runtime#$versionRedirectingCompose) + - [UI $versionRedirectingCompose](https://developer.android.com/jetpack/androidx/releases/compose-ui#$versionRedirectingCompose) + - [Foundation $versionRedirectingCompose](https://developer.android.com/jetpack/androidx/releases/compose-foundation#$versionRedirectingCompose) + - [Material $versionRedirectingCompose](https://developer.android.com/jetpack/androidx/releases/compose-material#$versionRedirectingCompose) + - [Material3 $versionRedirectingComposeMaterial3](https://developer.android.com/jetpack/androidx/releases/compose-material3#$versionRedirectingComposeMaterial3) + + - Compose Material3 libraries `org.jetbrains.compose.material3:material3*:$versionComposeMaterial3`. Based on [Jetpack Compose Material3 $versionRedirectingComposeMaterial3](https://developer.android.com/jetpack/androidx/releases/compose-material3#$versionRedirectingComposeMaterial3) + - Compose Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:$versionComposeMaterial3Adaptive`. Based on [Jetpack Compose Material3 Adaptive $versionRedirectingComposeMaterial3Adaptive](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#$versionRedirectingComposeMaterial3Adaptive) + - Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:$versionLifecycle`. Based on [Jetpack Lifecycle $versionRedirectingLifecycle](https://developer.android.com/jetpack/androidx/releases/lifecycle#$versionRedirectingLifecycle) + - Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0`. Based on [Jetpack Navigation 2.9.1](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.1) + - Navigation Event library `org.jetbrains.androidx.navigationevent:navigationevent-compose:$versionNavigationEvent`. Based on [Jetpack Navigation Event $versionRedirectingNavigationEvent](https://developer.android.com/jetpack/androidx/releases/navigationevent#$versionRedirectingNavigationEvent) + - Savedstate library `org.jetbrains.androidx.savedstate:savedstate:$versionSavedstate`. Based on [Jetpack Savedstate $versionRedirectingSavedstate](https://developer.android.com/jetpack/androidx/releases/savedstate#$versionRedirectingSavedstate) + - WindowManager Core library `org.jetbrains.androidx.window:window-core:$versionWindow`. Based on [Jetpack WindowManager $versionRedirectingWindow](https://developer.android.com/jetpack/androidx/releases/window#$versionRedirectingWindow) + + --- + """.trimIndent() + ) + + appendLine() + appendLine() + + val nonstandardSectionEntries = entries + .filter { + it.section != null && it.subsection != null + && it.section !in standardSections && it.subsection !in standardSubsections + } + + if (nonstandardSectionEntries.isNotEmpty()) { + println() + println("WARNING! Changelog contains nonstandard sections. Please change them to the standard ones, or enhance the list in the PR template.") + + for (entry in nonstandardSectionEntries) { + println("${entry.section} - ${entry.subsection} in ${entry.link}") + } + } + } + } + + println() + println("Generating changelog between $previousVersion and $versionName") + + val newChangelog = getChangelog(previousVersionCommit, versionCommit, previousVersion, versionName) + + changelogFile.writeText( + newChangelog + previousChangelog + ) + + println() + println("CHANGELOG.md changed") +} + +fun checkPr() { + val filePath = argsKeyless.getOrNull(0) ?: error("Please specify a file that contains PR description as the first argument") + + val body = File(filePath).readText() + val releaseNotes = extractReleaseNotes(body, 0, "https://github.com/JetBrains/compose-multiplatform/pull/0") + + val nonstandardSections = releaseNotes?.entries + .orEmpty() + .filter { it.section !in standardSections || it.subsection !in standardSubsections } + .map { "${it.section} - ${it.subsection}" } + .toSet() + + println() + + when { + releaseNotes is ReleaseNotes.Specified && releaseNotes.entries.isEmpty() -> { + err.println(""" + "## Release Notes" doesn't contain any items, or "### Section - Subsection" isn't specified + + See the format in $prFormatLink + """.trimIndent()) + exitProcess(1) + } + releaseNotes is ReleaseNotes.Specified && nonstandardSections.isNotEmpty() -> { + err.println(""" + "## Release Notes" contains nonstandard "Section - Subsection" pairs: + ${nonstandardSections.joinToString(", ")} + + Allowed sections: ${standardSections.joinToString(", ")} + Allowed subsections: ${standardSubsections.joinToString(", ")} + + See the full format in $prFormatLink + """.trimIndent()) + exitProcess(1) + } + releaseNotes == null -> { + err.println(""" + "## Release Notes" section is missing in the PR description + + See the format in $prFormatLink + """.trimIndent()) + exitProcess(1) + } + else -> { + println("\"## Release Notes\" are correct") + } + } +} + +/** + * September 2024 + */ +fun currentChangelogDate() = LocalDate.now().format(DateTimeFormatter.ofPattern("MMMM yyyy", Locale.ENGLISH)) + +fun GitHubPullEntry.extractReleaseNotes() = extractReleaseNotes(body, number, htmlUrl) + +fun GitHubPullEntry.unknownChangelogEntries() = + listOf(ChangelogEntry("- $title", null, null, null, number, htmlUrl, false)) + +/** + * Extract by format [PR_FORMAT.md] + */ +fun extractReleaseNotes(body: String?, prNumber: Int, prLink: String): ReleaseNotes? { + fun String?.substringBetween(begin: String, end: String): String? { + val after = this?.substringAfter(begin, "")?.ifBlank { null } + return after?.substringBefore(end, "")?.ifBlank { null } ?: after + } + + // extract body inside "# Release Notes" + val relNoteBody = body + ?.replace("# Release notes", "# Release Notes", ignoreCase = true) + ?.replace("#Release notes", "# Release Notes", ignoreCase = true) + ?.replace("# RelNote", "# Release Notes", ignoreCase = true) + ?.run { + substringBetween("# Release Notes", "\n# ") + ?: substringBetween("## Release Notes", "\n## ") + ?: substringBetween("### Release Notes", "\n### ") + ?: substringBetween("## Release Notes", "\n# ") + ?: substringBetween("### Release Notes", "\n## ") + ?: substringBetween("### Release Notes", "\n# ") + } + ?.trim() + + if (relNoteBody == null) return null + if (relNoteBody.trim().lowercase() == "n/a") return ReleaseNotes.NA + + // Check if the release notes contain only GitHub PR links + val pullRequests = relNoteBody + .split("\n") + .map { it.trim() } + .mapNotNull(PullRequestLink::parseOrNull) + + if (pullRequests.isNotEmpty()) return ReleaseNotes.CherryPicks(pullRequests) + + /** + * Parses bodies like: + * ``` + * ### Highlights - iOS + * - Describe change 1 + * details (multiline) + * + * - Describe change 2 + * details (multiline) + * ``` + */ + fun parseChangelogEntries(sectionBody: StringList): List { + val s = sectionBody.first().trimStart { it == '#' || it.isWhitespace() } + val section = s.substringBefore("-", "").trim() + .normalizeSectionName().ifEmpty { return emptyList() } + val subsection = s.substringAfter("-", "").trim() + .normalizeSubsectionName().ifEmpty { return emptyList() } + + return sectionBody + .drop(1) + .split { it.startsWith("-") } + .map { entryBody -> + val title = entryBody.first().trim().removePrefix("-").removeSuffix(".").trim() + val details = entryBody.drop(1) + .dropWhile { it.isBlank() } + .dropLastWhile { it.isBlank() } + .joinToString("\n") + .trimIndent() + .ifBlank { null } + val isPrerelease = title.contains("(prerelease fix)") + ChangelogEntry(title, details, section, subsection, prNumber, prLink, isPrerelease) + } + } + + return ReleaseNotes.Specified( + relNoteBody + .split("\n") + .split { it.trim().startsWith("#") } + .flatMap(::parseChangelogEntries) + ) +} + +/** + * @param repo Example: + * JetBrains/compose-multiplatform-core + */ +fun entriesForRepo(repo: String, firstCommit: String, lastCommit: String): List { + val pulls = (1..10) + .flatMap { + requestJson>("https://api.github.com/repos/$repo/pulls?state=closed&per_page=100&page=$it").toList() + } + + val shaToPull = pulls.associateBy { it.mergeCommitSha } + val numberToPull = pulls.associateBy { it.number } + val pullToReleaseNotes = Cache(GitHubPullEntry::extractReleaseNotes) + + // if GitHubPullEntry is a cherry-picks PR (contains a list of links to other PRs), replace it by the original PRs + fun List.replaceCherryPicks(): List = flatMap { pullRequest -> + val releaseNotes = pullToReleaseNotes[pullRequest] + if (releaseNotes is ReleaseNotes.CherryPicks) { + releaseNotes.pullRequests + .filter { it.repo.equals(repo, ignoreCase = true) } + .mapNotNull { numberToPull[it.number] } + } else { + listOf(pullRequest) + } + } + + val repoFolder = githubClone(repo) + + // Commits that exist in [firstCommit] and not identified as cherry-picks by `git log` + // We'll try to exclude them via manual links to cherry-picks + val cherryPickedPrsInFirstCommit = gitLogShas(repoFolder, firstCommit, lastCommit, "--cherry-pick --left-only") + .mapNotNull(shaToPull::get) + .replaceCherryPicks() + + // Exclude the same entries for partial cherry-picked PRs (example https://github.com/JetBrains/compose-multiplatform-core/pull/2096) + val cherryPickedIdsInFirstCommit = cherryPickedPrsInFirstCommit + .flatMap { + pullToReleaseNotes[it]?.entries.orEmpty() + } + .mapTo(mutableSetOf()) { + it.id + } + + return gitLogShas(repoFolder, firstCommit, lastCommit, "--cherry-pick --right-only") + .reversed() // older changes are at the bottom + .mapNotNull(shaToPull::get) + .replaceCherryPicks() + .minus(cherryPickedPrsInFirstCommit) + .distinctBy { it.number } + .flatMap { + pullToReleaseNotes[it]?.entries ?: it.unknownChangelogEntries() + } + .filterNot { it.id in cherryPickedIdsInFirstCommit } +} + +/** + * Extract redirection versions from core repo, file gradle.properties + * + * Example + * https://raw.githubusercontent.com/JetBrains/compose-multiplatform-core/v1.8.0%2Bdev1966/gradle.properties + * artifactRedirecting.androidx.graphics.version=1.0.1 + */ +fun androidxLibToRedirectionVersion(commit: String): Map { + val gradleProperties = githubContentOf("JetBrains/compose-multiplatform-core", "gradle.properties", commit) + val regexV1 = Regex("artifactRedirecting\\.androidx\\.(.*)\\.version=(.*)") + val regexV2 = Regex("artifactRedirection\\.version\\.androidx\\.(.*)=(.*)") // changed in https://github.com/JetBrains/compose-multiplatform-core/pull/1946/files#diff-3d103fc7c312a3e136f88e81cef592424b8af2464c468116545c4d22d6edcf19R100 + return listOf(regexV1, regexV2).flatMap { it.findAll(gradleProperties) }.associate { result -> + result.groupValues[1].trim() to result.groupValues[2].trim() + } +} + +/** + * Extract versions from CI config, file .teamcity/compose/Library.kt + * + * Example + * https://jetbrains.team/p/ui/repositories/compose-teamcity-config/files/8f8408ccd05a9188895969b1fa0243050716baad/.teamcity/compose/Library.kt?tab=source&line=37&lines-count=1 + * Library.CORE_BUNDLE -> "1.1.0-alpha01" + */ +fun androidxLibToVersion(commit: String): Map { + val repo = "ssh://git@git.jetbrains.team/ui/compose-teamcity-config.git" + val file = ".teamcity/compose/Library.kt" + val libraryKt = try { + spaceContentOf(repo, file, commit) + } catch (_: Exception) { + "" + } + + return if (libraryKt.isBlank()) { + println("Can't find library versions in $repo for $commit. Either the format is changed, or you need to register your ssh key in https://jetbrains.team/m/me/authentication?tab=GitKeys") + emptyMap() + } else { + val regex = Regex("Library\\.(.*)\\s*->\\s*\"(.*)\"") + return regex.findAll(libraryKt).associate { result -> + result.groupValues[1].trim() to result.groupValues[2].trim() + } + } +} + +fun githubContentOf(repo: String, path: String, commit: String): String { + val commitEncoded = URLEncoder.encode(commit, UTF_8) + return requestPlain("https://raw.githubusercontent.com/$repo/$commitEncoded/$path") +} + +fun spaceContentOf(repoUrl: String, path: String, tagName: String): String { + return pipeProcess("git archive --remote=$repoUrl $tagName $path") + .pipeTo("tar -xO $path") + .readText() +} + +/** + * Return a list of shas between [firstCommit] and [lastCommit] in [folder] + */ +fun gitLogShas(folder: File, firstCommit: String, lastCommit: String, additionalArgs: String): List { + val absolutePath = folder.absolutePath + val commits = pipeProcess("git -C $absolutePath log --oneline --format=%H $additionalArgs $firstCommit...$lastCommit"). + readText() + return commits.split("\n") +} + +/** + * Clone or fetch GitHub repo into [result] folder + */ +fun githubClone(repo: String): File { + val url = "https://github.com/$repo" + val folder = File("build/github/$repo") + val absolutePath = folder.absolutePath + if (!folder.exists() || folder.listFiles()?.isEmpty() == true) { + folder.mkdirs() + println("Cloning $url into ${folder.absolutePath}") + pipeProcess("git clone --bare $url $absolutePath").waitAndCheck() + } else { + println("Fetching $url into ${folder.absolutePath}") + pipeProcess("git -C $absolutePath fetch --force --tags").waitAndCheck() + } + check(folder.listFiles()?.isNotEmpty() == true) { + "Cloning $url failed" + } + return folder +} + +data class PullRequestLink(val repo: String, val number: Int) { + companion object { + fun parseOrNull(link: String): PullRequestLink? { + val (repo, number) = Regex("https://github//.com/(.+)/pull/(//d+)/?") + .matchEntire(link) + ?.destructured + ?: return null + return PullRequestLink(repo, number.toInt()) + } + } +} + +sealed interface ReleaseNotes { + val entries: List + + object NA: ReleaseNotes { + override val entries: List get() = emptyList() + } + + class CherryPicks(val pullRequests: List): ReleaseNotes { + override val entries: List get() = emptyList() + } + + class Specified(override val entries: List): ReleaseNotes +} + +/** + * Describes a single entry in a format: + * + * ### section - subsection + * ... + * - title (single line) + * details (line 1) + * details (line 2) + * ... + */ +data class ChangelogEntry( + val title: String, /** */ + val details: String?, + val section: String?, + val subsection: String?, + val prNumber: Int, + val link: String, + val isPrerelease: Boolean, +) { + /** + * Unique entry id used for excluding cherry-picked entries + */ + val id: UUID = UUID.nameUUIDFromBytes((section + subsection + title + details).toByteArray(Charsets.UTF_8)) +} + +fun ChangelogEntry.sectionOrder(): Int = section?.let(standardSections::indexOf) ?: standardSections.size +fun ChangelogEntry.subsectionOrder(): Int = subsection?.let(standardSubsections::indexOf) ?: standardSubsections.size +fun ChangelogEntry.sectionName(): String = section ?: "Unknown" +fun ChangelogEntry.subsectionName(): String = subsection ?: "Unknown" +fun String.normalizeSectionName() = standardSections.find { it.lowercase() == this.lowercase() } ?: this +fun String.normalizeSubsectionName() = standardSubsections.find { it.lowercase() == this.lowercase() } ?: this + +// example https://api.github.com/repos/JetBrains/compose-multiplatform-core/pulls?state=closed +data class GitHubPullEntry( + @SerializedName("html_url") val htmlUrl: String, + val number: Int, + val title: String, + val body: String?, + @SerializedName("merge_commit_sha") val mergeCommitSha: String?, +) + +//region ========================================== UTILS ========================================= +fun pipeProcess(command: String) = ProcessBuilder(command.split(" ")) + .redirectOutput(Redirect.PIPE) + .redirectError(Redirect.PIPE) + .start()!! + +fun Process.pipeTo(command: String): Process = pipeProcess(command).also { + inputStream.use { input -> + it.outputStream.use { out -> + input.copyTo(out) + } + } +} + +fun Process.waitAndCheck() { + val exitCode = waitFor() + if (exitCode != 0) { + val message = errorStream.bufferedReader().use { it.readText() } + error("Command failed with exit code $exitCode:\n$message") + } +} + +fun Process.readText(): String = inputStream.bufferedReader().use { + it.readText().also { + waitAndCheck() + } +} + +inline fun requestJson(url: String): T = + Gson().fromJson(requestPlain(url), T::class.java) + +fun requestPlain(url: String): String = exponentialRetry { + println("Request $url") + val connection = URL(url).openConnection() + connection.setRequestProperty("User-Agent", "Compose-Multiplatform-Script") + if (token != null) { + connection.setRequestProperty("Authorization", "Bearer $token") + } + connection.getInputStream().use { + it.bufferedReader().readText() + } +} + +fun exponentialRetry(block: () -> T): T { + val exception = IOException() + val retriesMinutes = listOf(1, 5, 15, 30, 60) + for (retriesMinute in retriesMinutes) { + try { + return block() + } catch (e: IOException) { + e.printStackTrace() + exception.addSuppressed(e) + println("Retry in $retriesMinute minutes") + Thread.sleep(retriesMinute.toLong() * 60 * 1000) + } + } + throw exception +} + + +typealias StringList = List + +fun StringList.split(shouldSplit: (line: String) -> Boolean): List = + fold(initial = mutableListOf>()) { acc, it -> + if (acc.isEmpty() || shouldSplit(it)) { + acc.add(mutableListOf()) + } + acc.last().add(it) + acc + } + +class Cache(private val create: (K) -> V) { + private val map = mutableMapOf() + operator fun get(key: K): V = map.getOrPut(key) { create(key) } +} + +//endregion diff --git a/tools/changelog/check-release-notes-github-action/action.yml b/tools/changelog/check-release-notes-github-action/action.yml new file mode 100644 index 00000000000..2ebd63fb758 --- /dev/null +++ b/tools/changelog/check-release-notes-github-action/action.yml @@ -0,0 +1,26 @@ +# Reusable GitHub action needed to check Release Notes in the PR description. Used by multiple Compose repositories. + +name: Check Release Notes in the description + +inputs: + checkout_ref: + type: string + default: 'master' + +runs: + using: "composite" + steps: + - uses: actions/checkout@v4 + with: + repository: JetBrains/compose-multiplatform + ref: ${{ inputs.checkout_ref }} + sparse-checkout: 'tools/changelog' + - name: Check Release Notes in the description + shell: bash + env: + # To avoid injections as suggested in https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable + PR_DESCRIPTION: ${{ github.event.pull_request.body }} + run: | + cd tools/changelog + echo "$PR_DESCRIPTION" > prDescription.txt + kotlin changelog.main.kts action=checkPr prDescription.txt token="" diff --git a/tools/replaceVersion.sh b/tools/replaceVersion.sh index d4722b2bfe8..380cb45e31f 100755 --- a/tools/replaceVersion.sh +++ b/tools/replaceVersion.sh @@ -47,11 +47,13 @@ replaceVersion() { replaceVersionInFile() { echo "Replace in $1" replaceVersion '^compose.version=.*' 'compose.version='"$COMPOSE_VERSION"'' $1 + replaceVersion '.*<\/compose.version>' ''"$COMPOSE_VERSION"'<\/compose.version>' $1 replaceVersion '^COMPOSE_CORE_VERSION=.*' 'COMPOSE_CORE_VERSION='"$COMPOSE_VERSION"'' $1 replaceVersion '^COMPOSE_WEB_VERSION=.*' 'COMPOSE_WEB_VERSION='"$COMPOSE_VERSION"'' $1 replaceVersion 'id("org.jetbrains.compose") version ".*"' 'id("org.jetbrains.compose") version "'"$COMPOSE_VERSION"'"' $1 replaceVersion '"org.jetbrains.compose:compose-gradle-plugin:.*"' '"org.jetbrains.compose:compose-gradle-plugin:'"$COMPOSE_VERSION"'"' $1 replaceVersion '^kotlin.version=.*' 'kotlin.version='"$KOTLIN_VERSION"'' $1 + replaceVersion '.*<\/kotlin.version>' ''"$KOTLIN_VERSION"'<\/kotlin.version>' $1 replaceVersion '^compose.tests.compiler.compatible.kotlin.version=.*' 'compose.tests.compiler.compatible.kotlin.version='"$KOTLIN_VERSION"'' $1 replaceVersion '^compose.tests.js.compiler.compatible.kotlin.version=.*' 'compose.tests.js.compiler.compatible.kotlin.version='"$KOTLIN_VERSION"'' $1 replaceVersion 'kotlin("multiplatform") version ".*"' 'kotlin("multiplatform") version "'"$KOTLIN_VERSION"'"' $1 @@ -65,5 +67,6 @@ replaceVersionInFolder() { for folder in "${folders[@]}" do replaceVersionInFolder $folder "**gradle.properties" + replaceVersionInFolder $folder "**pom.xml" replaceVersionInFolder $folder "**README.md" done diff --git a/tutorials/Accessibility/README.md b/tutorials/Accessibility/README.md deleted file mode 100644 index bb7127ae570..00000000000 --- a/tutorials/Accessibility/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Accessibility support - -## Platform Support - -| Platform | Status | -|----------|-----------------------------------| -| MacOS | Supported | -| Windows | Supported with Java Access Bridge | -| Linux | Not supported | - -## Custom widget with semantic rules - -```kotlin -import androidx.compose.foundation.* -import androidx.compose.foundation.layout.* -import androidx.compose.material.Text -import androidx.compose.runtime.* -import androidx.compose.ui.* -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.semantics.* -import androidx.compose.ui.unit.* -import androidx.compose.ui.window.* - -fun main() = singleWindowApplication( - title = "Custom Button", state = WindowState(size = DpSize(300.dp, 200.dp)) -) { - var count by remember { mutableStateOf(0) } - - Box(modifier = Modifier.padding(50.dp)) { - Box(modifier = Modifier - .background(Color.LightGray) - .fillMaxSize() - .clickable { count += 1 } - .semantics(mergeDescendants = true /* Use text from the contents (1) */) { - // This is a button (2) - role = Role.Button - // Add some help text to button (3) - contentDescription = "Click to increment value" - } - ) { - val text = when (count) { - 0 -> "Click Me!" - 1 -> "Clicked" - else -> "Clicked $count times" - } - Text(text, modifier = Modifier.align(Alignment.Center), fontSize = 24.sp) - } - } -} -``` - -![Custom Widget](./images/custom-widget.png) - -# Windows -Accessibility on Windows is provided by Java Access Bridge and is disabled by default. To enable it, run the following command in Command Prompt. - -```cmd -%JAVA_HOME%\bin\jabswitch.exe /enable -``` - -There are some issues with HiDPI display support on windows, see [Desktop Accessibility on Windows](Windows.md) for details. diff --git a/tutorials/Accessibility/Windows.md b/tutorials/Accessibility/Windows.md deleted file mode 100644 index 5caa90c944c..00000000000 --- a/tutorials/Accessibility/Windows.md +++ /dev/null @@ -1,18 +0,0 @@ -# Desktop Accessibility on Windows - -## Enabling Java Accessibility on Windows -Java Access Bridge is disabled by default. To enable it, run - -```cmd -%JAVA_HOME%\bin\jabswitch.exe /enable -``` - -## HiDPI issues -### JDK support -HiDPI support in Access Bridge was landed in [JDK-8279227](https://bugs.openjdk.java.net/browse/JDK-8279227). As for Feb/01/2022 this feature is not included in any released JDK, OpenJDK 17.0.4 release with this feature is planned for May 2022. - -### NVDA workaround -NVDA 2021.3.1 does not handle widget position properly. Until they fix it we can override DPI awareness in NVDA compatibility settings as shown: - -![NVDA compatibility settings](./images/nvda-compat.png) - diff --git a/tutorials/Accessibility/images/custom-widget.png b/tutorials/Accessibility/images/custom-widget.png deleted file mode 100644 index 860ee2f4c27..00000000000 Binary files a/tutorials/Accessibility/images/custom-widget.png and /dev/null differ diff --git a/tutorials/Accessibility/images/nvda-compat.png b/tutorials/Accessibility/images/nvda-compat.png deleted file mode 100644 index 1eb4664266f..00000000000 Binary files a/tutorials/Accessibility/images/nvda-compat.png and /dev/null differ diff --git a/tutorials/Context_Menu/README.md b/tutorials/Context_Menu/README.md deleted file mode 100644 index f4b73ffdb98..00000000000 --- a/tutorials/Context_Menu/README.md +++ /dev/null @@ -1,385 +0,0 @@ -# Context Menu in Compose for Desktop - -## What is covered - -In this tutorial we will cover all aspects of work with Context Menu -using the Compose UI framework. - -## Default context menu -There is out-of-the box context menu support for TextField and Selectable text. - -To enable standard context menu for a TextField you just need to put it inside DesktopMaterialTheme: - -```kotlin -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication(title = "Context menu") { - val text = remember { mutableStateOf("Hello!") } - TextField( - value = text.value, - onValueChange = { text.value = it }, - label = { Text(text = "Input") } - ) -} -``` -image - - -Standard context menu for TextField contains the following items based on text selection: Copy, Cut, Paste, Select All. - -Enabling standard context menu for a Text component is similar - you just need to make it selectable: - -```kotlin -import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.material.Text -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication(title = "Context menu") { - SelectionContainer { - Text("Hello World!") - } -} -``` -Context menu for text contains just Copy action: - -image - -## User-defined context menu -To enable additional context menu items for TextField and Text components, ContextMenuDataProvider and ContextMenuItem elements are used: - -```kotlin -import androidx.compose.foundation.ContextMenuDataProvider -import androidx.compose.foundation.ContextMenuItem -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication(title = "Context menu") { - val text = remember { mutableStateOf("Hello!") } - Column { - ContextMenuDataProvider( - items = { - listOf( - ContextMenuItem("User-defined Action") {/*do something here*/ }, - ContextMenuItem("Another user-defined action") {/*do something else*/ } - ) - } - ) { - TextField( - value = text.value, - onValueChange = { text.value = it }, - label = { Text(text = "Input") } - ) - - Spacer(Modifier.height(16.dp)) - - SelectionContainer { - Text("Hello World!") - } - } - } -} -``` -In this example Text/TextField context menus will be extended with two additional items: - -image - -## Context menu for an arbitrary area -There is a possibility to create a context menu for an arbitrary application window area. This is implemented using ContextMenuArea API that is -similar to ContextMenuDataProvider. -```kotlin -import androidx.compose.foundation.ContextMenuArea -import androidx.compose.foundation.ContextMenuItem -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.width -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication(title = "Context menu") { - ContextMenuArea(items = { - listOf( - ContextMenuItem("User-defined Action") {/*do something here*/}, - ContextMenuItem("Another user-defined action") {/*do something else*/} - ) - }) { - Box(modifier = Modifier.background(Color.Blue).height(100.dp).width(100.dp)) - } -} -``` -Right click on the Blue Square will show a context menu with two items: - -image - -## Styling context menu -Style of context menu doesn't comply MaterialTheme. To change its colors, you should override `LocalContextMenuRepresentation`: -```kotlin -import androidx.compose.foundation.DarkDefaultContextMenuRepresentation -import androidx.compose.foundation.LightDefaultContextMenuRepresentation -import androidx.compose.foundation.LocalContextMenuRepresentation -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.TextField -import androidx.compose.material.darkColors -import androidx.compose.material.lightColors -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication { - isSystemInDarkTheme() - MaterialTheme( - colors = if (isSystemInDarkTheme()) darkColors() else lightColors() - ) { - val contextMenuRepresentation = if (isSystemInDarkTheme()) { - DarkDefaultContextMenuRepresentation - } else { - LightDefaultContextMenuRepresentation - } - CompositionLocalProvider(LocalContextMenuRepresentation provides contextMenuRepresentation) { - Surface(Modifier.fillMaxSize()) { - Box { - var value by remember { mutableStateOf("") } - TextField(value, { value = it }) - } - } - } - } -} -``` -image - -## Custom text context menu -You can override text menu for all texts and text fields in your application, overriding `TextContextMenu`: -```kotlin -import androidx.compose.foundation.ContextMenuDataProvider -import androidx.compose.foundation.ContextMenuItem -import androidx.compose.foundation.ContextMenuState -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.text.LocalTextContextMenu -import androidx.compose.foundation.text.TextContextMenu -import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.awt.ComposePanel -import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.text.AnnotatedString -import java.awt.Dimension -import java.net.URLEncoder -import java.nio.charset.Charset -import javax.swing.JFrame -import javax.swing.SwingUtilities - -fun main() = SwingUtilities.invokeLater { - val panel = ComposePanel() - panel.setContent { - CustomTextMenuProvider { - Column { - SelectionContainer { - Text("Hello, Compose!") - } - - var text by remember { mutableStateOf("") } - - TextField(text, { text = it }) - } - } - } - - val window = JFrame() - window.contentPane.add(panel) - window.size = Dimension(800, 600) - window.isVisible = true -} - -@OptIn(ExperimentalFoundationApi::class) -@Composable -fun CustomTextMenuProvider(content: @Composable () -> Unit) { - val textMenu = LocalTextContextMenu.current - val uriHandler = LocalUriHandler.current - CompositionLocalProvider( - LocalTextContextMenu provides object : TextContextMenu { - @Composable - override fun Area( - textManager: TextContextMenu.TextManager, - state: ContextMenuState, - content: @Composable () -> Unit - ) { - // Here we reuse the original TextContextMenu, but add an additional item to item on the bottom. - ContextMenuDataProvider({ - val shortText = textManager.selectedText.crop() - if (shortText.isNotEmpty()) { - val encoded = URLEncoder.encode(shortText, Charset.defaultCharset()) - listOf(ContextMenuItem("Search $shortText") { - uriHandler.openUri("https://google.com/search?q=$encoded") - }) - } else { - emptyList() - } - }) { - textMenu.Area(textManager, state, content = content) - } - } - }, - content = content - ) -} - -private fun AnnotatedString.crop() = if (length <= 5) toString() else "${take(5)}..." -``` -image - -## Swing interoperability -If you are embedding Compose into an existing application, you may want the text context menu to look the same as in other parts of the application. To do this, there is `JPopupTextMenu`: -```kotlin -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.text.JPopupTextMenu -import androidx.compose.foundation.text.LocalTextContextMenu -import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.awt.ComposePanel -import androidx.compose.ui.platform.LocalLocalization -import java.awt.Color -import java.awt.Component -import java.awt.Dimension -import java.awt.Graphics -import java.awt.event.KeyEvent -import java.awt.event.KeyEvent.CTRL_DOWN_MASK -import java.awt.event.KeyEvent.META_DOWN_MASK -import javax.swing.Icon -import javax.swing.JFrame -import javax.swing.JMenuItem -import javax.swing.JPopupMenu -import javax.swing.KeyStroke.getKeyStroke -import javax.swing.SwingUtilities -import org.jetbrains.skiko.hostOs - -fun main() = SwingUtilities.invokeLater { - val panel = ComposePanel() - panel.setContent { - JPopupTextMenuProvider(panel) { - Column { - SelectionContainer { - Text("Hello, Compose!") - } - - var text by remember { mutableStateOf("") } - - TextField(text, { text = it }) - } - } - } - - val window = JFrame() - window.contentPane.add(panel) - window.size = Dimension(800, 600) - window.isVisible = true -} - -@OptIn(ExperimentalFoundationApi::class) -@Composable -fun JPopupTextMenuProvider(owner: Component, content: @Composable () -> Unit) { - val localization = LocalLocalization.current - CompositionLocalProvider( - LocalTextContextMenu provides JPopupTextMenu(owner) { textManager, items -> - JPopupMenu().apply { - textManager.cut?.also { - add( - swingItem(localization.cut, Color.RED, KeyEvent.VK_X, it) - ) - } - textManager.copy?.also { - add( - swingItem(localization.copy, Color.GREEN, KeyEvent.VK_C, it) - ) - } - textManager.paste?.also { - add( - swingItem(localization.paste, Color.BLUE, KeyEvent.VK_V, it) - ) - } - textManager.selectAll?.also { - add(JPopupMenu.Separator()) - add( - swingItem(localization.selectAll, Color.BLACK, KeyEvent.VK_A, it) - ) - } - - // Here we add other items that can be defined additionaly in the other places of the application via ContextMenuDataProvider - for (item in items) { - add( - JMenuItem(item.label).apply { - addActionListener { item.onClick() } - } - ) - } - } - }, - content = content - ) -} - -private fun swingItem( - label: String, - color: Color, - key: Int, - onClick: () -> Unit -) = JMenuItem(label).apply { - icon = circleIcon(color) - accelerator = getKeyStroke(key, if (hostOs.isMacOS) META_DOWN_MASK else CTRL_DOWN_MASK) - addActionListener { onClick() } -} - -private fun circleIcon(color: Color) = object : Icon { - override fun paintIcon(c: Component?, g: Graphics, x: Int, y: Int) { - g.create().apply { - this.color = color - translate(16, 2) - fillOval(0, 0, 16, 16) - } - } - - override fun getIconWidth() = 16 - - override fun getIconHeight() = 16 -} -``` -image - diff --git a/tutorials/Desktop_Components/README.md b/tutorials/Desktop_Components/README.md deleted file mode 100644 index 8fe0ea905ce..00000000000 --- a/tutorials/Desktop_Components/README.md +++ /dev/null @@ -1,247 +0,0 @@ -# Desktop components - -## What is covered - -In this tutorial, we will show you how to use desktop-specific components of Compose for Desktop such as scrollbars and tooltips. - -## Scrollbars - -You can apply scrollbars to scrollable components. The scrollbar and scrollable components share a common state to synchronize with each other. For example, `VerticalScrollbar` can be attached to `Modifier.verticalScroll`, and `LazyColumn` and `HorizontalScrollbar` can be attached to `Modifier.horizontalScroll` and `LazyRow`. - -```kotlin -import androidx.compose.foundation.HorizontalScrollbar -import androidx.compose.foundation.VerticalScrollbar -import androidx.compose.foundation.background -import androidx.compose.foundation.horizontalScroll -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.foundation.verticalScroll -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.WindowState -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication( - title = "Scrollbars", - state = WindowState(width = 250.dp, height = 400.dp) -) { - Box( - modifier = Modifier.fillMaxSize() - .background(color = Color(180, 180, 180)) - .padding(10.dp) - ) { - val stateVertical = rememberScrollState(0) - val stateHorizontal = rememberScrollState(0) - - Box( - modifier = Modifier - .fillMaxSize() - .verticalScroll(stateVertical) - .padding(end = 12.dp, bottom = 12.dp) - .horizontalScroll(stateHorizontal) - ) { - Column { - for (item in 0..30) { - TextBox("Item #$item") - if (item < 30) { - Spacer(modifier = Modifier.height(5.dp)) - } - } - } - } - VerticalScrollbar( - modifier = Modifier.align(Alignment.CenterEnd) - .fillMaxHeight(), - adapter = rememberScrollbarAdapter(stateVertical) - ) - HorizontalScrollbar( - modifier = Modifier.align(Alignment.BottomStart) - .fillMaxWidth() - .padding(end = 12.dp), - adapter = rememberScrollbarAdapter(stateHorizontal) - ) - } -} - -@Composable -fun TextBox(text: String = "Item") { - Box( - modifier = Modifier.height(32.dp) - .width(400.dp) - .background(color = Color(200, 0, 0, 20)) - .padding(start = 10.dp), - contentAlignment = Alignment.CenterStart - ) { - Text(text = text) - } -} -``` - -Scrollbars can be moved by dragging the bars and using the mouse wheel or the touchpad. Horizontal scrolling with the mouse wheel can be performed by side-clicking the wheel or by holding down `Shift`. - -Scrollbars - -## Lazy scrollable components with Scrollbar - -You can use scrollbars with lazy scrollable components, for example, `LazyColumn`. - -```kotlin -import androidx.compose.foundation.VerticalScrollbar -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberWindowState - -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - title = "Scrollbars", - state = rememberWindowState(width = 250.dp, height = 400.dp) - ) { - LazyScrollable() - } -} - -@Composable -fun LazyScrollable() { - Box( - modifier = Modifier.fillMaxSize() - .background(color = Color(180, 180, 180)) - .padding(10.dp) - ) { - - val state = rememberLazyListState() - - LazyColumn(Modifier.fillMaxSize().padding(end = 12.dp), state) { - items(1000) { x -> - TextBox("Item #$x") - Spacer(modifier = Modifier.height(5.dp)) - } - } - VerticalScrollbar( - modifier = Modifier.align(Alignment.CenterEnd).fillMaxHeight(), - adapter = rememberScrollbarAdapter( - scrollState = state - ) - ) - } -} - -@Composable -fun TextBox(text: String = "Item") { - Box( - modifier = Modifier.height(32.dp) - .fillMaxWidth() - .background(color = Color(0, 0, 0, 20)) - .padding(start = 10.dp), - contentAlignment = Alignment.CenterStart - ) { - Text(text = text) - } -} -``` - -Lazy component - -## Tooltips - -You can add tooltip to any components using `TooltipArea`. `TooltipArea` is similar to a `Box`, but with the ability to show a tooltip. - -The main arguments of the `TooltipArea` function: - - tooltip - composable content representing tooltip - - tooltipPlacement - describes how to place tooltip. You can specify an anchor (the mouse cursor or the component), an offset and an alignment - - delay - time delay in milliseconds after which the tooltip will be shown (default is 500 ms) - -```kotlin -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.TooltipArea -import androidx.compose.foundation.TooltipPlacement -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Button -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.shadow -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.DpOffset -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberWindowState - -@OptIn(ExperimentalComposeUiApi::class, ExperimentalFoundationApi::class) -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - title = "Tooltip Example", - state = rememberWindowState(width = 300.dp, height = 300.dp) - ) { - val buttons = listOf("Button A", "Button B", "Button C", "Button D", "Button E", "Button F") - Column(Modifier.fillMaxSize(), Arrangement.spacedBy(5.dp)) { - buttons.forEachIndexed { index, name -> - // wrap button in BoxWithTooltip - TooltipArea( - tooltip = { - // composable tooltip content - Surface( - modifier = Modifier.shadow(4.dp), - color = Color(255, 255, 210), - shape = RoundedCornerShape(4.dp) - ) { - Text( - text = "Tooltip for ${name}", - modifier = Modifier.padding(10.dp) - ) - } - }, - modifier = Modifier.padding(start = 40.dp), - delayMillis = 600, // in milliseconds - tooltipPlacement = TooltipPlacement.CursorPoint( - alignment = Alignment.BottomEnd, - offset = if (index % 2 == 0) DpOffset(-16.dp, 0.dp) else DpOffset.Zero // tooltip offset - ) - ) { - Button(onClick = {}) { Text(text = name) } - } - } - } - } -} -``` - -Tooltip diff --git a/tutorials/Desktop_Components/lazy_scrollbar.gif b/tutorials/Desktop_Components/lazy_scrollbar.gif deleted file mode 100644 index a4c9eaeead2..00000000000 Binary files a/tutorials/Desktop_Components/lazy_scrollbar.gif and /dev/null differ diff --git a/tutorials/Desktop_Components/scrollbars.gif b/tutorials/Desktop_Components/scrollbars.gif deleted file mode 100644 index b11a53bb02e..00000000000 Binary files a/tutorials/Desktop_Components/scrollbars.gif and /dev/null differ diff --git a/tutorials/Desktop_Components/tooltips.gif b/tutorials/Desktop_Components/tooltips.gif deleted file mode 100644 index a2930b2e1c3..00000000000 Binary files a/tutorials/Desktop_Components/tooltips.gif and /dev/null differ diff --git a/tutorials/HTML/Building_UI/README.md b/tutorials/HTML/Building_UI/README.md index 1670b1779df..2de5c7a2b56 100644 --- a/tutorials/HTML/Building_UI/README.md +++ b/tutorials/HTML/Building_UI/README.md @@ -1,4 +1,4 @@ -# Building the UI with with the Compose HTML library +# Building the UI with the Compose HTML library In this tutorial we will look at several examples that use the Composable HTML/CSS DSL to describe the user interface for your web application. diff --git a/tutorials/HTML/Getting_Started/README.md b/tutorials/HTML/Getting_Started/README.md index 96f81dd6d1b..e2885f823a5 100644 --- a/tutorials/HTML/Getting_Started/README.md +++ b/tutorials/HTML/Getting_Started/README.md @@ -36,8 +36,8 @@ pluginManagement { ``` kotlin // Add compose gradle plugin plugins { - kotlin("multiplatform") version "2.0.0" - id("org.jetbrains.compose") version "1.6.10" + kotlin("multiplatform") version "2.2.20" + id("org.jetbrains.compose") version "1.9.0" } // Add maven repositories diff --git a/tutorials/Keyboard/README.md b/tutorials/Keyboard/README.md deleted file mode 100644 index 2f7f132f598..00000000000 --- a/tutorials/Keyboard/README.md +++ /dev/null @@ -1,168 +0,0 @@ -# Keyboard events handling - -## Prerequisites - -This tutorial expects that you have already set up the Compose project as described in the [Getting Started tutorial](../Getting_Started) - -## What is covered - -In this tutorial, we will look at two different ways of handling keyboard events in Compose for Desktop as well as the utilities that we have to do this. - -## Event handlers - -There are two ways to handle key events in Compose for Desktop: - -- By setting up an event handler based on the element that is in focus -- By setting up an event handler in the scope of the window - -## Focus related events - -It works the same as Compose for Android, for details see [API Reference](https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/package-summary#keyinputfilter) - -The most common use case is to define keyboard handlers for active controls like `TextField`. You can use both `onKeyEvent` and `onPreviewKeyEvent` but the last one is usually preferable to define shortcuts while it guarantees you that key events will not be consumed by children components. Here is an example: - -```kotlin -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.material.TextField -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.key.Key -import androidx.compose.ui.input.key.isCtrlPressed -import androidx.compose.ui.input.key.key -import androidx.compose.ui.input.key.onPreviewKeyEvent -import androidx.compose.ui.input.key.type -import androidx.compose.ui.input.key.KeyEventType -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalComposeUiApi::class) -fun main() = singleWindowApplication { - MaterialTheme { - var consumedText by remember { mutableStateOf(0) } - var text by remember { mutableStateOf("") } - Column(Modifier.fillMaxSize(), Arrangement.spacedBy(5.dp)) { - Text("Consumed text: $consumedText") - TextField( - value = text, - onValueChange = { text = it }, - modifier = Modifier.onPreviewKeyEvent { - when { - (it.isCtrlPressed && it.key == Key.Minus && it.type == KeyEventType.KeyUp) -> { - consumedText -= text.length - text = "" - true - } - (it.isCtrlPressed && it.key == Key.Equals && it.type == KeyEventType.KeyUp) -> { - consumedText += text.length - text = "" - true - } - else -> false - } - } - ) - } - } -} -``` - -Note the annotation `@OptIn(ExperimentalComposeUiApi::class)`. Some keys related APIs are still an experimental feature of Compose, and later API changes are possible. So it requires the use of a special annotation to emphasize the experimental nature of the code. - -keyInputFilter - -## Window-scoped events - -`Window`, `singleWindowApplication` and `Dialog` functions have a `onPreviewKeyEvent` and a `onKeyEvent` properties. It is possible to use them to define keyboard event handlers that are always active in the current window. You possibly want to use `onPreviewKeyEvent` here to intercept events. Here is an example: - -``` kotlin -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.key.Key -import androidx.compose.ui.input.key.KeyEventType -import androidx.compose.ui.input.key.isCtrlPressed -import androidx.compose.ui.input.key.isShiftPressed -import androidx.compose.ui.input.key.key -import androidx.compose.ui.input.key.type -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Dialog -import androidx.compose.ui.window.singleWindowApplication - -private var cleared by mutableStateOf(false) - -@OptIn(ExperimentalComposeUiApi::class) -fun main() = singleWindowApplication( - onKeyEvent = { - if ( - it.isCtrlPressed && - it.isShiftPressed && - it.key == Key.C && - it.type == KeyEventType.KeyDown - ) { - cleared = true - true - } else { - false - } - } -) { - MaterialTheme { - if (cleared) { - Text("The App was cleared!") - } else { - App() - } - } -} - -@OptIn(ExperimentalComposeUiApi::class) -@Composable -fun App() { - var isDialogOpen by remember { mutableStateOf(false) } - - if (isDialogOpen) { - Dialog( - onCloseRequest = { isDialogOpen = false }, - onPreviewKeyEvent = { - if (it.key == Key.Escape && it.type == KeyEventType.KeyDown) { - isDialogOpen = false - true - } else { - false - } - }) { - Text("I'm dialog!") - } - } - - Column(Modifier.fillMaxSize(), Arrangement.spacedBy(5.dp)) { - Button( - modifier = Modifier.padding(4.dp), - onClick = { isDialogOpen = true } - ) { - Text("Open dialog") - } - } -} -``` - -window_keyboard diff --git a/tutorials/Keyboard/keyInputFilter.gif b/tutorials/Keyboard/keyInputFilter.gif deleted file mode 100644 index ec7dd773a52..00000000000 Binary files a/tutorials/Keyboard/keyInputFilter.gif and /dev/null differ diff --git a/tutorials/Keyboard/window_keyboard.gif b/tutorials/Keyboard/window_keyboard.gif deleted file mode 100644 index b6339e7e351..00000000000 Binary files a/tutorials/Keyboard/window_keyboard.gif and /dev/null differ diff --git a/tutorials/Mouse_Events/README.md b/tutorials/Mouse_Events/README.md deleted file mode 100644 index 336d491d305..00000000000 --- a/tutorials/Mouse_Events/README.md +++ /dev/null @@ -1,492 +0,0 @@ -# Mouse events - -## What is covered - -In this tutorial we will see how to install mouse event listeners on components -in Compose for Desktop. - -## Mouse event listeners - -### Click listeners - -Click listeners are available in both Compose on Android and Compose for Desktop, so code like this will work on both platforms: - -```kotlin -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.background -import androidx.compose.foundation.combinedClickable -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.sp -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication { - var count by remember { mutableStateOf(0) } - Box(contentAlignment = Alignment.Center, modifier = Modifier.fillMaxWidth()) { - var text by remember { mutableStateOf("Click magenta box!") } - Column { - @OptIn(ExperimentalFoundationApi::class) - Box( - modifier = Modifier - .background(Color.Magenta) - .fillMaxWidth(0.7f) - .fillMaxHeight(0.2f) - .combinedClickable( - onClick = { - text = "Click! ${count++}" - }, - onDoubleClick = { - text = "Double click! ${count++}" - }, - onLongClick = { - text = "Long click! ${count++}" - } - ) - ) - Text(text = text, fontSize = 40.sp) - } - } -} -``` - -Application running - -`combinedClickable` supports only the Primary button (Left Mouse Button) and touch events. If there is a need to handle other buttons differently, please have a look at `Modifier.onClick` below (note: `Modifier.onClick` is currently avilable only for Desktop-JVM platform). - -### Mouse move listeners - -Let's create a window and install a pointer move listener on it that changes the background color according to the mouse pointer position: -```kotlin -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.PointerEventType -import androidx.compose.ui.input.pointer.onPointerEvent -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalComposeUiApi::class) -fun main() = singleWindowApplication { - var color by remember { mutableStateOf(Color(0, 0, 0)) } - Box( - modifier = Modifier - .wrapContentSize(Alignment.Center) - .fillMaxSize() - .background(color = color) - .onPointerEvent(PointerEventType.Move) { - val position = it.changes.first().position - color = Color(position.x.toInt() % 256, position.y.toInt() % 256, 0) - } - ) -} -``` -*Note that onPointerEvent is experimental and can be changed in the future. For more stable API look at [Modifier.pointerInput](#listenining-raw-events-in-commonmain-via-modifierpointerinput)*. - -Application running - -### Mouse enter listeners - -Compose for Desktop also supports pointer enter and exit handlers, like this: -```kotlin -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.PointerEventType -import androidx.compose.ui.input.pointer.onPointerEvent -import androidx.compose.ui.text.font.FontStyle -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalComposeUiApi::class) -fun main() = singleWindowApplication { - Column( - Modifier.background(Color.White), - verticalArrangement = Arrangement.spacedBy(10.dp) - ) { - repeat(10) { index -> - var active by remember { mutableStateOf(false) } - Text( - modifier = Modifier - .fillMaxWidth() - .background(color = if (active) Color.Green else Color.White) - .onPointerEvent(PointerEventType.Enter) { active = true } - .onPointerEvent(PointerEventType.Exit) { active = false }, - fontSize = 30.sp, - fontStyle = if (active) FontStyle.Italic else FontStyle.Normal, - text = "Item $index" - ) - } - } -} -``` -*Note that onPointerEvent is experimental and can be changed in the future. For more stable API look at [Modifier.pointerInput](#listenining-raw-events-in-commonmain-via-modifierpointerinput)*. - -Application running - -### Mouse scroll listeners -```kotlin -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.pointer.PointerEventType -import androidx.compose.ui.input.pointer.onPointerEvent -import androidx.compose.ui.unit.sp -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalComposeUiApi::class) -fun main() = singleWindowApplication { - var number by remember { mutableStateOf(0f) } - Box( - Modifier - .fillMaxSize() - .onPointerEvent(PointerEventType.Scroll) { - number += it.changes.first().scrollDelta.y - }, - contentAlignment = Alignment.Center - ) { - Text("Scroll to change the number: $number", fontSize = 30.sp) - } -} -``` -*Note that onPointerEvent is experimental and can be changed in the future. For more stable API look at [Modifier.pointerInput](#listenining-raw-events-in-commonmain-via-modifierpointerinput)*. - -### Swing interoperability - -Compose for Desktop uses Swing underneath and allows to access raw AWT events: -```kotlin -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.awt.awtEventOrNull -import androidx.compose.ui.input.pointer.PointerEventType -import androidx.compose.ui.input.pointer.onPointerEvent -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalComposeUiApi::class) -fun main() = singleWindowApplication { - var text by remember { mutableStateOf("") } - - Box( - Modifier - .fillMaxSize() - .onPointerEvent(PointerEventType.Press) { - text = it.awtEventOrNull?.locationOnScreen?.toString().orEmpty() - }, - contentAlignment = Alignment.Center - ) { - Text(text) - } -} -``` -*Note that onPointerEvent is experimental and can be changed in the future. For more stable API look at [Modifier.pointerInput](#listenining-raw-events-in-commonmain-via-modifierpointerinput)*. - -### Listenining raw events in commonMain via Modifier.pointerInput -In the snippets above we use `Modifier.onPointerEvent`, which is a helper function to subscribe to some type of pointer events. It is a shorter variant of `Modifier.pointerInput`. For now it is experimental, and desktop-only (you can't use it in commonMain code). If you need to subscribe to events in commonMain or you need stable API, you can use `Modifier.pointerInput`: - -```kotlin -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Text -import androidx.compose.runtime.mutableStateListOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.input.pointer.PointerEventType -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication { - val list = remember { mutableStateListOf() } - - Column( - Modifier - .fillMaxSize() - .pointerInput(Unit) { - awaitPointerEventScope { - while (true) { - val event = awaitPointerEvent() - val position = event.changes.first().position - // on every relayout Compose will send synthetic Move event, - // so we skip it to avoid event spam - if (event.type != PointerEventType.Move) { - list.add(0, "${event.type} $position") - } - } - } - }, - ) { - for (item in list.take(20)) { - Text(item) - } - } -} -``` - -### New experimental onClick handlers (only for Desktop-JVM platform) -`Modifier.onClick` provides independent callbacks for clicks, double clicks, long clicks. It handles clicks originated only from pointer events and accessibility `click` event is not handled out of a box. - -Each `onClick` can be configured to target specific pointer events (using `matcher: PointerMatcher` and `keyboardModifiers: PointerKeyboardModifiers.() -> Boolean`). `matcher` can be specified to choose what mouse button should trigger a click. `keyboardModifiers` allows for filtering pointer events which have specified keyboardModifiers pressed. - -Multiple `onClick` modifiers can be chained to handle different clicks with different conditions (matcher and keyboard modifiers). -Unlike `clickable`, `onClick` doesn't have a default `Modifier.indication`, `Modifier.semantics`, and it doesn't trigger a click event when `Enter` pressed. These modifiers need to be added separately if necessary. -The most generic (with the least number of conditions) `onClick` handlers should be declared before other to ensure correct events propagation. - -```kotlin -import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.ExperimentalAnimationApi -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.LocalIndication -import androidx.compose.foundation.PointerMatcher -import androidx.compose.foundation.background -import androidx.compose.foundation.indication -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.onClick -import androidx.compose.material.Text -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.PointerButton -import androidx.compose.ui.input.pointer.isAltPressed -import androidx.compose.ui.input.pointer.isShiftPressed -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalFoundationApi::class, ExperimentalAnimationApi::class) -fun main() = singleWindowApplication { - Column { - var topBoxText by remember { mutableStateOf("Click me\nusing LMB or LMB + Shift") } - var topBoxCount by remember { mutableStateOf(0) } - // No indication on interaction - Box(modifier = Modifier.size(200.dp, 100.dp).background(Color.Blue) - // the most generic click handler (without extra conditions) should be the first one - .onClick { - // it will receive all LMB clicks except when Shift is pressed - println("Click with primary button") - topBoxText = "LMB ${topBoxCount++}" - }.onClick( - keyboardModifiers = { isShiftPressed } // accept clicks only when Shift pressed - ) { - // it will receive all LMB clicks when Shift is pressed - println("Click with primary button and shift pressed") - topBoxCount++ - topBoxText = "LMB + Shift ${topBoxCount++}" - } - ) { - AnimatedContent( - targetState = topBoxText, - modifier = Modifier.align(Alignment.Center) - ) { - Text(text = it, textAlign = TextAlign.Center) - } - } - - var bottomBoxText by remember { mutableStateOf("Click me\nusing LMB or\nRMB + Alt") } - var bottomBoxCount by remember { mutableStateOf(0) } - val interactionSource = remember { MutableInteractionSource() } - // With indication on interaction - Box(modifier = Modifier.size(200.dp, 100.dp).background(Color.Yellow) - .onClick( - enabled = true, - interactionSource = interactionSource, - matcher = PointerMatcher.mouse(PointerButton.Secondary), // Right Mouse Button - keyboardModifiers = { isAltPressed }, // accept clicks only when Alt pressed - onLongClick = { // optional - bottomBoxText = "RMB Long Click + Alt ${bottomBoxCount++}" - println("Long Click with secondary button and Alt pressed") - }, - onDoubleClick = { // optional - bottomBoxText = "RMB Double Click + Alt ${bottomBoxCount++}" - println("Double Click with secondary button and Alt pressed") - }, - onClick = { - bottomBoxText = "RMB Click + Alt ${bottomBoxCount++}" - println("Click with secondary button and Alt pressed") - } - ) - .onClick(interactionSource = interactionSource) { // use default parameters - bottomBoxText = "LMB Click ${bottomBoxCount++}" - println("Click with primary button (mouse left button)") - } - .indication(interactionSource, LocalIndication.current) - ) { - AnimatedContent( - targetState = bottomBoxText, - modifier = Modifier.align(Alignment.Center) - ) { - Text(text = it, textAlign = TextAlign.Center) - } - } - } -} -``` - -### New experimental onDrag modifier (only for Desktop-JVM platform) - -`Modifier.onDrag` allows for configuration of the pointer that should trigger the drag (see `matcher: PointerMatcher`). -Many `onDrag` modifiers can be chained together. - -The example below also shows how to access the state of keyboard modifiers (via `LocalWindowInfo.current.keyboardModifier`) for cases when keyboard modifiers can alter the behaviour of the drag (for example: move an item if we perform a simple drag; or copy/paste an item if dragged with Ctrl pressed) - -```kotlin -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.PointerMatcher -import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.onDrag -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.offset -import androidx.compose.foundation.layout.size -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.PointerButton -import androidx.compose.ui.input.pointer.isCtrlPressed -import androidx.compose.ui.platform.LocalWindowInfo -import androidx.compose.ui.unit.IntOffset -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalFoundationApi::class) -fun main() = singleWindowApplication { - val windowInfo = LocalWindowInfo.current - - Column { - var topBoxOffset by remember { mutableStateOf(Offset(0f, 0f)) } - - Box(modifier = Modifier.offset { - IntOffset(topBoxOffset.x.toInt(), topBoxOffset.y.toInt()) - }.size(100.dp) - .background(Color.Green) - .onDrag { // all default: enabled = true, matcher = PointerMatcher.Primary (left mouse button) - topBoxOffset += it - } - ) { - Text(text = "Drag with LMB", modifier = Modifier.align(Alignment.Center)) - } - - var bottomBoxOffset by remember { mutableStateOf(Offset(0f, 0f)) } - - Box(modifier = Modifier.offset { - IntOffset(bottomBoxOffset.x.toInt(), bottomBoxOffset.y.toInt()) - }.size(100.dp) - .background(Color.LightGray) - .onDrag( - enabled = true, - matcher = PointerMatcher.mouse(PointerButton.Secondary), // right mouse button - onDragStart = { - println("Gray Box: drag start") - }, - onDragEnd = { - println("Gray Box: drag end") - } - ) { - val keyboardModifiers = windowInfo.keyboardModifiers - bottomBoxOffset += if (keyboardModifiers.isCtrlPressed) it * 2f else it - } - ) { - Text(text = "Drag with RMB,\ntry with CTRL", modifier = Modifier.align(Alignment.Center)) - } - } -} -``` - -There is also a non-modifier way to handle drags using `suspend fun PointerInputScope.detectDragGestures`: - -```kotlin -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.PointerMatcher -import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.detectDragGestures -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.offset -import androidx.compose.foundation.layout.size -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.unit.IntOffset -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication - -@OptIn(ExperimentalFoundationApi::class) -fun main() = singleWindowApplication { - var topBoxOffset by remember { mutableStateOf(Offset(0f, 0f)) } - - Box(modifier = Modifier.offset { - IntOffset(topBoxOffset.x.toInt(), topBoxOffset.y.toInt()) - }.size(100.dp) - .background(Color.Green) - .pointerInput(Unit) { - detectDragGestures( - matcher = PointerMatcher.Primary - ) { - topBoxOffset += it - } - } - ) { - Text(text = "Drag with LMB", modifier = Modifier.align(Alignment.Center)) - } -} -``` - diff --git a/tutorials/Mouse_Events/mouse_click.gif b/tutorials/Mouse_Events/mouse_click.gif deleted file mode 100644 index c9eaa6b08e2..00000000000 Binary files a/tutorials/Mouse_Events/mouse_click.gif and /dev/null differ diff --git a/tutorials/Mouse_Events/mouse_enter.gif b/tutorials/Mouse_Events/mouse_enter.gif deleted file mode 100644 index cfc625f2b11..00000000000 Binary files a/tutorials/Mouse_Events/mouse_enter.gif and /dev/null differ diff --git a/tutorials/Mouse_Events/mouse_event.gif b/tutorials/Mouse_Events/mouse_event.gif deleted file mode 100644 index e2b73febbf5..00000000000 Binary files a/tutorials/Mouse_Events/mouse_event.gif and /dev/null differ diff --git a/tutorials/Mouse_Events/mouse_move.gif b/tutorials/Mouse_Events/mouse_move.gif deleted file mode 100644 index 1ad33e4ed21..00000000000 Binary files a/tutorials/Mouse_Events/mouse_move.gif and /dev/null differ diff --git a/tutorials/Native_distributions_and_local_execution/README.md b/tutorials/Native_distributions_and_local_execution/README.md deleted file mode 100755 index ffc91c4904d..00000000000 --- a/tutorials/Native_distributions_and_local_execution/README.md +++ /dev/null @@ -1,665 +0,0 @@ -# Native distributions & local execution - -## What is covered - -In this tutorial, we'll show you how to create native distributions (installers/packages) for all the supported systems. -We will also demonstrate how to run an application locally with the same settings as for distributions. - -## Available tools - -There are two tools available for packaging Compose applications: - -1. The Compose Multiplatform Gradle plugin which provides tasks for basic packaging, obfuscation and (macOS only) signing. -2. [Conveyor](https://www.hydraulic.software), which is a separate tool not made by JetBrains. - -This tutorial covers how to use the built-in tasks. Conveyor has [its own tutorial](https://conveyor.hydraulic.dev/latest/tutorial/hare/jvm). The choice of which to use boils down to features/ease of use vs price. Conveyor provides support for online updates, cross-building and [various other features](packaging-tools-comparison.md) but requires [a license](https://hydraulic.software/pricing.html) for non-open source projects. The packaging tasks come with the Compose Desktop Gradle plugin, but the resulting packages don't support online updates and will require a multi-platform CI setup to create packages for each OS. - -## Gradle plugin - -`org.jetbrains.compose` Gradle plugin simplifies the packaging of applications into native distributions using `jpackage` and running an application locally. -Distributable applications are self-contained, installable binaries which include all the Java runtime components they need, -without requiring an installed JDK on the target system. - -[Jlink](https://openjdk.java.net/jeps/282) will take care of bundling only the necessary Java Modules in -the distributable package to minimize package size, -but you must still configure the Gradle plugin to tell it which modules you need -(see the `Configuring included JDK modules` section). - -## Basic usage - -The basic unit of configuration in the plugin is an `application`. -An `application` defines a shared configuration for a set of final binaries. -In other words, an `application` in DSL allows you to pack a bunch of files, -together with a JDK distribution, into a set of compressed binary installers -in various formats (`.dmg`, `.deb`, `.msi`, `.exe`, etc). - -``` kotlin -import org.jetbrains.compose.compose -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("jvm") - id("org.jetbrains.compose") -} - -dependencies { - implementation(compose.desktop.currentOS) -} - -compose.desktop { - application { - mainClass = "example.MainKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - } - } -} -``` - -The plugin creates the following tasks: -* `package` (e.g. `packageDmg` or `packageMsi`) are used for packaging the app into the corresponding format. -Note, that there is no cross-compilation support available at the moment, -so the formats can only be built using the specific OS (e.g. to build `.dmg` you have to use macOS). -Tasks that are not compatible with the current OS are skipped by default. -* `packageDistributionForCurrentOS` is a [lifecycle](https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:lifecycle_tasks) task, -aggregating all package tasks for an application. -* `packageUberJarForCurrentOS` is used to create a single jar file, containing all dependencies for current OS. -The task is available starting from the M2 release. -The task expects `compose.desktop.currentOS` to be used as a `compile`/`implementation`/`runtime` dependency. -* `run` is used to run an app locally. You need to define a `mainClass` — an fq-name of a class, -containing the `main` function. -Note, that `run` starts a non-packaged JVM application with full runtime. -This is faster and easier to debug, than creating a compact binary image with minified runtime. -To run a final binary image, use `runDistributable` instead. -* `createDistributable` is used to create a prepackaged application image a final application image without creating an installer. -* `runDistributable` is used to run a prepackaged application image. - -Note, that the tasks are created only if the `application` block/property is used in a script. - -After a build, output binaries can be found in `${project.buildDir}/compose/binaries`. - -## Configuring included JDK modules - -The Gradle plugin uses [jlink](https://openjdk.java.net/jeps/282) to minimize a distributable size by -including only necessary JDK modules. - -At this time, the Gradle plugin does not automatically determine necessary JDK Modules. -Failure to provide the necessary modules will not cause compilation issues, -but will lead to `ClassNotFoundException` at runtime. - -If you encounter `ClassNotFoundException` when running a packaged application or -`runDistributable` task, you can include additional JDK modules using -`modules` DSL method (see example below). - -You can determine, which modules are necessary either by hand or by running -`suggestModules` task. `suggestModules` uses the [jdeps](https://docs.oracle.com/javase/9/tools/jdeps.htm) -static analysis tool to determine possible missing modules. Note, that the output of the tool -might be incomplete or list unnecessary modules. - -If a distributable size is not critical, you may simply include all runtime modules as an alternative -by using `includeAllModules` DSL property. - -``` kotlin -compose.desktop { - application { - nativeDistributions { - modules("java.sql") - // alternatively: includeAllModules = true - } - } -} -``` - -## Available formats - -The following formats available for the supported operating systems: -* macOS — `.dmg` (`TargetFormat.Dmg`), `.pkg` (`TargetFormat.Pkg`) -* Windows — `.exe` (`TargetFormat.Exe`), `.msi` (`TargetFormat.Msi`) -* Linux — `.deb` (`TargetFormat.Deb`), `.rpm` (`TargetFormat.Rpm`) - -## Signing & notarization on macOS - -By default, Apple does not allow users to execute unsigned applications downloaded from the internet. Users attempting -to run such applications will be faced with an error like this: - - - -See [our tutorial](/tutorials/Signing_and_notarization_on_macOS/README.md) on how to sign and notarize your application. - -## Specifying package version - -You must specify a package version for native distribution packages. - -You can use the following DSL properties (in order of descending priority): -* `nativeDistributions..PackageVersion` specifies a version for a single package format; -* `nativeDistributions..packageVersion` specifies a version for a single target OS; -* `nativeDistributions.packageVersion` specifies a version for all packages; - -For macOS you can also specify the build version using the following DSL properties (in order of descending priority): -* `nativeDistributions.macOS.PackageBuildVersion` specifies a build version for a single package format; -* `nativeDistributions.macOS.packageBuildVersion` specifies a build version for all macOS packages; - -If the build version is not specified, the package version is used. -See [CFBundleShortVersionString](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring) (package version) -and [CFBundleVersion](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion) (build version) -for more information about versions on macOS. - -``` kotlin -compose.desktop { - application { - nativeDistributions { - // a version for all distributables - packageVersion = "..." - - linux { - // a version for all Linux distributables - packageVersion = "..." - // a version only for the deb package - debPackageVersion = "..." - // a version only for the rpm package - rpmPackageVersion = "..." - } - macOS { - // a version for all macOS distributables - packageVersion = "..." - // a version only for the dmg package - dmgPackageVersion = "..." - // a version only for the pkg package - pkgPackageVersion = "..." - - // a build version for all macOS distributables - packageBuildVersion = "..." - // a build version only for the dmg package - dmgPackageBuildVersion = "..." - // a build version only for the pkg package - pkgPackageBuildVersion = "..." - } - windows { - // a version for all Windows distributables - packageVersion = "..." - // a version only for the msi package - msiPackageVersion = "..." - // a version only for the exe package - exePackageVersion = "..." - } - } - } -} -``` - -Versions must follow the rules: - * For `dmg` and `pkg`: - * The format is `MAJOR[.MINOR][.PATCH]`, where: - * `MAJOR` is an integer > 0; - * `MINOR` is an optional non-negative integer; - * `PATCH` is an optional non-negative integer; - * For `msi` and `exe`: - * The format is `MAJOR.MINOR.BUILD`, where: - * `MAJOR` is a non-negative integer with a maximum value of 255; - * `MINOR` is a non-negative integer with a maximum value of 255; - * `BUILD` is a non-negative integer with a maximum value of 65535; - * For `deb`: - * The format is `[EPOCH:]UPSTREAM_VERSION[-DEBIAN_REVISION]`, where: - * `EPOCH` is an optional non-negative integer; - * `UPSTREAM_VERSION` - * may contain only alphanumerics and the characters `.`, `+`, `-`, `~`; - * must start with a digit; - * `DEBIAN_REVISION` - * is optional; - * may contain only alphanumerics and the characters `.`, `+`, `~`; - * See [Debian documentation](https://www.debian.org/doc/debian-policy/ch-controlfields.html#version) for more details; - * For `rpm`: - * A version must not contain the `-` (dash) character. - -## Customizing JDK version - -The plugin uses `jpackage`, for which you should be using at least [JDK 17](https://openjdk.java.net/projects/jdk/17/). -Make sure you meet at least one of the following requirements: -* `JAVA_HOME` environment variable points to the compatible JDK version. -* `javaHome` is set via DSL: -``` kotlin -compose.desktop { - application { - javaHome = System.getenv("JDK_17") - } -} -``` - -## Customizing output dir - -``` kotlin -compose.desktop { - application { - nativeDistributions { - outputBaseDir.set(project.buildDir.resolve("customOutputDir")) - } - } -} -``` - -## Customizing launcher - -The following properties are available for customizing the application startup: -* `mainClass` — a fully-qualified name of a class, containing the main method; -* `args` — arguments for the application's main method; -* `jvmArgs` — arguments for the application's JVM. - -``` kotlin -compose.desktop { - application { - mainClass = "MainKt" - jvmArgs += listOf("-Xmx2G") - args += listOf("-customArgument") - } -} -``` - -## Customizing metadata - -The following properties are available in the `nativeDistributions` DSL block: -* `packageName` — application's name (default value: Gradle project's [name](https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#getName--)); -* `packageVersion` — application's version (default value: Gradle project's [version](https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#getVersion--)); -* `description` — application's description (default value: none); -* `copyright` — application's copyright (default value: none); -* `vendor` — application's vendor (default value: none); -* `licenseFile` — application's license (default value: none). - -``` kotlin -compose.desktop { - application { - nativeDistributions { - packageName = "ExampleApp" - packageVersion = "0.1-SNAPSHOT" - description = "Compose Example App" - copyright = "© 2020 My Name. All rights reserved." - vendor = "Example vendor" - licenseFile.set(project.file("LICENSE.txt")) - } - } -} -``` - -## Packaging resources - -There are multiple ways to package and load resources with Compose for Desktop. - -### JVM resource loading - -Since Compose for Desktop uses JVM platform, you can load resources from a jar file using `java.lang.Class` API. Put a file under `src/main/resources`, -then access it using [Class::getResource](https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/lang/Class.html#getResource(java.lang.String)) -or [Class::getResourceAsStream](https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/lang/Class.html#getResourceAsStream(java.lang.String)). - -### Adding files to packaged application - -In some cases putting and reading resources from jar files might be inconvenient. -Or you may want to include a target specific asset (e.g. a file, that is included only -into a macOS package, but not into a Windows one). - -Compose Gradle plugin can be configured to put additional -resource files under an installation directory. - -To do so, specify a root resource directory via DSL: -``` -compose.desktop { - application { - mainClass = "MainKt" - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageVersion = "1.0.0" - - appResourcesRootDir.set(project.layout.projectDirectory.dir("resources")) - } - } -} -``` -In the example above a root resource directory is set to `/resources`. - -Compose Gradle plugin will include all files under the following subdirectories: -1. Files from `/common` will be included into all packages. -2. Files from `/` will be included only into packages for -a specific OS. Possible values for `` are: `windows`, `macos`, `linux`. -3. Files from `/-` will be included only into packages for - a specific combination of OS and CPU architecture. Possible values for `` are: `x64` and `arm64`. -For example, files from `/macos-arm64` will be included only into packages built for Apple Silicon -Macs. - -Included resources can be accessed via `compose.application.resources.dir` system property: -``` -import java.io.File - -val resourcesDir = File(System.getProperty("compose.application.resources.dir")) - -fun main() { - println(resourcesDir.resolve("resource.txt").readText()) -} -``` - -## Customizing content - -The plugin can configure itself, when either `org.jetbrains.kotlin.jvm` or `org.jetbrains.kotlin.multiplatform` plugins -are used. - -* With `org.jetbrains.kotlin.jvm` the plugin includes content from the `main` [source set](https://docs.gradle.org/current/userguide/java_plugin.html#source_sets). -* With `org.jetbrains.kotlin.multiplatform` the plugin includes content a single [jvm target](https://kotlinlang.org/docs/reference/mpp-dsl-reference.html#targets). -The default configuration is disabled if multiple JVM targets are defined. In this case, the plugin should be configured -manually, or a single target should be specified (see below). - -If the default configuration is ambiguous or not sufficient, the plugin can be configured: -* Using a Gradle [source set](https://docs.gradle.org/current/userguide/java_plugin.html#source_sets) -``` kotlin -plugins { - kotlin("jvm") - id("org.jetbrains.compose") -} - -val customSourceSet = sourceSets.create("customSourceSet") -compose.desktop { - application { - from(customSourceSet) - } -} -``` -* Using a Kotlin [JVM target](https://kotlinlang.org/docs/reference/mpp-dsl-reference.html#targets): -``` kotlin -plugins { - kotlin("multiplatform") - id("org.jetbrains.compose") -} - -kotlin { - jvm("customJvmTarget") {} -} - -compose.desktop { - application { - from(kotlin.targets["customJvmTarget"]) - } -} -``` -* manually: - * `disableDefaultConfiguration` can be used to disable the default configuration; - * `dependsOn` can be used to add task dependencies to all plugin's tasks; - * `fromFiles` can be used to specify files to include; - * `mainJar` file property can be specified to point to a jar, containing a main class. -``` kotlin -compose.desktop { - application { - disableDefaultConfiguration() - fromFiles(project.fileTree("libs/") { include("**/*.jar") }) - mainJar.set(project.file("main.jar")) - dependsOn("mainJarTask") - } -} -``` - - -## Platform-specific options - -Platform-specific options should be set using the corresponding DSL blocks: -``` kotlin -compose.desktop { - application { - nativeDistributions { - macOS { - // macOS specific options - } - windows { - // Windows specific options - } - linux { - // Linux specific options - } - } - } -} -``` - -The following platform-specific options are available -(the usage of non-documented properties **is not recommended**): -* All platforms: - * `iconFile.set(File("PATH_TO_ICON"))` — a path to a platform-specific icon for the application. - (see the section `App icon` for details); - * `packageVersion = "1.0.0"` — a platform-specific package version - (see the section `Specifying package version` for details); - * `installationPath = "PATH_TO_INSTALL_DIR"` — an absolute or relative path to the default installation directory; - * On Windows `dirChooser = true` may be used to enable customizing the path during installation. -* Linux: - * `packageName = "custom-package-name"` overrides the default application name; - * `debMaintainer = "maintainer@example.com"` — an email of the deb package's maintainer; - * `menuGroup = "my-example-menu-group"` — a menu group for the application; - * `appRelease = "1"` — a release value for the rpm package, or a revision value for the deb package; - * `appCategory = "CATEGORY"` — a group value for the rpm package, or a section value for the deb package; - * `rpmLicenseType = "TYPE_OF_LICENSE"` — a type of license for the rpm package; - * `debPackageVersion = "DEB_VERSION"` — a deb-specific package version - (see the section `Specifying package version` for details); - * `rpmPackageVersion = "RPM_VERSION"` — a rpm-specific package version - (see the section `Specifying package version` for details); -* macOS: - * `bundleID` — a unique application identifier; - * May only contain alphanumeric characters (`A-Z`,`a-z`,`0-9`), hyphen (`-`) and period (`.`) characters; - * Use of a reverse DNS notation (e.g. `com.mycompany.myapp`) is recommended; - * `packageName` — a name of the application; - * `dockName` — a name of the application displayed in the menu bar, the "About " menu item, in the dock, etc. - Equals to `packageName` by default. - * `minimumSystemVersion` — a minimum macOS version required to run the application. - See [LSMinimumSystemVersion](https://developer.apple.com/documentation/bundleresources/information_property_list/lsminimumsystemversion) for details; - * `signing`, `notarization`, `provisioningProfile`, and `runtimeProvisioningProfile` — see - [the corresponding tutorial](/tutorials/Signing_and_notarization_on_macOS/README.md) - for details; - * `appStore = true` — build and sign for the Apple App Store. Requires at least JDK 17; - * `appCategory` — category of the app for the Apple App Store. - Default value is `public.app-category.utilities` when building for the App Store, `Unknown` otherwise. - See [LSApplicationCategoryType](https://developer.apple.com/documentation/bundleresources/information_property_list/lsapplicationcategorytype) for a list of valid categories; - * `entitlementsFile.set(File("PATH_TO_ENTITLEMENTS"))` — a path to file containing entitlements to use when signing. - When a custom file is provided, make sure to add the entitlements that are required for Java apps. - See [sandbox.plist](https://github.com/openjdk/jdk/blob/master/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/sandbox.plist) for the default file that is used when building for the App Store. It can be different depending on your JDK version. - If no file is provided the default entitlements provided by jpackage are used. - See [the corresponding tutorial](/tutorials/Signing_and_notarization_on_macOS/README.md#configuring-entitlements) - * `runtimeEntitlementsFile.set(File("PATH_TO_RUNTIME_ENTITLEMENTS"))` — a path to file containing entitlements to use when signing the JVM runtime. - When a custom file is provided, make sure to add the entitlements that are required for Java apps. - See [sandbox.plist](https://github.com/openjdk/jdk/blob/master/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/sandbox.plist) for the default file that is used when building for the App Store. It can be different depending on your JDK version. - If no file is provided then `entitlementsFile` is used. If that was also not provided, the default entitlements provided by jpackage are used. - See [the corresponding tutorial](/tutorials/Signing_and_notarization_on_macOS/README.md#configuring-entitlements) - * `dmgPackageVersion = "DMG_VERSION"` — a dmg-specific package version - (see the section `Specifying package version` for details); - * `pkgPackageVersion = "PKG_VERSION"` — a pkg-specific package version - (see the section `Specifying package version` for details); - * `packageBuildVersion = "DMG_VERSION"` — a package build version - (see the section `Specifying package version` for details); - * `dmgPackageBuildVersion = "DMG_VERSION"` — a dmg-specific package build version - (see the section `Specifying package version` for details); - * `pkgPackageBuildVersion = "PKG_VERSION"` — a pkg-specific package build version - (see the section `Specifying package version` for details); - * `infoPlist` — see the section `Customizing Info.plist on macOS` for details; -* Windows: - * `console = true` adds a console launcher for the application; - * `dirChooser = true` enables customizing the installation path during installation; - * `perUserInstall = true` enables installing the application on a per-user basis - * `menuGroup = "start-menu-group"` adds the application to the specified Start menu group; - * `upgradeUuid = "UUID"` — a unique ID, which enables users to update an app via installer, - when an updated version is newer, than an installed version. The value must remain constant for a single application. - See [the link](https://wixtoolset.org/documentation/manual/v3/howtos/general/generate_guids.html) - for details on generating a UUID. - * `msiPackageVersion = "MSI_VERSION"` — a msi-specific package version - (see the section `Specifying package version` for details); - * `exePackageVersion = "EXE_VERSION"` — a pkg-specific package version - (see the section `Specifying package version` for details); - -## App icon - -The app icon needs to be provided in OS-specific formats: -* `.icns` for macOS; -* `.ico` for Windows; -* `.png` for Linux. - -``` kotlin -compose.desktop { - application { - nativeDistributions { - macOS { - iconFile.set(project.file("icon.icns")) - } - windows { - iconFile.set(project.file("icon.ico")) - } - linux { - iconFile.set(project.file("icon.png")) - } - } - } -} -``` - -## Customizing Info.plist on macOS - -We aim to support important platform-specific customization use-cases via declarative DSL. -However, the provided DSL is not enough sometimes. If you need to specify `Info.plist` -values, that are not modeled in the DSL, you can work around by specifying a piece -of raw XML, that will be appended to the application's `Info.plist`. - -### Example: deep linking into macOS apps - -1. Specify a custom URL scheme: -``` kotlin -// build.gradle.kts -compose.desktop { - application { - mainClass = "MainKt" - nativeDistributions { - targetFormats(TargetFormat.Dmg) - packageName = "Deep Linking Example App" - macOS { - bundleID = "org.jetbrains.compose.examples.deeplinking" - infoPlist { - extraKeysRawXml = macExtraPlistKeys - } - } - } - } -} - -val macExtraPlistKeys: String - get() = """ - CFBundleURLTypes - - - CFBundleURLName - Example deep link - CFBundleURLSchemes - - compose - - - - """ -``` - -2. Use `java.awt.Desktop` to set up a URI handler: -``` kotlin -// src/main/main.kt - -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.setValue -import androidx.compose.ui.window.singleWindowApplication -import java.awt.Desktop - -fun main() { - var text by mutableStateOf("Hello, World!") - - try { - Desktop.getDesktop().setOpenURIHandler { event -> - text = "Open URI: " + event.uri - } - } catch (e: UnsupportedOperationException) { - println("setOpenURIHandler is unsupported") - } - - singleWindowApplication { - MaterialTheme { - Text(text) - } - } -} -``` -3. Run `./gradlew runDistributable`. -4. Links like `compose://foo/bar` are now redirected from a browser to your application. - -## Minification & obfuscation - -Starting from 1.2 the Compose Gradle plugin supports [ProGuard](https://www.guardsquare.com/proguard) out-of-the-box. -ProGuard is a well known [open source](https://github.com/Guardsquare/proguard) tool for minification and obfuscation, -that is developed by [Guardsquare](https://www.guardsquare.com/). - -The Gradle plugin provides a *release* task for each corresponding *default* packaging task: - - Default task (w/o ProGuard) | Release task (w. ProGuard) | Description ------------------------------------|------------------------------------------|-------------------------------------------------------------------------- - `createDistributable` | `createReleaseDistributable` | Creates an application image with bundled JDK & resources - `runDistributable` | `runReleaseDistributable` | Runs an application image with bundled JDK & resources - `run` | `runRelease` | Runs a non-packaged application `jar` using Gradle JDK - `package` | `packageRelease` | Packages an application image into a `` file - `packageDistributionForCurrentOS` | `packageReleaseDistributionForCurrentOS` | Packages an application image into a format compatible with current OS - `packageUberJarForCurrentOS` | `packageReleaseUberJarForCurrentOS` | Packages an application image into an uber (fat) JAR - `notarize` | `notarizeRelease` | Uploads a `` application image for notarization (macOS only) - `checkNotarizationStatus` | `checkReleaseNotarizationStatus` | Checks if notarization succeeded (macOS only) - -The default configuration adds a few ProGuard rules: -* an application image is minified, i.e. non-used classes are removed; -* `compose.desktop.application.mainClass` is used as an entry point; -* a few `keep` rules to avoid breaking Compose runtime. - -In many cases getting a minified Compose application will not require any additional configuration. -However, sometimes ProGuard might be unable to track certain usages in bytecode -(for example, this might happen if a class is used via reflection). -If you encounter an issue, which happens only after ProGuard processing, -you might want to add custom rules. -To do so, specify a configuration file via DSL: -``` -compose.desktop { - application { - buildTypes.release.proguard { - configurationFiles.from(project.file("compose-desktop.pro")) - } - } -} -``` -See the Guardsquare's [comprehensive manual](https://www.guardsquare.com/manual/configuration/usage) -on ProGuard's rules & configuration options. - -Obfuscation is disabled by default. To enable it, set the following property via Gradle DSL: -``` -compose.desktop { - application { - buildTypes.release.proguard { - obfuscate.set(true) - } - } -} -``` - -ProGuard's optimizations are enabled by default. To disable them, set the following property via Gradle DSL: -``` -compose.desktop { - application { - buildTypes.release.proguard { - optimize.set(false) - } - } -} -``` - -Joining to the uber JAR is disabled by default - ProGuard produces the corresponding JAR for every input JAR. -To enable it, set the following property via Gradle DSL: -``` -compose.desktop { - application { - buildTypes.release.proguard { - joinOutputJars.set(true) - } - } -} -``` diff --git a/tutorials/Native_distributions_and_local_execution/attrs-error.png b/tutorials/Native_distributions_and_local_execution/attrs-error.png deleted file mode 100644 index 34504d4ecce..00000000000 Binary files a/tutorials/Native_distributions_and_local_execution/attrs-error.png and /dev/null differ diff --git a/tutorials/Navigation/README.md b/tutorials/Navigation/README.md deleted file mode 100644 index c875d6d3f8e..00000000000 --- a/tutorials/Navigation/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Navigation - -The [Jetpack Compose navigation library](https://developer.android.com/jetpack/compose/navigation) is currently an Android-only library. - -There are a number of libraries available that provide navigation functionality for Compose Multiplatform projects. Refer to the [Awesome Kotlin Multiplatform](https://github.com/terrakok/kmm-awesome#-compose-ui) list for an overview and more information. \ No newline at end of file diff --git a/tutorials/README.md b/tutorials/README.md index af299b64cea..88ef444b960 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -5,19 +5,19 @@ ## Desktop * [Image and icon manipulations](Image_And_Icons_Manipulations) -* [Mouse events and hover](Mouse_Events) -* [Scrolling and scrollbars](Desktop_Components#scrollbars) -* [Tooltips](Desktop_Components#tooltips) -* [Context Menu](Context_Menu/README.md) -* [Top level windows management](Window_API_new) +* [Mouse events and hover](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-mouse-events.html) +* [Scrolling and scrollbars](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-scrollbars.html) +* [Tooltips](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-tooltips.html) +* [Context Menu](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-context-menus.html) +* [Top level windows management](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-top-level-windows-management.html) * [Menu, tray, notifications](Tray_Notifications_MenuBar_new) -* [Keyboard support](Keyboard) +* [Keyboard support](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-keyboard.html) * [Tab focus navigation](Tab_Navigation) -* [Swing interoperability](Swing_Integration) -* [Navigation](Navigation) -* [Accessibility](Accessibility) -* [Building a native distribution](Native_distributions_and_local_execution) -* [UI testing](UI_Testing) +* [Swing interoperability](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-swing-interoperability.html) +* [Navigation](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-navigation-routing.html) +* [Accessibility](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-accessibility.html) +* [Building a native distribution](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-native-distribution.html) +* [UI testing](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-desktop-ui-testing.html) ## Web (based on Wasm) * [Getting started](https://kotl.in/wasm-compose-example) diff --git a/tutorials/Swing_Integration/README.md b/tutorials/Swing_Integration/README.md deleted file mode 100644 index a817d0ae22f..00000000000 --- a/tutorials/Swing_Integration/README.md +++ /dev/null @@ -1,504 +0,0 @@ -# Integration of Compose Multiplatform and Swing - -## What is covered - -In this tutorial, we'll show you how to make the `Swing/Compose` interop work in your application, what its limitations are, what you can achieve with it, in which cases you may use it and when you shouldn't do that. - -The main goals of the interoperability between Compose Multiplatform and Swing are -- make it easier and smoother to migrate Swing applications to to Compose -- allow to enhance Compose application with Swing components that don't have 'Compose' analogues - -In many cases it is more efficient to implement a missing Component in Compose (and contribute it to community) rather than using a Swing component in a Compose Application. - -## Swing interop use cases and limitations - -Before combining Compose Multiplatform and Swing, it's important to keep in mind that these two technologies have different approaches to the content rendering. Compose Multiplatform uses one heavyweight Swing component to render all its content and has logical rendering layers, while Swing operates on both heavyweight and lightweight components (`Component/JComponent`). For Swing logic Compose Multiplatform is just one more heavyweight component and it interacts with it the same way as with all other Swing components. - -The first use-case is addition of a Compose part into a Swing application. It could be done use `ComposePanel` Swing component to render the "Compose" part of the application. From Swing perspective it will be just another Swing component, that should be treated accordingly. Important point, that all Compose components will be rendered inside the `ComposePanel`, including popups, tooltips, context menus, etc. They will be positioned and resized inside the `ComposePanel`. So probably it would be better to replace them with a Swing based implementation. - -Below you can find several cases where the use of `ComposePanel` is justified: -- you want to embed animated objects or a whole panel of animated objects into your application (selection of emoticons, toolbar with animated reaction to events, etc.) -- you want to implement an interactive rendering area in your application, which is easier and more convenient to implement using Compose (for example, any type of graphics or infographics) -- you want to embed a complex rendering area (perhaps even animated) into your application - this is easier and more convenient to do using Compose -- you want to replace complex parts of the user interface of your Swing-based application - Compose has a convenient component layout system, and Compose offers a wide range of built-in components and options for quickly creating your own components - -If your case is somewhat similar to one of the above, then you should try to implement it using `ComposePanel`. - -The second use case is situation when you want to use some component, that exists in Swing and there is no analogue in Compose. And creating it from scratch is too expensive. In this case, you can use `SwingPanel`. A `SwingPanel` is a wrapper that controls the size, position and rendering of a Swing component that is placed on top of a Compose Multiplatform component, meaning the component inside a `SwingPanel` will always be on top of the Compose in depth. Anything that is misplaced and rests on the `SwingPanel` will be clipped by the Swing component placed there, so try to think about these situations, and if there is such a risk, then it is better to either redesign the UI accordingly, or stop using the `SwingPanel` and still try to implement the missing component, thereby contributing to the development of technology and making life easier for other developers. - -Below you can find several cases where the use of `SwingPanel` is justified: -- there are no popups, tooltips, context menus, etc. in your application. or they are not used inside your `SwingPanel` -- in your application, the `SwingPanel` will always be in the same position. This will reduce the risk of glitches and artifacts when changing the position of the Swing component (this condition is not mandatory and you need to test each such case separately) - -If your case is somewhat similar to one of the above, then you should try to implement it using `SwingPanel`. - -Since Compose Multiplatform and Swing can be combined in both directions, it is quite possible to place a `SwingPanel` into a `ComposePanel`, which in turn could be placed into another `SwingPanel`. In this case, you should be careful to minimize rendering glitches. At the end of this tutorial, you can find an example covering this case. - -## Using ComposePanel - -`ComposePanel` lets you create a UI using Compose Multiplatform in a Swing-based UI. To achieve this you need to create an instance of `ComposePanel`, add it to your Swing layout, and describe the composition inside `setContent`. - -```kotlin -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Button -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.mutableStateOf -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.awt.ComposePanel -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import java.awt.BorderLayout -import java.awt.Dimension -import javax.swing.JButton -import javax.swing.JFrame -import javax.swing.SwingUtilities -import javax.swing.WindowConstants - -val northClicks = mutableStateOf(0) -val westClicks = mutableStateOf(0) -val eastClicks = mutableStateOf(0) - -fun main() = SwingUtilities.invokeLater { - val window = JFrame() - - // creating ComposePanel - val composePanel = ComposePanel() - window.defaultCloseOperation = WindowConstants.EXIT_ON_CLOSE - window.title = "SwingComposeWindow" - - window.contentPane.add(actionButton("NORTH", action = { northClicks.value++ }), BorderLayout.NORTH) - window.contentPane.add(actionButton("WEST", action = { westClicks.value++ }), BorderLayout.WEST) - window.contentPane.add(actionButton("EAST", action = { eastClicks.value++ }), BorderLayout.EAST) - window.contentPane.add( - actionButton( - text = "SOUTH/REMOVE COMPOSE", - action = { - window.contentPane.remove(composePanel) - } - ), - BorderLayout.SOUTH - ) - - // addind ComposePanel on JFrame - window.contentPane.add(composePanel, BorderLayout.CENTER) - - // setting the content - composePanel.setContent { - ComposeContent() - } - - window.setSize(800, 600) - window.isVisible = true -} - -fun actionButton(text: String, action: () -> Unit): JButton { - val button = JButton(text) - button.toolTipText = "Tooltip for $text button." - button.preferredSize = Dimension(100, 100) - button.addActionListener { action() } - return button -} - -@Composable -fun ComposeContent() { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center - ) { - Row { - Counter("West", westClicks) - Spacer(modifier = Modifier.width(25.dp)) - Counter("North", northClicks) - Spacer(modifier = Modifier.width(25.dp)) - Counter("East", eastClicks) - } - } -} - -@Composable -fun Counter(text: String, counter: MutableState) { - Surface( - modifier = Modifier.size(130.dp, 130.dp), - color = Color(180, 180, 180), - shape = RoundedCornerShape(4.dp) - ) { - Column { - Box( - modifier = Modifier.height(30.dp).fillMaxWidth(), - contentAlignment = Alignment.Center - ) { - Text(text = "${text}Clicks: ${counter.value}") - } - Spacer(modifier = Modifier.height(25.dp)) - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center - ) { - Button(onClick = { counter.value++ }) { - Text(text = text, color = Color.White) - } - } - } - } -} -``` - -IntegrationWithSwing - -## Adding a Swing component to Compose Multiplatform composition using SwingPanel - -SwingPanel lets you create a UI using Swing in a Compose-based UI. To achieve this you need to create Swing `JComponent` in the `factory` parameter of `SwingPanel`. - -```kotlin -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.size -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.awt.SwingPanel -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.singleWindowApplication -import java.awt.Component -import javax.swing.BoxLayout -import javax.swing.JButton -import javax.swing.JPanel - -fun main() = singleWindowApplication { - val counter = remember { mutableStateOf(0) } - - val inc: () -> Unit = { counter.value++ } - val dec: () -> Unit = { counter.value-- } - - Box( - modifier = Modifier.fillMaxWidth().height(60.dp).padding(top = 20.dp), - contentAlignment = Alignment.Center - ) { - Text("Counter: ${counter.value}") - } - - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center - ) { - Column( - modifier = Modifier.padding(top = 80.dp, bottom = 20.dp) - ) { - Button("1. Compose Button: increment", inc) - Spacer(modifier = Modifier.height(20.dp)) - - SwingPanel( - background = Color.White, - modifier = Modifier.size(270.dp, 90.dp), - factory = { - JPanel().apply { - layout = BoxLayout(this, BoxLayout.Y_AXIS) - add(actionButton("1. Swing Button: decrement", dec)) - add(actionButton("2. Swing Button: decrement", dec)) - add(actionButton("3. Swing Button: decrement", dec)) - } - } - ) - - Spacer(modifier = Modifier.height(20.dp)) - Button("2. Compose Button: increment", inc) - } - } -} - -@Composable -fun Button(text: String = "", action: (() -> Unit)? = null) { - Button( - modifier = Modifier.size(270.dp, 30.dp), - onClick = { action?.invoke() } - ) { - Text(text) - } -} - -fun actionButton( - text: String, - action: () -> Unit -): JButton { - val button = JButton(text) - button.alignmentX = Component.CENTER_ALIGNMENT - button.addActionListener { action() } - - return button -} -``` - -IntegrationWithSwing - -## Updating Swing component when Сompose state changes - -Example below shows how to update a Swing component in a `SwingPanel` when the composable state changes. To do this, you need to provide an `update: (T) -> Unit` callback that is called when the composable state changes or after the layout is inflated. - -```kotlin -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.width -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.awt.SwingPanel -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.application -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.rememberWindowState -import java.awt.BorderLayout -import javax.swing.JPanel -import javax.swing.JLabel - -val swingLabel = JLabel() - -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - state = rememberWindowState(width = 400.dp, height = 200.dp), - ) { - val clicks = remember { mutableStateOf(0) } - Column( - modifier = Modifier.fillMaxSize().padding(20.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - SwingPanel( - modifier = Modifier.fillMaxWidth().height(40.dp), - factory = { - JPanel().apply { - add(swingLabel, BorderLayout.CENTER) - } - }, - update = { - swingLabel.setText("SwingLabel Clicks: ${clicks.value}") - } - ) - Spacer(modifier = Modifier.height(40.dp)) - Row ( - modifier = Modifier.height(40.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Button(onClick = { clicks.value++ }) { - Text(text = "Increment") - } - Spacer(modifier = Modifier.width(20.dp)) - Button(onClick = { clicks.value-- }) { - Text(text = "Decrement") - } - } - } - } -} -``` - -IntegrationWithSwing - -## Layouting with SwingPanel and ComposePanel - -Example below shows how Compose for Desktop and Swing can be combined in both directions i.e. adding a `SwingPanel` to a `ComposePanel` which is in turn added to another `SwingPanel`. - -```kotlin -import androidx.compose.foundation.* -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.* -import androidx.compose.runtime.* -import androidx.compose.ui.awt.* -import androidx.compose.ui.* -import androidx.compose.ui.draw.* -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.window.* -import androidx.compose.ui.unit.* -import java.awt.BorderLayout -import java.awt.Canvas -import java.awt.Dimension -import java.awt.Insets -import java.awt.event.* -import javax.swing.* -import javax.swing.border.EmptyBorder - -val Gray = java.awt.Color(64, 64, 64) -val DarkGray = java.awt.Color(32, 32, 32) -val LightGray = java.awt.Color(210, 210, 210) - -data class Item( - val text: String, - val icon: ImageVector, - val color: Color, - val state: MutableState = mutableStateOf(false) -) -val panelItemsList = listOf( - Item(text = "Person", icon = Icons.Filled.Person, color = Color(10, 232, 162)), - Item(text = "Favorite", icon = Icons.Filled.Favorite, color = Color(150, 232, 150)), - Item(text = "Search", icon = Icons.Filled.Search, color = Color(232, 10, 162)), - Item(text = "Settings", icon = Icons.Filled.Settings, color = Color(232, 162, 10)), - Item(text = "Close", icon = Icons.Filled.Close, color = Color(232, 100, 100)) -) -val itemSize = 50.dp - -fun java.awt.Color.toCompose(): Color { - return Color(red, green, blue) -} - -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - state = rememberWindowState(width = 500.dp, height = 500.dp), - ) { - Column( - modifier = Modifier.fillMaxSize().background(color = Gray.toCompose()).padding(20.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text(text = "Compose Area", color = LightGray.toCompose()) - Spacer(modifier = Modifier.height(40.dp)) - SwingPanel( - background = DarkGray.toCompose(), - modifier = Modifier.fillMaxSize(), - factory = { - ComposePanel().apply { - setContent { - Box { - SwingPanel( - modifier = Modifier.fillMaxSize(), - factory = { SwingComponent() } - ) - Box ( - modifier = Modifier.align(Alignment.TopStart) - .padding(start = 20.dp, top = 80.dp) - .background(color = DarkGray.toCompose()) - ) { - SwingPanel( - modifier = Modifier.size(itemSize * panelItemsList.size, itemSize), - factory = { - ComposePanel().apply { - setContent { - ComposeOverlay() - } - } - } - ) - } - } - } - } - } - ) - } - } -} - -fun SwingComponent() : JPanel { - return JPanel().apply { - background = DarkGray - border = EmptyBorder(20, 20, 20, 20) - layout = BorderLayout() - add( - JLabel("TextArea Swing Component").apply { - foreground = LightGray - verticalAlignment = SwingConstants.NORTH - horizontalAlignment = SwingConstants.CENTER - preferredSize = Dimension(40, 160) - }, - BorderLayout.NORTH - ) - add( - JTextArea().apply { - background = LightGray - lineWrap = true - wrapStyleWord = true - margin = Insets(10, 10, 10, 10) - text = "The five boxing wizards jump quickly. " + - "Crazy Fredrick bought many very exquisite opal jewels. " + - "Pack my box with five dozen liquor jugs.\n" + - "Cozy sphinx waves quart jug of bad milk. " + - "The jay, pig, fox, zebra and my wolves quack!" - }, - BorderLayout.CENTER - ) - } -} - -@Composable -fun ComposeOverlay() { - Box( - modifier = Modifier.fillMaxSize(). - background(color = DarkGray.toCompose()), - contentAlignment = Alignment.Center - ) { - Row( - modifier = Modifier.background( - shape = RoundedCornerShape(4.dp), - color = Color.DarkGray.copy(alpha = 0.5f) - ) - ) { - for (item in panelItemsList) { - SelectableItem( - text = item.text, - icon = item.icon, - color = item.color, - selected = item.state - ) - } - } - } -} - -@Composable -fun SelectableItem( - text: String, - icon: ImageVector, - color: Color, - selected: MutableState -) { - Box( - modifier = Modifier.size(itemSize) - .clickable { selected.value = !selected.value }, - contentAlignment = Alignment.Center - ) { - Column( - modifier = Modifier.alpha(if (selected.value) 1.0f else 0.5f), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Icon(modifier = Modifier.size(32.dp), imageVector = icon, contentDescription = null, tint = color) - Text(text = text, color = Color.White, fontSize = 10.sp) - } - } -} -``` - -IntegrationWithSwing diff --git a/tutorials/Swing_Integration/screenshot.png b/tutorials/Swing_Integration/screenshot.png deleted file mode 100644 index 3a77733a838..00000000000 Binary files a/tutorials/Swing_Integration/screenshot.png and /dev/null differ diff --git a/tutorials/Swing_Integration/swing_compose_layouting.gif b/tutorials/Swing_Integration/swing_compose_layouting.gif deleted file mode 100644 index 3223e7df804..00000000000 Binary files a/tutorials/Swing_Integration/swing_compose_layouting.gif and /dev/null differ diff --git a/tutorials/Swing_Integration/swing_panel.gif b/tutorials/Swing_Integration/swing_panel.gif deleted file mode 100644 index 261ed473cda..00000000000 Binary files a/tutorials/Swing_Integration/swing_panel.gif and /dev/null differ diff --git a/tutorials/Swing_Integration/swing_panel_update.gif b/tutorials/Swing_Integration/swing_panel_update.gif deleted file mode 100644 index d7f1d8c00a5..00000000000 Binary files a/tutorials/Swing_Integration/swing_panel_update.gif and /dev/null differ diff --git a/tutorials/UI_Testing/README.md b/tutorials/UI_Testing/README.md deleted file mode 100644 index 51daf01e060..00000000000 --- a/tutorials/UI_Testing/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# UI Testing -The API for unit testing in Compose for Desktop is nearly identical to the [Jetpack Compose Android testing API](https://developer.android.com/jetpack/compose/testing). We highly recommended reading that first before moving on to this tutorial. - -## Setting up -To start using the testing API, you will need to add the dependency on `compose.uiTestJUnit4` to your `build.gradle` file and create the directory for your tests. - -If the module is desktop-only (`kotlin("jvm")` is applied), add the dependency via: -``` kotlin -dependencies { - testImplementation(compose.desktop.uiTestJUnit4) - testImplementation(compose.desktop.currentOs) -} -``` - -and the directory for tests will be `src/test/kotlin` - -If the module is multiplatform (`kotlin(“multiplatform”)` is applied), add it via: - -``` kotlin -kotlin { - sourceSets { - val desktopTest by getting { - dependencies { - implementation(compose.desktop.uiTestJUnit4) - implementation(compose.desktop.currentOs) - } - } - } -} -``` - -And the directory for tests will be `src/desktopTest/kotlin` - -## Creating your first test -In the tests directory, create a file named `ExampleTest.kt` and paste this code into it: - -```kotlin -import androidx.compose.material.* -import androidx.compose.runtime.* -import androidx.compose.ui.Modifier -import androidx.compose.ui.test.* -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.test.junit4.createComposeRule -import org.junit.Rule -import org.junit.Test - -class ExampleTest { - @get:Rule - val rule = createComposeRule() - - @Test - fun myTest(){ - rule.setContent { - var text by remember { mutableStateOf("Hello") } - Text( - text = text, - modifier = Modifier.testTag("text") - ) - Button( - onClick = { text = "Compose" }, - modifier = Modifier.testTag("button") - ){ - Text("Click me") - } - } - - rule.onNodeWithTag("text").assertTextEquals("Hello") - rule.onNodeWithTag("button").performClick() - rule.onNodeWithTag("text").assertTextEquals("Compose") - } -} -``` - -Now you can run the test by either clicking ![run](https://github.com/JetBrains/compose-multiplatform/assets/5963351/2eac4041-757e-48b0-9dc2-baef82f21a7b) button in your IDE, or from the command line with -``` -./gradlew test -``` - diff --git a/tutorials/Window_API_new/README.md b/tutorials/Window_API_new/README.md deleted file mode 100644 index 497998ff8c7..00000000000 --- a/tutorials/Window_API_new/README.md +++ /dev/null @@ -1,656 +0,0 @@ -# Top level windows management - -## What is covered - -In this tutorial, we will show you how to work with windows using Compose for Desktop. - -We represent the window state in a shape suitable for Compose-style state manipulations and automatically map it to the operating system window state. - -Top-level windows can be conditionally created in other composable functions and their window manager state can also be manipulated using states produced by the `rememberWindowState()` function. - -## Open and close windows - -The main function for creating windows is `Window`. This function should be used in a Composable scope. The easiest way to create a Composable scope is to use the `application` function: - -```kotlin -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - Window(onCloseRequest = ::exitApplication) { - // Content - } -} -``` - -`Window` is a Composable function, meaning you can change its properties in a declarative way: -```kotlin -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - var fileName by remember { mutableStateOf("Untitled") } - - Window(onCloseRequest = ::exitApplication, title = "$fileName - Editor") { - Button(onClick = { fileName = "note.txt" }) { - Text("Save") - } - } -} -``` -Window properties - -## Open and close windows (conditionally) - -You can also close/open windows using a simple `if` statement. - -When the `Window` leaves the composition (`isPerformingTask` becomes `false`) – the native window automatically closes. - -```kotlin -import androidx.compose.material.Text -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import kotlinx.coroutines.delay - -fun main() = application { - var isPerformingTask by remember { mutableStateOf(true) } - - LaunchedEffect(Unit) { - delay(2000) // Do some heavy lifting - isPerformingTask = false - } - - if (isPerformingTask) { - Window(onCloseRequest = ::exitApplication) { - Text("Performing some tasks. Please wait!") - } - } else { - Window(onCloseRequest = ::exitApplication) { - Text("Hello, World!") - } - } -} -``` -Window splash - -If the window requires some custom logic on close (for example, to show a dialog), you can override the close action using `onCloseRequest`. - -Instead of the imperative approach to closing the window (`window.close()`) we use a declarative approach - closing the window in response to a change of the state (`isOpen = false`).. -```kotlin -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.window.DialogWindow -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - var isOpen by remember { mutableStateOf(true) } - var isAskingToClose by remember { mutableStateOf(false) } - - if (isOpen) { - Window( - onCloseRequest = { isAskingToClose = true } - ) { - if (isAskingToClose) { - DialogWindow( - onCloseRequest = { isAskingToClose = false }, - title = "Close the document without saving?", - ) { - Button( - onClick = { isOpen = false } - ) { - Text("Yes") - } - } - } - } - } -} -``` -Ask to close - -## Hide the window into the tray - -If you don't need to close the window and just need to hide it (for example to the tray), you can change the `windowState.isVisible` state: -```kotlin -import androidx.compose.material.Text -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.drawscope.DrawScope -import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.window.Tray -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import kotlinx.coroutines.delay - -fun main() = application { - var isVisible by remember { mutableStateOf(true) } - - Window( - onCloseRequest = { isVisible = false }, - visible = isVisible, - title = "Counter", - ) { - var counter by remember { mutableStateOf(0) } - LaunchedEffect(Unit) { - while (true) { - counter++ - delay(1000) - } - } - Text(counter.toString()) - } - - if (!isVisible) { - Tray( - TrayIcon, - tooltip = "Counter", - onAction = { isVisible = true }, - menu = { - Item("Exit", onClick = ::exitApplication) - }, - ) - } -} - -object TrayIcon : Painter() { - override val intrinsicSize = Size(256f, 256f) - - override fun DrawScope.onDraw() { - drawOval(Color(0xFFFFA500)) - } -} -``` -Hide instead of closing - -## Open and close multiple windows - -If an application has multiple windows, then it is better to put its state into a separate class and open/close window in response to `mutableStateListOf` changes (see [notepad example](https://github.com/JetBrains/compose-multiplatform/tree/master/examples/notepad) for more complex use cases): -```kotlin -import androidx.compose.runtime.Composable -import androidx.compose.runtime.key -import androidx.compose.runtime.mutableStateListOf -import androidx.compose.runtime.remember -import androidx.compose.ui.window.ApplicationScope -import androidx.compose.ui.window.MenuBar -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - val applicationState = remember { MyApplicationState() } - - for (window in applicationState.windows) { - key(window) { - MyWindow(window) - } - } -} - -@Composable -private fun ApplicationScope.MyWindow( - state: MyWindowState -) = Window(onCloseRequest = state::close, title = state.title) { - MenuBar { - Menu("File") { - Item("New window", onClick = state.openNewWindow) - Item("Exit", onClick = state.exit) - } - } -} - -private class MyApplicationState { - val windows = mutableStateListOf() - - init { - windows += MyWindowState("Initial window") - } - - fun openNewWindow() { - windows += MyWindowState("Window ${windows.size}") - } - - fun exit() { - windows.clear() - } - - private fun MyWindowState( - title: String - ) = MyWindowState( - title, - openNewWindow = ::openNewWindow, - exit = ::exit, - windows::remove - ) -} - -private class MyWindowState( - val title: String, - val openNewWindow: () -> Unit, - val exit: () -> Unit, - private val close: (MyWindowState) -> Unit -) { - fun close() = close(this) -} -``` -Multiple windows - -## Function `singleWindowApplication` - -There is a simplified function for creating a single window application: -```kotlin -import androidx.compose.ui.window.singleWindowApplication - -fun main() = singleWindowApplication { - // Content -} -``` -Use it if: -- your application has only one window -- you don't need custom closing logic -- you don't need to change the window parameters after it is already created - -## Adaptive window size - -Sometimes we want to show some content as a whole without knowing in advance what exactly will be shown, meaning that we don’t know the optimal window dimensions for it. By setting one or both dimensions of your window’s WindowSize to Dp.Unspecified, Compose for Desktop will automatically adjust the initial size of your window in that dimension to accommodate its content: -```kotlin -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.material.Text -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberWindowState - -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - state = rememberWindowState(width = Dp.Unspecified, height = Dp.Unspecified), - title = "Adaptive", - resizable = false - ) { - Column(Modifier.background(Color(0xFFEEEEEE))) { - Row { - Text("label 1", Modifier.size(100.dp, 100.dp).padding(10.dp).background(Color.White)) - Text("label 2", Modifier.size(150.dp, 200.dp).padding(5.dp).background(Color.White)) - Text("label 3", Modifier.size(200.dp, 300.dp).padding(25.dp).background(Color.White)) - } - } - } -} -``` -Adaptive window size - -## Changing the state (maximized, minimized, fullscreen, size, position) of the window. - -Some states of the native window are moved into a separate API class, `WindowState`. You can change its properties in callbacks or observe it in Composable's. -When some state is changed (window size or position), Composable function will be automatically recomposed. - -```kotlin -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.material.Checkbox -import androidx.compose.material.Text -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.WindowPlacement -import androidx.compose.ui.window.WindowPosition -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberWindowState - -fun main() = application { - val state = rememberWindowState(placement = WindowPlacement.Maximized) - - Window(onCloseRequest = ::exitApplication, state) { - Column { - Row(verticalAlignment = Alignment.CenterVertically) { - Checkbox( - state.placement == WindowPlacement.Fullscreen, - { - state.placement = if (it) { - WindowPlacement.Fullscreen - } else { - WindowPlacement.Floating - } - } - ) - Text("isFullscreen") - } - - Row(verticalAlignment = Alignment.CenterVertically) { - Checkbox( - state.placement == WindowPlacement.Maximized, - { - state.placement = if (it) { - WindowPlacement.Maximized - } else { - WindowPlacement.Floating - } - } - ) - Text("isMaximized") - } - - Row(verticalAlignment = Alignment.CenterVertically) { - Checkbox(state.isMinimized, { state.isMinimized = !state.isMinimized }) - Text("isMinimized") - } - - Text( - "Position ${state.position}", - Modifier.clickable { - val position = state.position - if (position is WindowPosition.Absolute) { - state.position = position.copy(x = state.position.x + 10.dp) - } - } - ) - - Text( - "Size ${state.size}", - Modifier.clickable { - state.size = state.size.copy(width = state.size.width + 10.dp) - } - ) - } - } -} -``` -Changing the state - -## Listening the state of the window -Reading the state in composition is useful when you need to update UI, but there are cases when you need to react to the state changes and send a value to another non-composable level of your application (write it to the database, for example): - -```kotlin -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.snapshotFlow -import androidx.compose.ui.unit.DpSize -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.WindowPosition -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberWindowState -import kotlinx.coroutines.flow.filter -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach - -fun main() = application { - val state = rememberWindowState() - - Window(onCloseRequest = ::exitApplication, state) { - // Content - - LaunchedEffect(state) { - snapshotFlow { state.size } - .onEach(::onWindowResize) - .launchIn(this) - - snapshotFlow { state.position } - .filter { it.isSpecified } - .onEach(::onWindowRelocate) - .launchIn(this) - } - } -} - -private fun onWindowResize(size: DpSize) { - println("onWindowResize $size") -} - -private fun onWindowRelocate(position: WindowPosition) { - println("onWindowRelocate $position") -} -``` - -## Dialogs -There are two types of window – modal and regular. Below are the functions for creating each: - -1. `Window` – regular window type. -2. `DialogWindow` – modal window type. This type locks its parent window until the user is finished working with it and closes the modal window. - -You can see an example of both types of window below. - -```kotlin -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.window.DialogWindow -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.WindowPosition -import androidx.compose.ui.window.application -import androidx.compose.ui.window.rememberDialogState - -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - ) { - var isDialogOpen by remember { mutableStateOf(false) } - - Button(onClick = { isDialogOpen = true }) { - Text(text = "Open dialog") - } - - if (isDialogOpen) { - DialogWindow( - onCloseRequest = { isDialogOpen = false }, - state = rememberDialogState(position = WindowPosition(Alignment.Center)) - ) { - // Dialog's content - } - } - } -} -``` - -## Swing interoperability -Because Compose for Desktop uses Swing under the hood, it is possible to create a window using Swing directly: -```kotlin -import androidx.compose.ui.awt.ComposeWindow -import java.awt.Dimension -import javax.swing.JFrame -import javax.swing.SwingUtilities - -fun main() = SwingUtilities.invokeLater { - ComposeWindow().apply { - size = Dimension(300, 300) - defaultCloseOperation = JFrame.DISPOSE_ON_CLOSE - setContent { - // Content - } - isVisible = true - } -} -``` - -You can also access ComposeWindow in the Composable `Window` scope: -```kotlin -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.ui.window.singleWindowApplication -import java.awt.datatransfer.DataFlavor -import java.awt.dnd.DnDConstants -import java.awt.dnd.DropTarget -import java.awt.dnd.DropTargetAdapter -import java.awt.dnd.DropTargetDropEvent - -fun main() = singleWindowApplication { - LaunchedEffect(Unit) { - window.dropTarget = DropTarget().apply { - addDropTargetListener(object : DropTargetAdapter() { - override fun drop(event: DropTargetDropEvent) { - event.acceptDrop(DnDConstants.ACTION_COPY); - val fileName = event.transferable.getTransferData(DataFlavor.javaFileListFlavor) - println(fileName) - } - }) - } - } -} -``` - -If you need a dialog that is implemented in Swing, you can wrap it into a Composable function: -```kotlin -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.window.AwtWindow -import androidx.compose.ui.window.application -import java.awt.FileDialog -import java.awt.Frame - -fun main() = application { - var isOpen by remember { mutableStateOf(true) } - - if (isOpen) { - FileDialog( - onCloseRequest = { - isOpen = false - println("Result $it") - } - ) - } -} - -@Composable -private fun FileDialog( - parent: Frame? = null, - onCloseRequest: (result: String?) -> Unit -) = AwtWindow( - create = { - object : FileDialog(parent, "Choose a file", LOAD) { - override fun setVisible(value: Boolean) { - super.setVisible(value) - if (value) { - onCloseRequest(file) - } - } - } - }, - dispose = FileDialog::dispose -) -``` - -## Draggable window area -If you window is undecorated and you want to add a custom draggable titlebar to it (or make the whole window draggable), you can use `DraggableWindowArea`: -```kotlin -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.window.WindowDraggableArea -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application - -fun main() = application { - Window(onCloseRequest = ::exitApplication, undecorated = true) { - WindowDraggableArea { - Box(Modifier.fillMaxWidth().height(48.dp).background(Color.DarkGray)) - } - } -} -``` -Note that `WindowDraggableArea` can be used only inside `singleWindowApplication`, `Window` and `DialogWindow`. If you need to use it in another Composable function, pass `WindowScope` as a receiver there: -```kotlin -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.window.WindowDraggableArea -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.WindowScope -import androidx.compose.ui.window.application - -fun main() = application { - Window(onCloseRequest = ::exitApplication, undecorated = true) { - AppWindowTitleBar() - } -} - -@Composable -private fun WindowScope.AppWindowTitleBar() = WindowDraggableArea { - Box(Modifier.fillMaxWidth().height(48.dp).background(Color.DarkGray)) -} -``` -Draggable area - -## Transparent windows (e.g. allows to make windows of a custom form) -To create a transparent window it is enough to pass two parameners to the Window function: `transparent=true` and `undecorate=true` (it is not possible to decorate a transparent Window). Common scenario is to combine transparent window with a Surface of a custom form. Below is an example of a round-cornered Window. - -```kotlin -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Surface -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.shadow -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import androidx.compose.material.Text -import androidx.compose.runtime.* - -fun main() = application { - var isOpen by remember { mutableStateOf(true) } - if (isOpen) { - Window( - onCloseRequest = { isOpen = false }, - title = "Transparent Window Example", - transparent = true, - undecorated = true, //transparent window must be undecorated - ) { - Surface( - modifier = Modifier.fillMaxSize().padding(5.dp).shadow(3.dp, RoundedCornerShape(20.dp)), - color = Color(55, 55, 55), - shape = RoundedCornerShape(20.dp) //window has round corners now - ) { - Text("Hello World!", color = Color.White) - } - } - } -} -``` - -_**Important note:** Window transparency is implemented based on JDK implementation, that contains **known issue on Linux** in case of moving a Window between two monitors with different density. So when you move an App, the Window stops being transparent. And it seems nothing can be done with this situation on Compose side. -[An issue about it](https://github.com/JetBrains/compose-multiplatform/issues/1339)_ diff --git a/tutorials/Window_API_new/adaptive.png b/tutorials/Window_API_new/adaptive.png deleted file mode 100644 index 9c4fa9fdd84..00000000000 Binary files a/tutorials/Window_API_new/adaptive.png and /dev/null differ diff --git a/tutorials/Window_API_new/ask_to_close.gif b/tutorials/Window_API_new/ask_to_close.gif deleted file mode 100644 index be6d3728e9b..00000000000 Binary files a/tutorials/Window_API_new/ask_to_close.gif and /dev/null differ diff --git a/tutorials/Window_API_new/draggable_area.gif b/tutorials/Window_API_new/draggable_area.gif deleted file mode 100644 index bc3d443d6e7..00000000000 Binary files a/tutorials/Window_API_new/draggable_area.gif and /dev/null differ diff --git a/tutorials/Window_API_new/hide_instead_of_close.gif b/tutorials/Window_API_new/hide_instead_of_close.gif deleted file mode 100644 index 51ab82fed05..00000000000 Binary files a/tutorials/Window_API_new/hide_instead_of_close.gif and /dev/null differ diff --git a/tutorials/Window_API_new/multiple_windows.gif b/tutorials/Window_API_new/multiple_windows.gif deleted file mode 100644 index 9e6ab6fc2d0..00000000000 Binary files a/tutorials/Window_API_new/multiple_windows.gif and /dev/null differ diff --git a/tutorials/Window_API_new/state.gif b/tutorials/Window_API_new/state.gif deleted file mode 100644 index dafc2b231ed..00000000000 Binary files a/tutorials/Window_API_new/state.gif and /dev/null differ diff --git a/tutorials/Window_API_new/window_properties.gif b/tutorials/Window_API_new/window_properties.gif deleted file mode 100644 index 37f60b486b5..00000000000 Binary files a/tutorials/Window_API_new/window_properties.gif and /dev/null differ diff --git a/tutorials/Window_API_new/window_splash.gif b/tutorials/Window_API_new/window_splash.gif deleted file mode 100644 index f0b93a44001..00000000000 Binary files a/tutorials/Window_API_new/window_splash.gif and /dev/null differ diff --git a/tutorials/checker/gradle/wrapper/gradle-wrapper.properties b/tutorials/checker/gradle/wrapper/gradle-wrapper.properties index 2e6e5897b52..37f853b1c84 100644 --- a/tutorials/checker/gradle/wrapper/gradle-wrapper.properties +++ b/tutorials/checker/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists